Skip to content

ADR-0054: Versioned platform starting schema

Kontext

Neue Organisationen brauchten bisher ein vorseedetes Standard-Schema in der Mandanten-DB. Produktziel: Orgs starten auf grüner Fläche und können ein von Sysadmins versioniertes Linetra-Ausgangsschema einmalig als Standard importieren — oder bewusst mit einem leeren Standard starten.

Entscheidung

  1. Control-Plane speichert versionierte Packs (starting_schema_versions + kinds/fields) und einen Singleton active_version_id.
  2. Sysadmins modellieren unter /settings/starting-schema (Neue Version → Entwurf → Veröffentlichen → aktiv für Onboarding).
  3. Neue Mandanten erhalten kein standard mehr beim Provisioning.
  4. Onboarding-Wahl: Import (POST /starting-schema/import) legt standard an und kopiert die aktive published Version — oder leeres Standard (POST /starting-schema/create-empty). Beides nur, wenn noch kein Standard existiert.
  5. Standard ist löschbar; danach erscheint der Übernahme-/Leer-Hinweis wieder. Überschreiben ohne Löschen ist verboten.
  6. Willkommens-Popup + Hinweis in der Schema-Liste (auch für Bestandskunden ohne Standard).
  7. Aufrufe, die das Standard-Pack brauchen (globale Kinds), legen bei Bedarf ein leeres standard nach (ensure_standard_definition).

Verworfene Alternativen

Alternative Warum verworfen
Seed weiterhin im Tenant-Template Keine grüne Fläche; Versionierung unmöglich
Import als zusätzliches Named Schema Produkt will Standard als org-weites Pack
Skip ohne Standard-Zeile Katalog-Operationen brechen mit „Schema standard not found“

Folgen

  • Control-Alembic 0035_starting_schema.
  • API /api/v1/starting-schema/*.
  • ADR-0036 „Standard nicht löschbar“ ist für Tenant-Standard überholt.