ADMIN-OPS-002 — systems registry: every external/infra dependency + honest status
Return the curated systems registry with live-computed status.
ADMIN-OPS-002. The operator's "is everything wired?" answer on one screen: backend API, database, redis, cert-signing, backups, Sentry, PostHog, email, Stripe, Hetzner, GitHub, DNS, support mailbox.
Read-only — no mutation, no audit row (nothing changes). Reuses the same live probes as GET /health/dependencies (DB SELECT 1, Redis PING) rather than inventing a second health path.
HONESTY (the point of this surface): - "ok" only when we actually probed it live this request (backend, DB, Redis). - "configured" reflects safe configuration presence or current declarative proof for services we can't ping (Sentry, PostHog, Resend, Stripe, WireGuard); "not_configured" means the required configuration/posture declaration is absent. - "unknown" for posture this API cannot independently verify (Hetzner, GitHub, DNS, the GH-Actions-scoped backup workflow, the support mailbox, the frontend web app, and declaration-only controls such as the WireGuard deployment plane).
SECRET SAFETY: the response contains ONLY booleans + public labels. No DSN / API key / connection string value is ever emitted (see services/admin_systems.py).
Authorization: - Anonymous → 401 (auth dep on require_admin). - Authenticated non-admin → 403 (require_admin). - Admin (email in ADMIN_EMAILS) → 200.
Flag gate (rule #4): 404 when ADMIN_DASHBOARD_ENABLED is off, so the whole /admin/* surface stays uniformly gated.
Response shape: { "computed_at": "<ISO8601 UTC>", "environment": "<env>", "version": "<app version>", "categories": ["frontend", "backend", "data", ...], "systems": [ {"id": "database", "name": "Database", "category": "data", "provider": "Neon serverless Postgres (EU · Frankfurt)", "status": "ok", "status_detail": "...", "metrics": [{"label": "Reachable", "value": "yes"}, ...], "dashboard_url": "https://console.neon.tech", "runbook_url": "https://github.com/.../RUNBOOK-postgres.md", "description": "..."}, ... ] }
Request
- Base URL: https://api.badgeia.com
- URL: https://api.badgeia.com/api/v1/admin/systems
- Auth: none declared
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.