Complete operational map result workflow
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 12:35:50 +02:00
parent 8266929b2e
commit a29c787238
33 changed files with 1121 additions and 107 deletions
+65 -2
View File
@@ -90,7 +90,13 @@ Returns enabled feature flags and tool availability.
### GET `/api/v1/projects`
Returns all projects.
Returns active projects with `limit`/`offset` pagination. Optional exact
`name` filtering supports stable lookup of a canonical operational workspace
without depending on its position among newer operator or benchmark projects:
```text
GET /api/v1/projects?name=Kempen%20Regional%20Workbench&limit=1
```
### POST `/api/v1/projects`
@@ -1729,6 +1735,7 @@ Map vector selection export request:
{
"export_kind": "vector_selection",
"dataset_id": "uuid",
"area_id": "optional-uuid-for-an-exact-full-work-area-export",
"bbox": {
"min_x": 5.0,
"min_y": 51.0,
@@ -1781,9 +1788,65 @@ segmentation exports use persisted first-class geometry records and the
existing Detection/Segmentation GeoJSON conversion services. Vector selection
exports query persisted PostGIS `vector_features` with the supplied EPSG:4326
bbox, write the selected FeatureCollection as a `vector_selection_geojson`
artifact, and persist bbox/feature-count metadata in the export record. Raster
artifact, and persist bbox/feature-count metadata in the export record. When
`area_id` is present, the persisted Area geometry is the exact export scope;
the frontend only sends this for the explicit `Volledig werkgebied` action.
Drawn or manually entered rectangles omit `area_id` and remain exact bbox
queries. Raster
datasets are rejected for dataset and selection GeoJSON export.
### POST `/api/v1/exports/map-result`
Persists the active map result before opening the Downloads workspace. The
backend recomputes the result from persisted data; it never accepts client
metrics as authoritative export content.
Current vector or governed raster request:
```json
{
"project_id": "uuid",
"mode": "current",
"dataset_id": "uuid",
"bbox": {
"min_x": 5.10,
"min_y": 51.17,
"max_x": 5.11,
"max_y": 51.18,
"crs": "EPSG:4326"
},
"area_id": null,
"partitioned": false,
"product_key": null,
"theme_id": "buildings",
"name": "buildings-analysis"
}
```
Historical comparison request:
```json
{
"project_id": "uuid",
"mode": "evolution",
"earlier_dataset_id": "uuid",
"later_dataset_id": "uuid",
"bbox": {
"min_x": 5.10,
"min_y": 51.17,
"max_x": 5.11,
"max_y": 51.18,
"crs": "EPSG:4326"
},
"theme_id": "forest"
}
```
Vector results reuse the authoritative `vector_selection_geojson` flow.
Governed raster results are persisted as `map_analysis_json`; temporal
comparisons use `map_evolution_json`. Metadata records the bbox, optional exact
Area scope, source datasets, theme and `server_recomputed=true`.
### POST `/api/v1/exports/metadata`
Exports project metadata JSON for projects, datasets, persisted QA/QC summary