mirror of
https://github.com/azaion/satellite-provider.git
synced 2026-06-21 19:51:14 +00:00
76076cbd90
Drains the cycle-2 retrospective top-3 improvement actions plus three carried-forward security and process items, into 6 individually- trackable PBIs: - AZ-491 (3 SP) consolidate JWT test-mint helpers (Retro Action 1) - AZ-492 (3 SP) perf harness PT-07 + PT-08 + JWT-attach (Retro Act. 2) - AZ-493 (2 SP) integration test DB-reset hook (Retro Action 3) - AZ-494 (2 SP) JWT iss/aud validation (cycle-2 F-AUTH-2 Medium) - AZ-495 (1 SP) doc-folder convention for WebApi (cycle 1+2 F1 carry) - AZ-496 (2 SP) bump AspNetCore 8.0.21 -> 8.0.25 (cycle 1+2 D1+D3) All 6 at-or-below the user-rule 5 SP cap. AZ-494 gated on admin-team confirming iss/aud values. Cycle 3 total: 13 SP. Autodev pointer advances to Step 10 Implement. Co-authored-by: Cursor <cursoragent@cursor.com>
143 lines
8.4 KiB
Markdown
143 lines
8.4 KiB
Markdown
# Task Dependencies
|
|
|
|
## Dependency Graph
|
|
|
|
### Step 6 — Implement Tests (AZ-285..AZ-290)
|
|
|
|
| Task | Depends On | Points | Status |
|
|
|------|-----------|--------|--------|
|
|
| AZ-285 Test Infrastructure | — | 3 | Done |
|
|
| AZ-286 TileService Tests | AZ-285 | 3 | Done |
|
|
| AZ-287 RegionService Tests | AZ-285 | 3 | Done |
|
|
| AZ-288 RouteService Tests | AZ-285 | 3 | Done |
|
|
| AZ-289 Integration Route Maps | AZ-285 | 2 | Done |
|
|
| AZ-290 Non-Functional Tests | AZ-285 | 3 | Done |
|
|
|
|
### Step 8 — Refactor 02-coupling-refactoring (AZ-309 epic)
|
|
|
|
| Task | Depends On | Points | Status |
|
|
|------|-----------|--------|--------|
|
|
| AZ-310 ServeTile via ITileService | — | 3 | Done (In Testing) |
|
|
| AZ-311 GetTileByLatLon via ITileService | AZ-310 | 2 | Done (In Testing) |
|
|
| AZ-312 Split Services into 3 csprojs | AZ-311 | 5 | Done (In Testing) |
|
|
| AZ-313 Update consumers (Api/Tests) | AZ-312 | 3 | Done (In Testing) |
|
|
| AZ-314 DI registration split | AZ-313 | 2 | Done (In Testing) |
|
|
| AZ-315 Documentation sync | AZ-314 | 2 | In Progress |
|
|
|
|
### Step 8 — Refactor 03-code-quality-refactoring (AZ-350 epic)
|
|
|
|
Roadmap: `_docs/04_refactoring/03-code-quality-refactoring/analysis/refactoring_roadmap.md` (4 execution phases).
|
|
|
|
| Task | C-ID | Title | Phase | Depends On | Points | Status |
|
|
|------|------|-------|-------|-----------|--------|--------|
|
|
| AZ-351 | C01 | Fix null logger to DatabaseMigrator | 1 | — | 2 | Done (In Testing) |
|
|
| AZ-352 | C02 | Replace empty catch in ExtractTileCoordinatesFromFilename | 1 | — | 2 | Done (In Testing) |
|
|
| AZ-363 | C10 | Delete write-only counters in RegionRequestQueue | 1 | — | 1 | Done (In Testing) |
|
|
| AZ-356 | C05 | Stub endpoints return 501 | 1 | — | 2 | Done (In Testing) |
|
|
| AZ-354 | C04 | Strict CORS by default | 1 | — | 2 | Done (In Testing) |
|
|
| AZ-353 | C03 | Sanitize 5xx responses via IExceptionHandler | 1 | — | 3 | Done (In Testing) |
|
|
| AZ-359 | C07 | Consolidate RegionService catch ladder | 2 | — | 3 | Done (In Testing) |
|
|
| AZ-357 | C06 | Drop tile Version concept; new migration | 2 | — | 5 | Done (In Testing) |
|
|
| AZ-362 | C09 | Idempotent POST contract | 2 | AZ-353 | 3 | Done (In Testing) |
|
|
| AZ-366 | C13 | Consolidate Haversine + filename parser | 3 | — | 2 | Done (In Testing) |
|
|
| AZ-377 | C24 | Consolidate Earth constants + 111000 | 3 | AZ-371 | 2 | Done (In Testing) |
|
|
| AZ-368 | C15 | Shared TileCsvWriter | 3 | — | 2 | Done (In Testing) |
|
|
| AZ-367 | C14 | Shared TileGridStitcher | 3 | AZ-364 | 3 | Done (In Testing) |
|
|
| AZ-369 | C16 | Move inline DTOs out of Program.cs | 3 | — | 2 | Done (In Testing) |
|
|
| AZ-365 | C12 | Decompose RouteService.CreateRouteAsync | 3 | — | 5 | Done (In Testing) |
|
|
| AZ-364 | C11 | Decompose RouteProcessingService god-class | 3 | AZ-366, AZ-367 (folds in AZ-360) | 5 | Done (In Testing) |
|
|
| AZ-360 | C08 | Replace IServiceProvider in RouteProcessingService | 3 | AZ-364 (folded) | 2 | Done (In Testing) |
|
|
| AZ-371 | C18 | Magic numbers → ProcessingConfig/MapConfig | 4 | — | 3 | Done (In Testing) |
|
|
| AZ-370 | C17 | Status / point-type enums + AC RT2 update | 4 | — | 3 | Done (In Testing) |
|
|
| AZ-373 | C20 | Clarify / drop MapsVersion | 4 | AZ-357 | 2 | Done (In Testing) |
|
|
| AZ-374 | C21 | Typed HttpClient for Google Maps | 4 | — | 2 | Done (In Testing) |
|
|
| AZ-375 | C22 | O(N) existing-tile lookup (HashSet) | 4 | AZ-371 | 2 | Done (In Testing) |
|
|
| AZ-376 | C23 | Delete unused FindExistingTileAsync | 4 | — | 1 | Done (In Testing) |
|
|
| AZ-378 | C25 | Repo `_logger` fields: delete or use | 4 | — | 1 | Done (In Testing) |
|
|
| AZ-379 | C26 | Extract repo SELECT column-list constants | 4 | — | 2 | Done (In Testing) |
|
|
| AZ-380 | C27 | Delete CalculatePolygonDiagonalDistance | 4 | — | 1 | Done (In Testing) |
|
|
| AZ-372 | C19 | dotnet format + NetAnalyzers + Coverlet | 4 | — | 3 | Done (In Testing) |
|
|
|
|
### Step 9 cycle 1 — New Task: Multi-source tile storage + UAV upload (AZ-483 epic)
|
|
|
|
| Task | Title | Depends On | Points | Status |
|
|
|------|-------|-----------|--------|--------|
|
|
| AZ-484 | Multi-source tile storage schema (source + captured_at) | — | 5 | Done (deployed cycle 1) |
|
|
|
|
### Step 9 cycle 2 — New Task: JWT validation baseline + UAV upload completion
|
|
|
|
| Task | Title | Depends On | Points | Status |
|
|
|------|-------|-----------|--------|--------|
|
|
| AZ-487 | JWT validation baseline (HS256, JWT_SECRET, all endpoints) | — (consumes suite-level contract `suite/_docs/10_auth.md`) | 2 | Done (In Testing) |
|
|
| AZ-488 | UAV tile upload endpoint with batch + 5-rule quality gate | AZ-487 (hard prereq), AZ-484 contract `tile-storage.md` v1.0.0 | 8 (over-cap, user-accepted) | Done (In Testing) |
|
|
|
|
### Step 9 cycle 3 — New Task: Cycle-2 follow-ups (test infra + security hardening + process)
|
|
|
|
Source: cycle-2 retrospective top-3 improvement actions + carried-forward security and process items (`_docs/06_metrics/retro_2026-05-11_cycle2.md`).
|
|
|
|
| Task | Title | Depends On | Points | Status |
|
|
|------|-------|-----------|--------|--------|
|
|
| AZ-491 | Consolidate JWT test-mint helpers | — (logically follows AZ-487 which introduced both copies) | 3 | To Do |
|
|
| AZ-492 | Perf harness: PT-07 + PT-08 + JWT-attach in run-performance-tests.sh | AZ-487 (hard — Bearer token); AZ-491 (soft — token-mint reuse) | 3 | To Do |
|
|
| AZ-493 | Integration test DB-reset hook | — | 2 | To Do |
|
|
| AZ-494 | JWT iss/aud validation (enable + configure) | AZ-487 (extends `AddSatelliteJwt`); external: admin team confirms iss/aud values | 2 | To Do (blocked on cross-team input) |
|
|
| AZ-495 | Resolve doc-folder convention for WebApi component | — | 1 | To Do |
|
|
| AZ-496 | Bump Microsoft.AspNetCore.OpenApi + JwtBearer to 8.0.25 | — | 2 | To Do |
|
|
|
|
## Execution Order
|
|
|
|
### Step 6
|
|
1. AZ-285 (test infrastructure — all others depend on this)
|
|
2. AZ-286, AZ-287, AZ-288 (unit tests — can run in parallel)
|
|
3. AZ-289 (integration tests — depends on infra only)
|
|
4. AZ-290 (non-functional tests — depends on infra only)
|
|
|
|
### Step 8 (02-coupling-refactoring)
|
|
1. AZ-310 → AZ-311 (Phase A: route tile endpoints through ITileService)
|
|
2. AZ-312 → AZ-313 → AZ-314 (Phase B: physical split + consumer + DI rewire)
|
|
3. AZ-315 (Phase C: docs sync, must be last)
|
|
|
|
### Step 8 (03-code-quality-refactoring)
|
|
Phase 1 (Critical fixes): AZ-351 → AZ-352 → AZ-363 → AZ-356 → AZ-354 → AZ-353
|
|
Phase 2 (Correctness): AZ-359 → AZ-357 → AZ-362 (AZ-362 needs AZ-353)
|
|
Phase 3 (Structural cleanup): AZ-366 → AZ-377 → AZ-368 → AZ-367 → AZ-369 → AZ-365 → AZ-364 (folds AZ-360) — AZ-377 needs AZ-371
|
|
Phase 4 (Typing/config/tooling/polish): AZ-371 → AZ-370 → AZ-373 → AZ-374 → AZ-375 → AZ-376 → AZ-378 → AZ-379 → AZ-380 → AZ-372
|
|
|
|
### Step 9 cycle 1 (Multi-source tile storage epic AZ-483)
|
|
1. AZ-484 — Multi-source tile storage schema (foundational)
|
|
|
|
### Step 9 cycle 2
|
|
1. AZ-487 — JWT validation baseline (must merge first; AZ-488 hard-depends on it)
|
|
2. AZ-488 — UAV tile upload endpoint + 5-rule quality gate (consumer of both AZ-484 contract and AZ-487 auth)
|
|
|
|
### Step 9 cycle 3
|
|
|
|
Independent tracks — most tasks can run in parallel; the only ordering constraint is the AZ-491 → AZ-492 soft dependency for token-mint reuse.
|
|
|
|
1. AZ-495 (1 SP) — doc-folder convention. Cheapest unblocker; lands first to stop the F1 recurrence.
|
|
2. AZ-491 (3 SP) — consolidate JWT test-mint helpers. Pre-stages AZ-492 if implementer picks Option B.
|
|
3. AZ-493 (2 SP) — integration test DB-reset hook. Independent.
|
|
4. AZ-496 (2 SP) — bump AspNetCore 8.0.25. Independent.
|
|
5. AZ-492 (3 SP) — perf harness. After AZ-491 if Option B; else any time.
|
|
6. AZ-494 (2 SP) — JWT iss/aud validation. Gated on cross-team input; not blocked by other cycle-3 tasks.
|
|
|
|
## Total Effort
|
|
|
|
Step 6: 6 tasks, 17 story points
|
|
Step 8 (02-coupling-refactoring): 6 tasks, 17 story points
|
|
Step 8 (03-code-quality-refactoring): 27 tasks, ~66 story points
|
|
Step 9 cycle 1: 1 task created (AZ-484, 5 pts)
|
|
Step 9 cycle 2: 2 tasks created (AZ-487 = 2 pts, AZ-488 = 8 pts over-cap user-accepted) — total 10 pts
|
|
Step 9 cycle 3: 6 tasks created (AZ-491 = 3 pts, AZ-492 = 3 pts, AZ-493 = 2 pts, AZ-494 = 2 pts, AZ-495 = 1 pt, AZ-496 = 2 pts) — total 13 pts
|
|
|
|
## Coverage Verification
|
|
|
|
| Test Spec Category | Covered By |
|
|
|-------------------|------------|
|
|
| blackbox-tests.md (BT-01..BT-12, BT-N01..BT-N05) | AZ-286, AZ-287, AZ-288, AZ-289 |
|
|
| performance-tests.md (PT-01..PT-06) | AZ-290 |
|
|
| resilience-tests.md (RS-01..RS-06) | AZ-290 |
|
|
| security-tests.md (SEC-01..SEC-04) | AZ-290 |
|
|
| resource-limit-tests.md (RL-01..RL-04) | AZ-290 |
|
|
| traceability-matrix.md (100% AC coverage) | All tasks combined |
|