Skip to content
GitHub
Operator

Hosting runbook

What runs where, and how to inspect it. The topology decision is ADR-109; the deploy procedure is deployment.md.

What runs where

SurfaceHost
API (api.) + workers + the World AgentOne Cloudflare Container (infra/docker/app.Dockerfile, app_supervisor.py runs both entrypoints), fronted by the spectral Worker. Predicate execution is in-process for alpha.
Dashboard (app.)Cloudflare Pages project spectral-dashboard with a Pages Function proxy for same-origin /api/*.
Operations (ops.)Cloudflare Pages project spectral-operations with JWKS-local Pages Function middleware and same-origin /operator/* proxying.
Docs (docs.), Codex (codex.)Cloudflare Pages (spectral-docs public; spectral-codex gated by a JWKS-local Pages Function).
Database, Auth, pgvectorSupabase (locked), reached over the session pooler.

The API and workers are separately-launchable entrypoints (apps/api, apps/workers), so re-splitting a tier onto its own host later is a deploy-manifest change, not a code change (ADR-109 D1).

Health

curl -s https://api.runspectral.com/health | jq

200 with outbox: wired is healthy. llm/delegation may report degraded until the per-domain LLM credential and act-as signing key are provisioned (expected pre-SPEC-549). /version reports the build sha + deployment generation.

Deploy / rollback

See deployment.md. Container cutover is generation-stamped; rollback is forward-fix (revert + redeploy; expand/contract migrations keep the prior generation safe). Pages surfaces roll back independently by redeploying/reverting the relevant product Pages project.