Appearance
Handoff: SVC-001-default-route-proof-bundle api-gateway default route proof bundle
Scope
- Service/area:
api-gateway - Task ID:
SVC-001-default-route-proof-bundle - Dispatch ID:
SVC-001 - Task pack:
docs/agents/service-tasks/api-gateway.md - Accepted first-slice handoff:
docs/agents/handoffs/SVC-001-protected-route-jwks-rehearsal.md - Goal: produce the gateway route diff, live/browser route proof, and rollback notes required before any default public route promotion.
- Non-goals: modifying
deploy/gateway/routes.json, approving default promotion, changing IAM/Profile ownership, editing frontend callers, or changing legacy source under/Users/velikho/Desktop/WORKING/HOCTAPAZ/.
Docs Read
docs/architecture/service-responsibility-matrix.mddocs/architecture/api-contract-strategy.mddocs/agents/service-agent-manifest.jsondocs/agents/service-agent-proof-ledger.jsondocs/agents/service-agent-closeout-ledger.jsondocs/agents/service-agent-execution-queue.jsondocs/agents/service-agent-next-slice-queue.jsondocs/agents/service-agent-next-slice-closeout-ledger.jsondocs/agents/service-agent-next-slice-spawn-packets.mddocs/agents/service-agent-accepted-handoffs.mddocs/agents/agent-handoff-format.mddocs/agents/service-tasks/api-gateway.mddocs/agents/handoffs/SVC-001-protected-route-jwks-rehearsal.mddocs/qa/iam-profile-route-rollback-rehearsal.mddocs/qa/auth-route-live-smoke.mddocs/qa/auth-route-browser-smoke.mddocs/qa/profile-route-live-smoke.mddocs/qa/profile-route-browser-smoke.mddocs/qa/api-gateway-default-route-proof-bundle.md
Legacy Evidence Read
/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/src/main.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/src/modules/**/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/web/lib/api-config.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/web/lib/api.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/web/lib/client-api.ts
Legacy source was read-only evidence only. No file under /Users/velikho/Desktop/WORKING/HOCTAPAZ/ was changed.
Files Changed
docs/agents/handoffs/SVC-001-default-route-proof-bundle.mddocs/qa/api-gateway-default-route-proof-bundle.mddocs/agents/service-agent-next-slice-closeout-ledger.jsondocs/agents/service-agent-next-slice-closeout-ledger.mddocs/agents/service-agent-accepted-handoffs.mddocs/api/api-gateway.mddocs/index.mddocs/.vitepress/config.tsdocs/qa/service-agent-goal-completion-audit.mddocs/qa/service-agent-readiness-smoke.md
No gateway route table or runtime source was changed in this proof-only slice.
Behavior Implemented
- The gateway route diff is documented and backed by the route coverage guards for auth, profile, organization, attempt, and BFF native candidates.
- Live/browser route proof is indexed from confirmed gateway artifacts, including browser-observed route headers and legacy sibling behavior.
- Rollback notes are captured by a fresh 2026-07-10 artifact proving
deploy/gateway/routes.jsonremains the rollback table with broad routes onlegacy_proxyand exact native carve-outs absent. - No default route was promoted. This is an audit/proof slice with no new business behavior; the existing gateway route behavior remains unchanged.
Required evidence covered:
- gateway route diff
- live/browser route proof
- rollback notes
Tests And Verification
Command:
GOTOOLCHAIN=go1.25.11 go test ./services/api-gateway/...Result: passed with
ok .../services/api-gateway/internal/gateway.Command:
make test-auth-routes test-auth-routes-live test-auth-routes-browser test-auth-routes-session-browser test-profile-routes test-organization-routes test-attempt-routes test-bff-routesResult: static route coverage and all self-tests passed. The aggregate command then stopped at the intentional live confirmation guard because
AUTH_ROUTE_LIVE_CONFIRM=auth-nativewas not supplied. This guard prevents an unreviewed live call; confirmed live/browser results are recorded indocs/qa/api-gateway-default-route-proof-bundle.md.Command:
make test-auth-routesResult: passed. Default auth table remained legacy and native auth examples passed static coverage plus live/browser/session self-tests.
Command:
make test-profile-routes test-organization-routes test-attempt-routes test-bff-routesResult: passed. Profile, organization, attempt, and BFF route tables passed static coverage and the BFF gateway test.
Command:
make test-frontend-boundaryResult: passed. Frontend callers remain gateway/BFF-only.
Command:
IAM_PROFILE_ROUTE_ROLLBACK_ARTIFACT_DIR=output/qa/iam-profile-route-rollback-20260710-svc001 make test-iam-profile-route-rollbackResult: passed. The artifact records
defaultRouteTableModified=false, broadauth,admin, andfallbackaslegacy_proxy, and native exact routes as absent from the rollback table.Existing runtime evidence reviewed:
output/qa/auth-route-live-20260709-115133/,output/playwright/auth-route-browser-smoke-20260709-115940/,output/playwright/auth-route-session-browser-smoke-20260709-100744/,output/qa/profile-route-live-20260709-121055/,output/playwright/profile-route-browser-smoke-20260709-121825/, andoutput/qa/iam-profile-default-candidate-rollback-20260709-095948/.
Route State
- Route/default state: non-default rehearsal; default route promotion still requires live/browser proof and rollback notes
deploy/gateway/routes.jsonremains the default table and was not modified.- Auth, profile, organization, attempt, and BFF native candidates remain in separate route tables with exact route matching and legacy fallbacks.
- Rollback: restore/use
GATEWAY_ROUTE_TABLE=deploy/gateway/routes.json, then runmake test-iam-profile-route-rollbackand the affected route coverage target. Do not leave native carve-outs active in the default table. - IAM/Profile populated-target validation, UUID primary-key promotion, and candidate approval remain outside this handoff.
Data Notes
- Tables touched: none.
- Migrations: none.
- Data validation report: not applicable because this slice changed no data.
Risks / Blockers
- The live smoke command is explicitly confirmation-gated; the aggregate workflow without
AUTH_ROUTE_LIVE_CONFIRM=auth-nativeis expected to stop rather than contact a gateway. - Existing live/browser evidence is non-default rehearsal evidence, not default promotion approval.
- Production-like IAM/Profile populated data, required migrator run report, candidate route review, and rollback-after-candidate approval remain open.
- The broad service-agent goal remains
active-not-complete.
Next Step
- Continue with
SVC-002-owner-source-gateway-prooffor BFF owner-service source evidence and gateway aggregation proof, while keeping default gateway routes orchestrator-owned.