Skip to content

ADR-0024: Named Planungsversionen (Freeze + Sidecar-Pin)

  • Status: superseded by ADR-0045 for the web layer tree (no auto Version 1; versions API returns 410)
  • Datum: 2026-08-26
  • Phase: P3 / P8
  • Lastenheft: ED-09, ED-13; Plattformvision Genehmigung

Kontext

Planung (Rohinput) bleibt editierbar, während Genehmigungsprodukte und erteilte Anträge an einem festen Planungsstand hängen müssen (ED-09). geo_object_revisions speichert Objekt-Historie, benennt aber keine einheitliche Projekt-Version für den Editor-Baum. Der Editor soll Entwurf vs. eingefrorene Versionen vs. Genehmigung/Abschnitt/Produkt als geschachtelten Layerbaum zeigen; das Dashboard behält die flache Stufen-Ansicht.

Entscheidung

  • project_versions: expliziter Freeze (seq, label, frozen_at, frozen_by) pro Projekt.
  • project_version_members: Pin (version_id, object_id, revision_id) auf die Sidecar-Revision — keine Geometrie in der Member-Tabelle.
  • Live-Planung: geo_objects mit stage=planung und version_id IS NULL (Entwurf); Tiles lesen weiter die Hot-Tabelle.
  • Eingefrorene Planung: Anzeige über GeoJSON aus Members + Revisions (kein zweites MVT); Zeichnen deaktiviert.
  • Genehmigung: intern stage=normierung|produkt mit gesetztem version_id; Editor-Chrome sagt Genehmigung statt Normierung.
  • Kopie in Genehmigung: POST /map/objects/copy-to-normierung mit { project_id, version_id, object_ids? } — Quelle ist der Snapshot, nicht der bewegliche Entwurf.
  • map_layers.parent_layer_id: optionale Nested-Gruppen unter Entwurf-Planung (nicht work_sections).
  • work_sections.version_id: Abschnitt gehört zu einer eingefrorenen Version.

Begründung

Named Freeze ist für Planer nachvollziehbar („Version 1 = Stand bei Einreichung“). Sidecar-Pin vermeidert Geometrie-Duplikate auf der Tile-Hot-Tabelle. Dashboard und Editor teilen /map/layer-tree; stages[] bleibt für die Web-Karte, draft + versions[] erweitern nur den Editor.

Verworfene Alternativen

Alternative Warum verworfen
Nur geo_object_revisions ohne benannte Version Kein Baumknoten „Version 1“; Anträge schwer dem Stand zuzuordnen
Versionsspalte auf der Tile-Hot-Tabelle ADR-0010: MVT liest current; Historie in Sidecar
ArcGIS Branch Versioning Betriebs-Overkill; PostGIS-SSOT bleibt API-first
Automatischer Freeze bei jedem Antrag Plan verlangt expliziten „Neue Version“-Button
Server-seitiges Last-used Kollision zwischen Rechnern; Tauri Store pro Projekt reicht

Folgen

Alembic 0006_project_versions. Editor: Layerbaum links, Layerebene im Werkzeugkasten rechts, Last-used in Desktop-Prefs. Behörden-Workflow unverändert über approval_procedures / Dashboard Verfahren.