Add governed ALZ release promotion
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-17 00:53:34 +02:00
parent 904f8bd9d2
commit ad2c3481c4
15 changed files with 1357 additions and 19 deletions
+43
View File
@@ -1,3 +1,46 @@
## Sprint 229 - Governed ALZ definitive release promotion (2026-07-17)
Implemented:
- Added `scripts/manage_alz_agriculture_release.py` with separate read-only
`plan`, filesystem-only `stage`, named `review` and exact-hash `apply`
actions for the approved Kempen regional scope.
- Derived the only accepted future archive from the allowlisted definitive
`YYYY-v3` campaign and publication date exposed by the existing source-
catalog probe. Provisional v1/v2 snapshots remain visible but non-importable;
arbitrary URLs, current/older releases and catalog drift fail closed.
- Extended the existing agricultural provisioner to accept exactly one
explicitly governed future edition per run. Final response URLs and streamed
archive size are bounded, retained editions cannot be overridden and all
workspace API collections are read with stable-total pagination.
- Bound archive, normalized GeoJSON, GeoPackage schema/CRS, complete crop-code
list, scope counts/area and previous-definitive-edition manifest/deltas into
the staged plan. ZIP member/extracted size is bounded. Review and apply
require exact SHA-256 values; apply still uses DatasetService and preserves
all historical snapshots.
- Packaged the manager in the Unraid image/readiness gate and updated source,
data, API, persistence, storage and operator documentation. No endpoint,
migration, scheduler, browser fetch or frontend behavior changed.
Validation so far:
- 43 tests passed across the original ALZ importer, official catalog probe and
new release manager; 58 passed together with the Statbel release suite.
- Target Python compilation and Ruff pass. Coverage includes future release
identity, v1/v2 exclusion, pagination drift, download bounds, release
ordering, stage/apply separation, source/schema/codelist/baseline evidence,
path confinement, byte tampering, named review, catalog drift, full mocked
apply, current-edition refusal and runtime packaging.
- Complete readiness passed with 850 backend tests, 110 documented routes,
one Alembic head `202607160001`, frontend typecheck and production build.
Static full-chain Alembic SQL and shell syntax checks also passed. Local
Docker is not installed in the Codex Windows environment; Compose and live
PostGIS validation are therefore deferred to the Tower deployment gate.
Boundary:
- The official page currently advertises definitive `2025-v3` plus
provisional `2026-v1`. No newer definitive edition exists, so live stage,
review and apply must remain blocked; only a read-only plan and deliberate
current-edition refusal may be exercised after deployment.
## Sprint 228 - Governed Statbel population release promotion (2026-07-17)
Implemented: