Add Belgium and North Sea coverage foundation
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-18 01:45:00 +02:00
parent a8fd6e5e9c
commit 1e527bf810
29 changed files with 2524 additions and 10 deletions
+43
View File
@@ -935,6 +935,49 @@ Read simplified job status payload.
## Provider registry
The legacy Sprint 7 provider registry remains the exact
`grb|osm|manual|fixture` import abstraction. National and maritime source
authority is exposed separately so adding official source families cannot
silently change that import contract.
### GET `/api/v1/external/coverage/catalog`
Returns the normalized Belgium and Belgian North Sea theme vocabulary, legal
coverage zones, allowed availability states and audited source contracts.
Every source includes authority, native layers, geometry types, acquisition
mode, source URL, attribution, licence and limitation text.
Allowed result states are exactly:
- `operational`: a matching `ready` Dataset is materialized in the project;
- `partial`: the governed integration exists but matching project data is
absent or incomplete;
- `not_configured`: an audited source has no operational adapter;
- `unsupported`: no audited contract supports the theme in that zone.
### POST `/api/v1/external/coverage/resolve`
Resolves a user-drawn EPSG:4326 bbox against persisted national and maritime
Areas. Cross-region and land/sea selections remain split by zone.
```json
{
"project_id": "uuid",
"bbox": {
"minx": 2.65,
"miny": 51.05,
"maxx": 2.85,
"maxy": 51.20
},
"themes": ["buildings", "surface_water", "bathymetry"]
}
```
The response returns `intersected_zones`, `outside_supported_scope`, one item
per zone/theme combination, matching source names and IDs of actually
materialized Datasets. An empty `themes` list requests the complete normalized
vocabulary. Unknown themes fail with `COVERAGE_THEME_UNSUPPORTED`.
### GET `/api/v1/external/providers`
Returns all configured provider capability descriptors.