Restore platform ownership for v2 evidence routes

This commit is contained in:
master
2026-03-10 13:10:06 +02:00
parent ffd4646d89
commit fc7aaf4d37
9 changed files with 132 additions and 5 deletions

View File

@@ -0,0 +1,48 @@
# Sprint 20260310-022 - Router Platform V2 Evidence Frontdoor Mapping
## Topic & Scope
- Restore the explicit frontdoor contract for `/api/v2/evidence/*` so the environment posture and Mission Control evidence read models resolve through Platform instead of the generic v2 catch-all.
- Keep the work inside the Router route table and regression coverage, with only the minimal compose/docs coordination edits required to keep scratch setup deterministic.
- Working directory: `src/Router`.
- Allowed coordination edits: `devops/compose/router-gateway-local.json`, `docs/modules/router/architecture.md`, `devops/compose/README.md`, `docs/implplan/SPRINT_20260310_022_Router_platform_v2_evidence_frontdoor_mapping.md`.
- Expected evidence: focused router tests, live frontdoor curl proof, and Playwright reruns showing the prior `/api/v2/evidence/packs` 404 is gone.
## Dependencies & Concurrency
- Depends on the local compose stack being reachable through `https://stella-ops.local`.
- Safe parallelism: avoid unrelated Platform and Web feature edits while this router iteration is in progress.
## Documentation Prerequisites
- `AGENTS.md`
- `docs/modules/router/architecture.md`
- `docs/implplan/SPRINT_20260310_021_Router_frontdoor_segment_bound_scheduler_doctor_chunks.md`
## Delivery Tracker
### ROUTER-EVIDENCE-V2-001 - Restore explicit v2 evidence route ownership
Status: DONE
Dependency: none
Owners: QA, Developer, Architect
Task description:
- Add the missing explicit `/api/v2/evidence*` mapping to the Platform frontdoor route table in both appsettings and local compose so the request no longer falls through to the generic `^/api/v2/{service}` route.
- Extend the router regression tests to prove the specific v2 evidence mapping wins over the generic matcher.
Completion criteria:
- [x] Router configs include explicit `/api/v2/evidence*` mapping to `platform`.
- [x] Regression tests cover config presence and route-resolution precedence.
- [x] Live frontdoor requests to `/api/v2/evidence/packs` no longer return router-level `404`.
## Execution Log
| Date (UTC) | Update | Owner |
| --- | --- | --- |
| 2026-03-10 | Sprint created after live Mission Control QA surfaced repeated `404` responses from `/api/v2/evidence/packs` while the direct Platform endpoint still returned the expected tenant-gated `400`. | Developer |
| 2026-03-10 | Added explicit `/api/v2/evidence*` mappings to both router configs, extended router resolution/dispatch tests, and verified `src/Router/__Tests/StellaOps.Gateway.WebService.Tests/StellaOps.Gateway.WebService.Tests.csproj` passes `275/275`. | Developer |
| 2026-03-10 | Restarted `router-gateway`, confirmed `https://stella-ops.local/api/v2/evidence/packs` now returns `401` instead of `404`, and reran `src/Web/StellaOps.Web/scripts/live-mission-control-action-sweep.mjs` with `failedActionCount=0` and `runtimeIssueCount=0`. | QA |
## Decisions & Risks
- Decision: keep `/api/v2/evidence*` as an explicit Platform-owned route alongside the other aggregated v2 read models instead of relying on the generic `^/api/v2/{service}` fallback, because `evidence` is not a standalone frontdoor host in local compose.
- Risk: other aggregated v2 surfaces could still be missing from the explicit route list.
- Mitigation: treat every new frontdoor `404` from a v2 read model as a route-table regression first and extend the explicit mapping test list when confirmed.
## Next Checkpoints
- Rebuild/restart `router-gateway` with the updated route table.
- Rerun the affected Mission Control and environment posture Playwright sweeps.