Backend-först-principen
Datalogik och regler ska ligga i GeoServer. Origo ska vara konfigurerad presentation, inte extra affärslogik.
Namngivning (Glossary)
- workspace:layer är huvudformatet, t.ex.
publik:lm_wms_fastighetsgrans_l. - Suffix geometri:
_p(punkt),_l(linje),_y(yta). - Säsong/år: lägg år sist i namn när dataset är tidsbundet (t.ex.
..._2024_y). - Intern/publik: separera via source/workspace i stället för otydliga specialregler i frontend.
Attributkonventioner
- Konsekvent casing och datatyp per attribut.
- Föredra kodvärden/boolean framför fritext där filter/stil bygger på attribut.
- Undvik tomma strängar där
NULLär semantiskt korrekt. - Håll CQL enkelt: börja med
=,IN,IS NOT NULL.
Definition of done för lager
- GetMap svarar
200från OWS. - GetLegendGraphic fungerar utan RULE-fel.
- FeatureInfo fungerar enligt förväntat (eller är avsiktligt avstängt).
- Rätt cache-läge verifierat (WMS vs WMTS) och seed/truncate utfört vid behov.
- Lager syns i rätt grupp i Origo med rätt zoom/synlighet.
ADR / beslutshistorik
ADR-001: Backend-först
Beslut: logik (filter/stil/regler) hanteras primärt i GeoServer.
Kontext: frontend-specialfall gav svårfelsökta regressionsfel.
Alternativ: mer logik i Origo-konfig/JS.
Konsekvens: snabbare felsökning, tydligare ansvar men högre krav på datadisciplin i GeoServer.
ADR-002: WMTS där möjligt, WMS där nödvändigt
Beslut: bakgrund/tunga lager prioriterar WMTS; dynamiska lager kan ligga kvar på WMS.
Kontext: uppmätt skillnad i svarstid mellan oseedad WMS och varm WMTS-cache.
Alternativ: allt via WMS eller allt via WMTS.
Konsekvens: bättre prestanda men behov av aktiv cache-rutin och dokumenterad beslutsmatris.
ADR-003: RULE skickas endast med giltigt Rule Name
Beslut: klient skickar inte RULE om värdet saknas/är oklart.
Kontext: återkommande incidenter med RULE=undefined i legendanrop.
Alternativ: alltid skicka RULE och hoppas på fallback.
Konsekvens: färre legendfel, tydligare koppling mellan SLD-regler och klientparametrar.