Skip to main content

Task 6 follow-up — Admin-only X-Db-Override: prod middleware

Summary​

New dbOverrideMiddleware swaps c.env.DATABASE_URL to c.env.PROD_DATABASE_URL for the current request when ALL of:

  • request header X-Db-Override: prod is present,
  • ALLOW_PROD_DB_DEBUG === 'true' (already set on dev in wrangler.jsonc),
  • PROD_DATABASE_URL secret is bound, and
  • the authenticated user is an admin.

Mounted on /api/* directly after sessionMiddleware, so every downstream adapter / repository call observes the swapped URL transparently.

Files​

  • services/backend/src/auth/auth-middleware.ts — dbOverrideMiddleware export
  • services/backend/src/index.ts — middleware registered after sessionMiddleware
  • services/backend/src/worker-types.ts — PROD_DATABASE_URL, ALLOW_PROD_DB_DEBUG typed