Skip to content

ADR-0037: Entity type and scope as settings

Kontext

Typ (Datenobjekt / Layer / Feature) war eine Route (…/{tab}). Scope hing am benannten Schema (is_federated). Nutzer brauchen Typ und Scope als Einstellungen an der Entity — und Felder mit eigenem Scope. Global gehört immer ins Standard-Schema.

Entscheidung

  1. Typ bleibt intern management_tab. Werte und UI-Labels: ADR-0045 (dataset / group / layer — Datensatz / Gruppe / Layer). API-Feld entity_type. Keine Typ-Tabs.
  2. Scope bleibt intern instantiation_scopebase | project. UI-Label: Global / Dieses Schema.
  3. Global erzwingt schema_code=standard. Dieses Schema verlangt ein nicht-Standard-Schema mit project_id (Kinds und Felder).
  4. Felder haben eigenen Scope und schema_code. Ein Global-Feld an einer Projekt-Entity ist unzulässig. Ein Pack-Feld erscheint nur auf dem Schema, auf dem es angelegt wurde — nicht auf anderen Packs.
  5. Weitere Schemata sind nur projektgebunden. Neue föderierte Packs sind abgelehnt. Ein neues Schema startet als logische Kopie des Standard-Schemas: alle Basis-Entitäten mit ihren Basis-Feldern (gleiche Kind-Codes, keine Duplikate). Projektspezifische Kinds/Felder kommen hinzu.
  6. Routen: /datenmanagement/schemata/{code}/entitaeten (Entity-Liste, Start) und {code}/er (Diagramm); /datenmanagement/datensaetze. {code} und alte Typ-Tabs redirecten auf /entitaeten.

Begründung (für dieses Setup)

Scope steuert die Platzierung; das Schema ist kein zweites Wahlfeld. Standard bleibt der globale Katalog. Projektschemata isolieren projektbezogene Kinds, ohne Kind-code zu splitten (GIS). Typ als Einstellung vermeidet drei parallele Seiten für dieselbe Liste.

Verworfene Alternativen

Alternative Warum verworfen
Typ-Tabs als Filter behalten Gewählte IA: eine Liste
Föderierte Extra-Packs (ADR-0036) Global gehört nur ins Standard-Schema
Nutzer wählt Schema unabhängig vom Scope Widerspricht „Global wandert ins Standard-Schema“
Enum-Rename databasedatenobjekt API-/Plugin-Bruch ohne Speichergewinn
Physische Kind-Duplikate pro Schema Bricht org-weit eindeutige Kind-Codes (geo_objects.kind)

Folgen

  • ADR-0027 superseded (Tabs → Einstellung; die drei Werte bleiben).
  • ADR-0036 superseded für föderierte Extra-Packs; Standard-Dokument bleibt.
  • Alte Tab-URLs redirecten auf die Schema- bzw. Datensatz-Seite.
  • Löschen aus dem Standard-Schema: ADR-0038 (behalten vs. überall entfernen). Scope-UI nur auf Projektschemata.