Skip to content

API reference

Atlas exposes a single HTTP API on the gateway (atlas-gateway:58100, public surface at https://atlas.naburis.cloud/api/atlas/*). The list below is sourced from mountAPI in cmd/atlas-gateway/main.go — when the gateway changes, regenerate this page from the same function.

  • All authenticated routes require either an OIDC bearer token (machine-to-machine callers) or an atlas_session cookie (browser callers via the BFF flow).
  • Browser callers must additionally send X-Atlas-CSRF: 1 on state-mutating methods (POST, PATCH, DELETE).
  • Every request must carry the scope triple: X-Tenant-ID, X-Workspace-ID, X-Context-ID.
  • Streaming endpoints emit text/event-stream with named events (start, evidence, token, milestone, citation, error, done); each data: line is a JSON object the client parses incrementally.
MethodPathAuthPurpose
GET/healthnoneAggregate health (postgres + optional dependencies).
GET/healthz /readyz /livez /startupznoneKubernetes-style probes.
GET/metricsnonePrometheus scrape.
GET/auth/confignoneOIDC bootstrap for the SPA.
POST/api/telemetrynoneFire-and-forget SPA telemetry sink.
*/auth/*(varies)BFF Zitadel code flow + backchannel logout.
GET/api/auth/sessionsessionBFF session probe for the SPA.

Knowledge — resolve, traverse, plan, synthesise

Section titled “Knowledge — resolve, traverse, plan, synthesise”
MethodPathPurpose
GET/api/atlas/resolve/intentsAvailable intent IDs (e.g. migration_path, feature_lookup).
GET POST/api/atlas/resolveHybrid retrieval (text → graph → vector).
POST/api/atlas/traverseKeystone graph traversal proxy.
GET/api/atlas/plan/versionsSAP version families known to the planner.
POST/api/atlas/planGenerate a migration plan via the DJED AI gateway.
POST/api/atlas/answer/streamSSE synthesised answer (planner → keystone-oracle).
MethodPathPurpose
GET/api/atlas/artifacts ?type=List SAP artifacts.
GET/api/atlas/artifacts/{id}Get one artifact.
GET/api/atlas/corpusUnified search over the corpus.
GET/api/atlas/corpus/{id}Corpus item detail.
GET/api/atlas/corpus/statusPer-collector freshness + last error.
POST/api/atlas/corpus/recrawlTrigger an immediate crawler refresh.
GET/api/atlas/guidanceList guidance items (best practices, deprecations, replacements).
GET/api/atlas/documentsList source documents.
GET/api/atlas/documents/{id}Get a source document.
GET/api/atlas/crawl/statusCrawler job status.
POST/api/atlas/graph/rebuildDrain the graph outbox into Keystone.
MethodPathPurpose
POST/api/atlas/studio/classifyClassify a task into a pattern type.
POST/api/atlas/studio/planBuild a task graph.
POST/api/atlas/studio/scaffoldGenerate scaffolds.
POST/api/atlas/studio/pipelineEnd-to-end pipeline.
GET/api/atlas/studio/generationsList generation archive.
POST/api/atlas/studio/generationsSave a generation.
GET DELETE/api/atlas/studio/generations/{id}Get / delete one.
DELETE/api/atlas/studio/generationsWipe the archive.
MethodPathPurpose
GET/api/atlas/clean-core/readinessClean-core readiness summary + blockers.
GET/api/atlas/control/scorecardClean-core scorecard, modules, top risks.
MethodPathPurpose
POST GET/api/atlas/casesCreate / list cases.
GET PATCH DELETE/api/atlas/cases/{id}Get / update / delete a case.
POST/api/atlas/cases/{id}/duplicateDuplicate.
POST/api/atlas/cases/{id}/investigateRun an investigation against the case scope.
GET/api/atlas/cases/{id}/runsList previous investigation runs.
GET/api/atlas/cases/{id}/eventsAudit timeline (every state change).
GET/api/atlas/cases/{id}/summaryGenerated case summary.
GET/api/atlas/cases/{id}/evidencePinned + collected evidence.
POST GET/api/atlas/cases/{id}/bundle(s)Generate / list bundles.
POST GET/api/atlas/cases/{id}/estimate(s)Generate / list estimates.
GET/api/atlas/cases/{id}/recommendationsList recommendations.
PATCH/api/atlas/cases/{id}/recommendations/{recId}Update a recommendation.
GET/api/atlas/cases/{id}/feedbackList feedback events.
GET/api/atlas/cases/{id}/auditDownload the case audit trail.

/readyz decomposes into per-dependency entries:

KeyMeaning of not_ready
postgresAtlas DB unreachable. The gateway exits hot — expect a restart.
resolver planner keystoneOptional dependencies; downstream features degrade.
aiDJED AI gateway key or readiness unavailable; planner falls back to baseline where possible.
openrouterDeprecated compatibility alias for ai.
ontologyAtlas ontology not registered with Keystone — apply the ACL grant runbook.

When any optional dependency is configured but unreachable, the aggregate status flips from ok to degraded so make doctor reports the real failure mode rather than green-on-paper success.