Files
SkyMoney/docs/api-phase8-move-log.md
Ricearoni1245 952684fc25
All checks were successful
Deploy / deploy (push) Successful in 1m32s
Security Tests / security-non-db (push) Successful in 21s
Security Tests / security-db (push) Successful in 27s
phase 8: site-access and admin simplified and compacted
2026-03-18 06:43:19 -05:00

3.3 KiB

API Phase 8 Move Log

Date: 2026-03-17
Scope: Move admin and site-access endpoints out of api/src/server.ts into dedicated route modules.

Route Registration Changes

  • Added site-access route import in server.ts
  • Added admin route import in server.ts
  • Registered site-access routes in server.ts
  • Registered admin routes in server.ts
  • New canonical route modules:
  • Removed inline route blocks from server.ts to avoid duplicate registration:
    • GET /site-access/status
    • POST /site-access/unlock
    • POST /site-access/lock
    • POST /admin/rollover

Endpoint Movements

  1. GET /site-access/status
  1. POST /site-access/unlock
  1. POST /site-access/lock
  1. POST /admin/rollover

Helper Ownership in Phase 8

  • Shared helper injection from server.ts:
    • authRateLimit
    • mutationRateLimit
    • hasSiteAccessBypass
    • safeEqual
    • isInternalClientIp
    • runtime config flags and cookie settings (UNDER_CONSTRUCTION, break-glass, cookie domain/secure, etc.)
  • Route-local helpers/schemas:
    • site-access.ts: unlock payload schema
    • admin.ts: rollover payload schema
  • Retained in server.ts by design for global hook behavior:
    • site-access bypass token derivation and onRequest maintenance-mode enforcement

Verification

  1. Build
  • cd api && npm run build
  1. Focused tests
  • cd api && npm run test -- tests/access-control.admin-rollover.test.ts tests/security-misconfiguration.test.ts
  • Result: blocked by local DB connectivity (127.0.0.1:5432 unavailable), suite skipped/failed before endpoint assertions.