Skip to content

ADR-0058: Anzeigemuster (Display pattern) für Entitäts-Labels

  • Status: accepted
  • Datum: 2026-09-23
  • Phase: Web Schema-CMS
  • Bezug: ADR-0033, ADR-0025

Kontext

Datensatzlisten und Relationsfelder zeigten oft den Kind-Code, ein einzelnes Namensfeld oder die UUID. Nutzer brauchen ein Anzeigemuster je Entität: Felder mit Präfix, Suffix und Trenner, optional nur wenn verschachtelte Und/Oder/Nicht-Bedingungen zutreffen.

Entscheidung

  1. JSONB display_pattern auf entity_kinds und checkout_entity_kinds ({ "parts": [...] }). Jeder Teil: field_code, prefix, suffix, separator, optionales when (Bedingungsgruppe).
  2. Auswertung serverseitig für EntityRecordOut.label und search_text. Ohne Treffer: bisherige Namensheuristik, sonst null (UI zeigt die Datensatz-ID).
  3. Web-UI: Icon am Dialog Entität bearbeiten; Muster gilt nach Katalog-Speichern. Relationsfelder: Autocomplete über Label, sonst ID.
Gate Recommendation Why it fits here Rejected alternative and why
Speicherort Kind-JSONB Ein Muster pro Entität, Checkout wie andere Kind-Metadaten Spalte je Feld — Label ist kein Feldwert
Auswertung Server Listen, Suche und Picker bleiben konsistent Nur Frontend — API-Clients sähen UUIDs
Bedingungen nested And/Or/Not Gleiche Semantik wie der Editor Ein flaches Flag — zu wenig für Alias/Typ

Begründung

Das Label ist Katalog-Vertrag, nicht Record-Inhalt. JSONB hält Verschachtelung ohne Extra-Tabellen; Checkout kopiert die Spalte mit.

Folgen

  • Alembic public 0040_kind_display_pattern / Tenant 0025_kind_display_pattern.
  • POST/PUT /entity-kinds tragen display_pattern; GET /entities?q= sucht auch in zusammengesetztem Label und Record-ID.