Complete operational map result workflow
This commit is contained in:
+65
-2
@@ -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
|
||||
|
||||
@@ -9898,3 +9898,39 @@ V1 completion status:
|
||||
source editions, additional independent AI review data and real segmentation
|
||||
models are optional controlled expansions, not prerequisites for using the
|
||||
current map, measurement, evolution, local-AI and export workflow.
|
||||
|
||||
## Sprint 233 - Operational correctness and result completion (2026-07-17)
|
||||
|
||||
Implemented:
|
||||
- Corrected the map-first selection scope after live API evidence showed that a
|
||||
drawn bbox plus the active `area_id` returned the complete municipality
|
||||
vector population. Drawn and manual bboxes now omit `area_id`; the explicit
|
||||
full-work-area action keeps the exact persisted Area geometry.
|
||||
- Applied the same scope decision to current theme queries, temporal
|
||||
comparisons, derived selection datasets and vector exports.
|
||||
- Added Area-aware persistent vector selection exports and
|
||||
`POST /api/v1/exports/map-result`. Current vector, governed raster and
|
||||
temporal exports are recomputed server-side from persisted data before an
|
||||
export row and artifact are written.
|
||||
- Replaced the passive `Open downloads` handoff with `Bewaar in downloads`.
|
||||
Downloads opens only after successful persistence and surfaces current map
|
||||
analyses, historical comparisons and vector selections among the latest
|
||||
artifacts.
|
||||
- Added exact project-name filtering and merged the canonical
|
||||
`Kempen Regional Workbench` into the frontend project page. This remains
|
||||
stable even with more than 1,000 retained operator/benchmark projects.
|
||||
- Named failed map sources and their API reasons, reset the actual scrolling
|
||||
workbench container on navigation, bounded the desktop map layout, removed
|
||||
nested desktop scrolling from Detection Lab and added plain-language QA/F1
|
||||
interpretation.
|
||||
- Translated the visible Downloads workflow and moved technical identifiers to
|
||||
the existing history disclosure.
|
||||
|
||||
Validation:
|
||||
- Focused operational-correctness, map-selection, export and V1 flow tests
|
||||
passed after the corrected selection semantics were applied.
|
||||
- The complete readiness gate passed 895 backend tests, backend compilation,
|
||||
documentation smoke, API contract audit, the single Alembic head
|
||||
`202607160001`, frontend TypeScript typecheck and the production build.
|
||||
- Live all-in-one deployment, exact bbox/full-Area API comparison and browser
|
||||
acceptance follow from this validated repository state.
|
||||
|
||||
@@ -11,6 +11,9 @@ geen open productroadmap meer.
|
||||
vereist.
|
||||
- [x] Kies een begrijpbaar datathema, teken een rechthoek of gebruik het
|
||||
volledige werkgebied en analyseer alle 15 beschikbare thema's uit PostGIS.
|
||||
- [x] Houd getekende en handmatig ingevoerde rechthoeken als exacte bbox-scope
|
||||
voor vector-, raster- en tijdreeksmetingen; gebruik de persistente
|
||||
Area-geometrie uitsluitend voor de expliciete actie `Volledig werkgebied`.
|
||||
- [x] Toon betekenisvolle eenheden en metrieklabels voor oppervlakte, lengte,
|
||||
inwoners, hoogte, scenario's en stationsmetingen; objectaantallen zijn
|
||||
ondersteunend.
|
||||
@@ -21,6 +24,11 @@ geen open productroadmap meer.
|
||||
- [x] Ga vanuit een afgeronde analyse rechtstreeks naar de lokale
|
||||
brongebonden Ollama-assistent of naar Downloads en keer terug zonder het
|
||||
zichtbare kaartresultaat of de evolutievergelijking te verliezen.
|
||||
- [x] Herbereken en bewaar het actieve vector-, raster- of evolutieresultaat
|
||||
server-side voordat Downloads wordt geopend, met traceerbare selectie- en
|
||||
bronmetadata.
|
||||
- [x] Haal de canonieke regionale werkruimte exact op naam op zodat groei van
|
||||
operator- en benchmarkprojecten de standaard kaartcontext niet kan verdringen.
|
||||
- [x] Gebruik de operationele lokale YOLO/PyTorch-keten alleen met persisted
|
||||
detecties, GRB-QA en expliciete controlewaarschuwingen.
|
||||
- [x] Draai de volledige applicatie in de beheersbare Unraid-container op poort
|
||||
|
||||
Reference in New Issue
Block a user