Persist map selections as derived datasets
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-06-25 02:25:49 +02:00
parent 1e42302f62
commit b92faafa74
16 changed files with 587 additions and 2 deletions
+31
View File
@@ -1,3 +1,34 @@
## Sprint 108 Map selection derived datasets (2026-06-25)
Changed:
- Added `POST /api/v1/projects/{project_id}/datasets/{dataset_id}/vector/select/derive`.
- Added `VectorSelectionDeriveRequest` for bbox selection-to-derived-dataset requests.
- Added `VectorOperationsService.derive_selection_dataset`, which selects persisted PostGIS `vector_features`, writes a derived GeoJSON dataset artifact, stores source provenance and re-indexes the derived features into `vector_features`.
- Added `Save as dataset` to the Map workspace selection result state with loading/error/latest-dataset feedback.
- Updated frontend dataset API typing and wiring for selection-derived datasets.
- Updated `docs/API_CONTRACTS.md`, `backend/README.md`, `frontend/README.md`, `CHANGELOG.md` and `docs/TODO.md`.
- Added regression coverage in `backend/tests/test_sprint108_map_selection_derived_dataset.py`.
Validation:
- RED: `python -m pytest backend\tests\test_sprint108_map_selection_derived_dataset.py -q` failed before implementation because the service, route and frontend contracts were absent.
- `python -m pytest backend\tests\test_sprint108_map_selection_derived_dataset.py -q` passed: 4 tests.
- `python -m compileall backend/app` passed.
- `cd backend && python -m pytest -q` passed: 345 tests.
- `cd frontend && npm run typecheck` passed.
- `cd frontend && npm run build` passed.
- `cd backend && python -m alembic heads` passed: `202606120900 (head)`.
- `cd backend && python -m alembic upgrade head --sql` passed.
- `bash -n scripts/live_migration_smoke.sh` passed.
- `bash scripts/run_readiness_check.sh` passed.
Limitations:
- Selection-derived datasets are bbox-only and use EPSG:4326 coordinates.
- Empty selections are rejected with `VECTOR_OPERATION_EMPTY_RESULT`.
- No migrations, live provider fetching, AI dependency, real model behavior or new product domain were added.
Next recommended pass:
- Run full release validation, deploy to `http://192.168.10.150:1202` and live-smoke `Save as dataset` from the Map workspace.
## Sprint 107 Map selection export handoff (2026-06-25)
Changed: