POST /api/v1/agents inserts a row with status=provisioning, seeds URLs, enqueues work, and returns in about a second. The worker then walks a strict, ordered set of readiness gates stored on the agent:
GET /api/v1/agents/{id} until stages complete and status is running (or error).
Stage order
Stages are not parallel. Later stages stay
pending until earlier ones succeed.
Status values
Each stage object looks like:
Treat coral/
error as terminal for that attempt. Amber/waiting is normal during Autopilot pull, DNS, and HTTP backoff.
Worked polling example
Retries and reprovision
- Hard failures during provision may return 503 from the worker so Cloud Tasks retries with backoff.
- After a sticky error, owners can call
POST /api/v1/agents/{id}/reprovisionto re-enqueue. - Restore flows add
restore_*keys alongside the create stages; hostname stays the same.
After success
Whenstatus is running:
- Open
dashboard_url(basic auth — reveal password withPOST …/credentials/reveal) - Call the tenant Hermes API at
api_urlwith the tenant API key (not yourso_control-plane key)

