AUTH4D-4 runtime boundary
Runtime endpoints
| Method | Path | Behavior |
|---|---|---|
GET |
/health |
Liveness check. Does not imply that dependencies are ready. |
GET |
/ready |
Readiness check for canonical origins and required Cloudflare bindings. |
GET |
/ and /login/* |
Hosted-login static assets. |
GET, POST, PUT |
/management/* |
Management feature slot; rejects requests until control-plane authentication is implemented. |
The fixed feature route factories reserve the OAuth, tenant identity, device authorization, and
management paths described in docs/architecture/security-contracts.md. Authentication routes
return a no-store OAuth error while their feature tickets remain unimplemented. Management routes
use the structured management error envelope.
Every response receives a server-generated X-Request-Id and baseline browser security headers.
Authentication and hosted-login responses use Cache-Control: no-store. JSON mutations require
application/json, except OAuth token, revocation, and device authorization form submissions, which
require application/x-www-form-urlencoded. Bodies are capped at the shared 65,536-byte contract
limit and JSON is parsed at the HTTP boundary.
Management CORS is limited to the configured console origin. Authentication route CORS allows the
configured canonical origins and optional comma-separated CLIENT_ORIGINS; production tenant
client origin policy will be enforced by its owning feature. Issuer URLs are formed only from the
configured AUTH_ORIGIN, never from request host headers.
RUNTIME_ENV must be set to local, staging, or production. Only production trusts
Cloudflare’s CF-Connecting-IP; staging ignores forwarded address headers, and local mode uses the
fixed loopback address for deterministic tests.
Source: docs/api-spec/auth4d-4.md