Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Signals CI & Image / signals-ci (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
Policy Simulation / policy-simulate (push) Has been cancelled
SDK Publish & Sign / sdk-publish (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
2.5 KiB
2.5 KiB
Orchestrator API (DOCS-ORCH-33-001)
Imposed rule: Work of this type or tasks of this type on this component must also be applied everywhere else it should be applied.
Last updated: 2025-11-25
Scope & headers
- Base path:
/api/v1/orchestrator. - Required headers:
Authorization: Bearer <token>,X-Stella-Tenant,traceparent(recommended),Idempotency-Keyfor POSTs that mutate state. - Error envelope: see
docs/api/overview.md(code/message/trace_id).
DAG management
POST /dags— create/publish DAG version. Body includesdagId,version,steps[],edges[],metadata,signature.GET /dags— list DAGs (stable sort bydagId, thenversionDESC). Filters:dagId,active=true|false.GET /dags/{dagId}/{version}— fetch DAG definition.POST /dags/{dagId}/{version}:disable— disable a version (requiresorchestrator:admin).
Runs
POST /runs— start a run; acceptsdagId, optionalversion,inputs(object),runToken(idempotency). ReturnsrunId,traceId.GET /runs— list runs with filtersdagId,status,from,to. Sort:startedUtcDESC, thenrunId.GET /runs/{runId}— run detail with step states and hashes.POST /runs/{runId}:cancel— request cancellation (best-effort, idempotent).
Steps & artifacts
GET /runs/{runId}/steps— list step executions.GET /runs/{runId}/steps/{stepId}— step detail, includingattempts[],logsRef,outputsHash.GET /artifacts/{hash}— retrieve artifact by content hash (if tenant owns it).
WebSocket stream
GET /runs/stream?dagId=&status=— server sends NDJSON events:run.started,run.updated,step.updated,run.completed,run.failed,run.cancelled. Fields:tenant,dagId,runId,status,timestamp,traceId.
Admin/ops
POST /admin/warm— warm caches for DAGs/plugins (optional).GET /admin/health— liveness/readiness; includes queue depth per tenant.GET /admin/metrics— Prometheus scrape endpoint.
Determinism & offline posture
- All list endpoints have deterministic ordering; pagination via
page_token/page_size. - No remote fetches; DAGs/plugins must be preloaded. Exports available as NDJSON with stable ordering.
- Hashes lowercase hex; timestamps UTC ISO-8601.
Security
- Scopes:
orchestrator:read,orchestrator:write,orchestrator:admin(publish/disable DAGs, cache warm). - Tenant isolation enforced on every path; cross-tenant access forbidden.