Enable governed GRB evolution
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-16 19:30:46 +02:00
parent 1d515e4901
commit a8b18942f5
12 changed files with 448 additions and 59 deletions
+11
View File
@@ -1850,6 +1850,17 @@ Added/removed/modified object changes are calculated only when source
provenance declares stable feature identities; otherwise
`object_changes.available=false` and no object history is inferred.
Governed regional GRB snapshots use the official OGC feature identifier as
their object identity. New imports declare the identity scheme and accepted
collection prefixes explicitly. Existing operator-managed GRB snapshots are
accepted only when their authoritative, complete and area-clipped provenance
matches an approved regional operator and every selected identifier is
present, unique and uses the expected prefix. Missing, duplicate or unexpected
identifiers fail closed to metric-only comparison. The existing 5,000-feature
selection limit also remains in force. Differences between daily GRB editions
describe changes in the official registration; they do not prove that a
physical change happened on the exact publication date.
For `reference_layer_name=agriculture`, the primary map metric is exact
intersected declared-use area in hectares. Supplemental metrics use
server-owned filters on the normalized official main-crop group. Annual ALZ
+32
View File
@@ -9387,3 +9387,35 @@ Validation so far:
Next:
- Run the full release gate, deploy to Tower, execute a live read-only plan and
then stage/apply only the exact confirmed official edition.
## Sprint 224 - Governed GRB evolution (2026-07-16)
Implemented:
- Audited the two retained regional editions for buildings, roads, water and
parcels. All 2,108,425 persisted VectorFeatures have an official
`source_feature_id`; none uses the former 64-character geometry-hash
fallback.
- Added a fail-closed GRB identity contract to temporal object comparison.
Legacy snapshots require authoritative, area-clipped, non-truncated
provenance from an approved regional operator and every selected identifier
must be present, unique and match its collection prefix.
- Made future regional GRB operators abort when an official OGC feature ID is
missing and persist their identity scheme/prefixes explicitly.
- Replaced ambiguous same-year labels such as `2026-2026` with daily edition
ranges and explained that registration changes do not date physical change.
- Documented an honest refresh-readiness matrix for all major source families;
no additional provider fetch or automatic refresh was enabled.
Boundaries:
- No migration, new persistence model, scheduler, browser-triggered import or
parallel temporal engine was added.
- Object comparison remains bounded to 5,000 selected features and falls back
to metric-only output whenever source identity cannot be proven.
Validation so far:
- Focused GRB operator and temporal tests pass: 39 tests.
- Frontend typecheck and production build pass.
Next:
- Run the full release gate, deploy, verify a real bounded GRB edition delta
through the canonical API and inspect the daily Evolution UI on Tower.
+32
View File
@@ -151,6 +151,38 @@ Collectiecatalogus en contract:
- https://geo.api.vlaanderen.be/GRB/ogc/features/v1/collections?f=text%2Fhtml
- https://geo.api.vlaanderen.be/GRB/ogc/features/v1/openapi?f=text%2Fhtml
### Beheerde GRB-edities en objectevolutie
Elke regionale GRB-import blijft een onveranderlijke Dataset in dezelfde
`temporal_series_key`. De operators bewaren uitsluitend de officiële OGC
feature-ID als `source_feature_id`; een ontbrekende ID wordt niet vervangen
door een geometriehash. Nieuwe snapshots declareren
`identity_scheme=grb_ogc_feature_id` en de toegelaten collectieprefixen.
De tijdelijke vergelijkingsservice toont toegevoegde, verwijderde en gewijzigde
objecten alleen wanneer beide snapshots hetzelfde gecontroleerde
identiteitscontract hebben en alle geselecteerde ID's aanwezig en uniek zijn.
Oudere, reeds beheerde snapshots worden alleen onder hun volledige
authoritatieve operatorprovenance aanvaard. Dagelijkse editieverschillen zijn
wijzigingen in de officiële registratie; de fysieke wijziging kan eerder zijn
gebeurd.
### Refreshgereedheid van officiële bronnen
| bronfamilie | huidige behandeling | volgende veilige stap |
| --- | --- | --- |
| GRB gebouwen/wegen/water/percelen | operationele, expliciete plan-stage-apply refresh met onveranderlijke snapshots | alleen een nieuw officieel gedateerd cataloguseditie na operatorbevestiging ophalen |
| Statbel bevolking | jaarlijkse, expliciete edities in één tijdreeks | een nieuwe publicatie alleen na schema-, sectorgeometrie- en totalencontrole toevoegen |
| ALZ landbouwgebruikspercelen | definitieve jaarlijkse edities 2008-2025; metricvergelijking zonder objectlineage | eerst een stabiele machineleesbare editiebron verifiëren, daarna dezelfde begrensde operatorflow toepassen |
| orthofoto | vaste lokale opname per expliciete analysezone; catalogusprobe is alleen een signaal | vluchtjaar, productvariant en dekking vergelijken voordat nieuwe pixels worden opgehaald |
| landgebruik, thematische rasters, DHMV en VMM-scenario's | vaste product-/scenario-edities, geen rolling snapshot | alleen een nieuwe gedocumenteerde producteditie als afzonderlijke Dataset verwerven |
| bodemkaart en historische kaarten | historische referentie-editie | niet als verouderde actuele bron labelen; alleen vervangen bij een officiële inhoudelijke heruitgave |
| BWK/Natura 2000 en gebouwen-/adressenregister | expliciete actuele snapshot met eigen methodologische betekenis | eerst een stabiele officiële editieprobe en bron-specifieke reconciliatiecontrole toevoegen |
Geen van deze regels activeert een browserfetch, scheduler of automatische
vervanging. Een bron wordt pas `refreshable` wanneer versie, dekking, schema,
provenance en een begrensde acquisitieroute afzonderlijk verifieerbaar zijn.
### Mol population history
`scripts/provision_mol_population_history.py` imports official Statbel
+17
View File
@@ -670,3 +670,20 @@ This file now starts with the current implementation status. Older preparation/b
- [x] Replace the water-first recommendation with a cross-domain implementation wave.
- [ ] Implement the governed Flemish thematic-raster registry for space occupation, open space, population density, node value and service level.
- [x] Add the digital soil map through DatasetService and VectorFeatureService.
# Sprint 224 - Governed GRB evolution
- [x] Audit all eight retained regional GRB snapshots for complete official
source identities and geometry-hash fallbacks.
- [x] Validate old governed snapshots through authoritative, complete and
approved operator provenance before enabling object-level comparison.
- [x] Make future regional GRB imports reject missing official OGC identities.
- [x] Persist explicit identity schemes and collection prefixes on new GRB
snapshots.
- [x] Show precise daily edition ranges and explain registration-date nuance in
the Evolution workspace.
- [x] Document refresh readiness across the complete official-source portfolio.
- [ ] Add the next governed catalog probe only after an official stable version
contract is verified; ALZ annual releases are the first candidate.
- [ ] Keep orthophoto refresh manual until product variant, flight year and
complete selected-area coverage can be compared deterministically.