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
- Typ bleibt intern
management_tab. Werte und UI-Labels: ADR-0045 (dataset/group/layer— Datensatz / Gruppe / Layer). API-Feldentity_type. Keine Typ-Tabs. - Scope bleibt intern
instantiation_scope∈base|project. UI-Label: Global / Dieses Schema. - Global erzwingt
schema_code=standard. Dieses Schema verlangt ein nicht-Standard-Schema mitproject_id(Kinds und Felder). - 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. - 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.
- 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 database → datenobjekt |
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.