Operations Evidence
A source-linked map of PopChoice operational surfaces.
Protected surfaces were not opened and authentication was not bypassed. Unless
marked production verified, the statuses below mean code/docs/tests exist on
development, not that the deployed private surface was inspected live.
| Surface | Why / operator | Managed object or process | Status | Primary evidence |
|---|---|---|---|---|
| Backoffice | Gives the project owner one operator console | Navigation across catalog, repairs, evals, and usage | Shipped in development; live protected surface unverified | app routes, Backoffice docs |
| Catalog health | Finds missing metadata, stale TMDB data, and duplicate risk | PostgreSQL catalog-health queries and samples | Shipped in development | page, shared catalog health |
| Catalog seed | Prepares a fresh/empty catalog without SSH | movie-seed BullMQ job and bounded follow-up repair | Shipped in development | page, worker |
| Repair batches | Tracks bulk metadata repairs beyond BullMQ retention | Durable batches/items plus catalog-maintenance jobs | Shipped in development | routes, Backoffice repair workflow |
| Duplicate/TMDB review | Lets an operator review ambiguous identity matches | tmdb_match_reviews, review actions, audit trail; duplicate merge remains guarded | Shipped in development; some duplicate UI work remains planned | review routes, Backoffice docs |
| Recommendation evals | Runs deterministic/real-data/live evaluation modes with explicit controls | recommendation-evals queue and persisted reports | Shipped in development | backoffice routes, eval fixtures |
| Bull Board | Inspects BullMQ jobs and failures | Recommendation, more-picks, seed, maintenance, eval queues | Shipped in development; live protected surface unverified | app, Services queue map |
| OpenAI usage | Gives the owner aggregate provider usage/cost context | Admin Costs API snapshots and live-eval usage | Shipped in development; live protected surface unverified | page, Backoffice config |
| Storybook | Reviews shared component states outside product flows | Component stories and browser component tests | Production verified as publicly reachable on 2026-07-16; intended access policy needs owner confirmation | live Storybook, stories, UI development, CI Storybook job |
| Documentation | Keeps setup, product, release, operations, and runbooks versioned | docs/ rendered by the Fumadocs app | Production verified as publicly reachable on 2026-07-16 | live docs, docs source, docs app |
| Staging/promotion | Separates merged development deploys from approved production promotion | GHCR image bundle, Coolify webhook, health/build verification | Shipped in development; production build provenance Production verified on 2026-07-16 | workflow, Coolify docs, production build |
| Observability | Provides metrics, logs, traces, dashboards, uptime, and operational diagnosis | Prometheus/Grafana/Loki/OTel/Uptime Kuma stack | Shipped in development as code/config; private live dashboards unverified | compose, metrics, logs, traces |
| Alerts and runbooks | Gives the owner severity rules and recovery procedures | Alert rules, queue/app/DB/Redis/provider/disk runbooks | Shipped in development as config/docs; notification delivery unverified | alerts, runbooks, uptime |
Live verification boundary
Production verified — 2026-07-16. Public /api/build and /api/health
were checked without mutation. They confirmed the release provenance and current
PostgreSQL/Redis health response.
Anecdotal / unverified. No claim is made that Backoffice, Bull Board,
Grafana, or OpenAI Usage is currently reachable, populated, alerting, or
routinely used in production. Their code and deployment shape are real; a
future portfolio capture needs owner-authorized access and redaction. Storybook
returned a public 200 and exposed its story index during this pass even though
deployment docs describe it as a surface that may be private/admin-only; confirm
the intended access policy with the owner.