v1.11.1
Added
- Raster replace is now reachable from the reupload dialog. The
in-place COG replacement that shipped in 1.11.0 gets its frontend door:
the reupload dialog offers replace for raster datasets (#1362). - Remote rasters now report a measured resolution and rotation flag.
STAC-imported and refreshed raster assets read the affine transform from
Titiler, sores_x/res_y/is_rotatedare populated the same way a
local upload populates them instead of staying blank (#1374, #1384).
Fixed
- Raster tiles stop serving stale imagery after a replace. Tile URLs
now carry the dataset's content version, so a raster replace, reupload,
or source refresh rolls the shared nginx tile cache instead of serving
the old pixels until the cache expired. A mismatched or duplicated
version parameter is served uncached rather than rejected, so open tabs
keep rendering (#1372). - Rotated rasters report their true pixel size. Resolution was
computed from the affine's axis components, understating a 30°-rotated
raster by 13%; it now uses the pixel vector lengths on both ingest
paths. Axis-aligned rasters are unaffected; a rotated raster's stored
resolution corrects on its next ingest or refresh (#1384). - STAC
gsdis published in metres, as the spec defines it. Exports
used to emit the raw CRS-unit value (degrees for EPSG:4326, feet for
state-plane systems). Projected CRSs now convert through PROJ's
metres-per-unit; geographic CRSs omit the field rather than publish an
angular value as a length. The OGC Records surface is unchanged (#1384). - Reupload keeps geometry and record type honest. Swapping a
dataset's file derives the effective geometry and record type through
a precedence of measured, declared, and stored values, so an empty or
all-NULL-geometry file no longer reclassifies a still-spatial dataset
as tabular (#1361, #1373). - User-authored distributions no longer hide the built-in export
rows on a record's distribution list (#1370). - CRS WKT is stored as WKT2:2019 at both raster ingest paths, with a
data migration converting existing WKT1 rows (#1376). - STAC assets keyed by an empty string are recovered after the item
moves instead of being reported unidentified (#1363). - ArcGIS imports request every field, so service imports keep their
full attribute set (#1368). - Vector tile purges after a reupload or PostGIS refresh now take
effect. The tile cache was only initialized in the API process, so the
worker's post-swap purges silently evicted nothing and stale tiles could
serve until the cache TTL expired; the cache is now initialized in the
bootstrap both processes share (#1371). - Auto-generated distributions reconcile when a dataset's modality
changes (#1369). - A raster's origin carries its provenance hash from first ingest
instead of only gaining one after its first replace (#1360). - Single-dataset delete errors are sanitized before reaching the
client (#1358).
Performance
- Duplicate-source guards use an index on the origin-reference keys
they query instead of scanning (#1365).
Operations
- Migration 0041 is a data migration: it rewrites stored WKT1 CRS
definitions to WKT2:2019 in batches. Deploy logs report
converted to WKT2:2019: N row(s); the downgrade is a no-op.
Full Changelog: v1.11.0...v1.11.1