Restore platform ownership for v2 evidence routes
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user