Highlights
- Added full OGC services suite (WMS, WFS, WMTS, WCS, OGC API Features + Tiles) served directly from any dataset.
- Updated STAC to version 1.1.0 with STAC API 1.0.0 compliance (landing page, conformance, collections, items, and cross-dataset search).
- Vector build artifacts migrated from FlatGeobuf (FGB) to GeoPackage (GPKG); existing vector datasets must be rebuilt.
Added / Changed
- Added WMS 1.1.1/1.3.0, WFS 2.0, WMTS 1.0.0, WCS 2.0.1/1.1.1/1.0.0, OGC API Features 1.0, and OGC API Tiles 1.0 endpoints at
/orgs/{orgSlug}/ds/{dsSlug}/{service}. - Added folder-scoped variants for WMS, WFS, and WCS at
.../p/{folder}. - Added OGC layer catalog with 5-minute cache and automatic invalidation on dataset mutations.
- Added
BuildArtifactResolveras a single source of truth for build artifact paths (MVT, COG, GPKG, NXS, COPC). - Added
ArtifactCompletenessCheckerServicerecurring job (default: daily at 2:00 AM) that scans all entries and re-queues builds for incomplete artifacts. - Added
POST /system/check-artifact-completenessendpoint to trigger an immediate completeness scan. - Added MVT tile endpoint (
/orgs/{orgSlug}/ds/{dsSlug}/mvt/{hash}/{z}/{x}/{y}.pbf) for precomputed vector tiles. - Added STAC API 1.0.0 endpoints:
/stac/conformance,/stac/collections,/stac/collections/{org}/{ds},/stac/collections/{org}/{ds}/items,/stac/search(GET and POST). - Updated STAC catalog to comply with STAC 1.1.0 and STAC API 1.0.0; added
conformsTofield to landing page. - Added
IsBuildCompletenative wrapper (DDBIsBuildComplete) to check whether build artifacts exist and are non-empty. - Added
GenerateTileoverload with explicit output format parameter (PNG/JPEG). - Added
StacItemCollectionnative wrapper (DDBStacItemCollection) with bbox and datetime filtering and paging. - Added raster region rendering wrappers (
DDBRenderRasterRegionEx,DDBRenderRasterIndex,DDBQueryRasterPoint,DDBQueryVector,DDBDescribeVector). - Added
DisableAnonymousBulkDownloadsconfiguration flag; when enabled, anonymous users cannot download bulk archives (whole dataset, folders, or multi-file selections) - single-file downloads remain allowed. - Added
OrgSlugfield toShareInitDtoto allow callers to specify a destination organization without requiring a fullorg/datasettag. - Added
DisableAnonymousBulkDownloadsto the/system/featuresresponse. - Refactored Hangfire recurring job registration: all cron settings now accept
"disabled","off", or"none"to remove a job, and null/empty falls back to the built-in default. - Updated
README.mdto document all OGC service endpoints and QGIS setup steps. - Improved
MoveandCopyoperations to returnEntryDtoinstead of rawEntry(consistent with rest of the API). - Improved OGC exception handling: authentication failures and OGC exceptions always return the version-appropriate XML envelope (not the generic error page).
- Improved DDB version retrieval to log a warning instead of silently swallowing exceptions.
- Added extensive unit tests for OGC components (
OgcExceptionFilter,OgcExceptionFormatter,OgcRequestParser,OgcLayerCatalog,WmsValidator,WcsVersionNegotiator,BuildArtifactResolver) and artifact completeness checker. - [DroneDB] Updated to v1.8.1 (from v1.7.4).
- [Hub] Updated ClientApp submodule.
Fixed
- Fixed
Copyoperation leavingfileSystemCopiedunset in one branch, which could cause incorrect cleanup behavior on error. - Fixed OGC capabilities cache invalidation not being triggered on file operations (add, delete, move, copy, transfer).
- Fixed WMS
GetMapreturning a generic error instead of a version-appropriate XMLServiceExceptionReporton authentication or OGC-level failures. - Fixed WMTS path prefix collision with WMS in the exception filter (WMTS requests no longer misclassified as WMS).
- Fixed OGC API Features returning incorrect content type for items and collections.
- Fixed
ZipArchiveentry creation using synchronousOpen()instead of asyncOpenAsync(). - Fixed inconsistent initialization of collection/list properties in several DTOs.
Breaking changes
- Vector build artifacts have been migrated from FlatGeobuf (
vec/vector.fgb) to GeoPackage (vec/source.gpkg). Any dataset with vector entries built under a previous version will not be served by WFS, WMTS, or OGC API until rebuilt.- Migration: trigger a rebuild for all affected vector entries via
POST /system/check-artifact-completeness(scans all datasets automatically), or rebuild individual datasets manually through the UI or API.
- Migration: trigger a rebuild for all affected vector entries via
Merged PRs
- Added support for WMS, WMTS, WFS, WCS, OGC API Features, OGC API Tiles by @HeDo88TH in #344
- Add OrgSlug to ShareInitDto for flexible destination selection by @HeDo88TH in #343
Full Changelog: v2.3.1...v2.4.0