For how to start services and run smoke checks, use RUNBOOK.md.
Base URL (local dev): http://127.0.0.1:8787
GET /health(unauthenticated process health)GET /api/v1/(v1 health)GET /api/v1/health(public v1 health)POST /api/v1/enroll/startPOST /api/v1/enroll/framePOST /api/v1/enroll/commitPOST /api/v1/enroll/resetPOST /api/v1/enroll/calibratePOST /api/v1/auth/startPOST /api/v1/auth/framePOST /api/v1/auth/finishGET /api/v1/diagnosticsGET /api/v1/settings/telemetryPOST /api/v1/settings/telemetryPOST /api/v1/admin/rotate-keyPOST /api/v1/settings/delete_identity
Auth: all /api/v1/* routes require Authorization: Bearer <EDGE_AUTH_TOKEN> except health routes.
Base URL (local docker): http://127.0.0.1:8000
GET /healthPOST /v1/ingest/eventsGET /v1/admin/eventsGET /v1/admin/devicesGET /v1/admin/stats
Auth:
- Admin routes require header
X-Admin-Token: <ADMIN_API_TOKEN>. - Ingest routes verify device signatures and reject forbidden telemetry fields.
- Admin stats include latency percentiles (
latency_p50_ms,latency_p95_ms) andrisk_distribution.
Base URL (local admin): http://127.0.0.1:3000
POST /api/admin/session/loginPOST /api/admin/session/logoutGET /api/admin/session/me
Auth:
- Login issues an HttpOnly session cookie.
/api/cloud/*proxy routes require a valid session cookie.- Browser-provided
X-Admin-Tokenis ignored by proxy; server injectsADMIN_API_TOKEN.
- Shared schemas and OpenAPI artifacts live in
packages/shared-contracts/. - Regenerate TypeScript contract types with
make gen-types(orscripts/gen_types.sh).