-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
phase/MVPMVP scopeMVP scope
Milestone
Description
Background
MVP docs call for MapLibre Style Spec v8 as the canonical layer style, edited via embedded Maputnik, and converted to GeoServices drawingInfo for FeatureServer responses (see docs/ARCHITECTURE.md Styling section and docs/adr/0002-maplibre-canonical-style.md). Current style endpoints are placeholders and do not persist or translate styles.
Scope
Implement the canonical MapLibre style pipeline so a single style edited in Maputnik drives FeatureServer and OGC metadata outputs.
Acceptance Criteria
- DB:
layershasmaplibre_styleJSONB (canonical),geoservices_drawing_infoJSONB (cache/import), andstyle_versionINT (migration added if missing). - Admin metadata style endpoints:
- GET
/api/v1/admin/metadata/layers/{layerId}/stylereturns stored MapLibre style and GeoServices drawingInfo (converted if cache empty). - PUT validates MapLibre v8, saves
maplibre_style, incrementsstyle_version, clears cachedgeoservices_drawing_info, and returns updated style payload. - If request includes only
drawingInfo, server converts to MapLibre and stores MapLibre as canonical (import/compat path).
- GET
- FeatureServer layer metadata includes
drawingInfoderived from MapLibre when cache is empty, then cached for future requests. - OGC API Features collection metadata exposes a style link to the public MapLibre style endpoint (see TileJSON metadata endpoint #20).
- Converters:
- Support Simple/UniqueValue/ClassBreaks renderers (MapLibre <-> GeoServices).
- Unsupported renderer types fall back to a sensible default and emit a warning log.
- Cache invalidation on style update (layer metadata + output cache tags).
- Tests cover: style save/load, conversion for each renderer type, and FeatureServer metadata includes
drawingInfo.
Dependencies
- Public style endpoints and TileJSON style link are tracked in TileJSON metadata endpoint #20.
Out of Scope
- OGC API Styles CRUD endpoints (planned post-MVP)
- Advanced GeoServices renderers (heatmap, dot density, picture symbols, temporal)
Metadata
Metadata
Assignees
Labels
phase/MVPMVP scopeMVP scope