AKS and Storage route packages¶
Motivation¶
api/routes/aks.py and api/routes/storage.py had grown into mixed-responsibility route modules. The earlier BLAST and monitor package split established a clearer route-package pattern, so AKS and Storage now follow the same structure.
User-facing change¶
No endpoint paths, payloads, or response shapes changed. Existing dashboard calls continue to use /api/aks/* and /api/storage/*.
API / IaC diff summary¶
- Split
/api/aksintoapi/routes/aks/submodules for SKUs, provisioning, OpenAPI deploy/spec/proxy, lifecycle, and role assignment. - Split
/api/storageintoapi/routes/storage/submodules forprepare-dband local-debug storage firewall helpers. - Moved BLAST job projection, file preview, external OpenAPI context/cache, and Table sync helpers from
api/routes/_blast_shared.pytoapi/services/blast_job_state.pywhile preserving_blast_sharedre-exports for compatibility. - Added route contract coverage for AKS and Storage package import surfaces and catch-all ordering.
- Updated route maps in
api/routes/README.md,docs/copilot/codebase-map.md, andAGENTS.md. - No IaC changes.
Validation evidence¶
PYTHONPATH=$PWD uv run pytest -q api/tests/test_route_contracts.py-> 5 passed.uv run ruff check api-> all checks passed.PYTHONPATH=$PWD uv run pytest -q api/tests-> 707 passed.- Control-character scan across changed route/service/test/note files returned no matches.