Zum Inhalt springen

Modellierung im CDMS-Hub

Kurzantwort: Der CDMS-Hub ist die zentrale Stelle, an der Datenmodelle entstehen: Projekte, Module, Ordner, Modelle, Felder, Beziehungen, Enumerationen, Endpunkte, Rollen und Hooks. Aus diesen Angaben entsteht die Modellbeschreibung, aus der der Generator beim Build Ihren Anwendungscode erzeugt. Bedienen lässt sich der Hub über seine Oberfläche oder über den MCP-Server.


flowchart LR
    UI["Modellierungs-<br/>oberfläche"] --> HB["CDMS-Hub"]
    MCP["KI-Client über MCP"] --> HB
    HB --> DD[("Design-Daten:<br/>Projekte · Module · Modelle · Felder")]
    HB -->|Export| Y["Modellbeschreibung<br/>system · folders · models · enumerations"]
    Y --> GEN[CDMS-Generator]
    GEN --> APP["Ihre Anwendung<br/>generierter Spring-Boot-Code"]

Ein CDMS-System (in der Oberfläche: Modul) gehört zu einem Projekt; maßgeblich ist seine UUID. Diese UUID gibt Ihr Build dem Generator mit, damit er die richtigen Modelle lädt – siehe Generierung.

Was Sie im Hub anlegen können und welche Angaben dazugehören:

RessourceWesentliche Angaben
Projektgruppiert Module, Status
Modul / Systemapi, storage, authentication, database, monitoring, version, coreVersion, enthaltene Items
Itemname, description, Modul, Ordner – Oberbegriff für Ordner, Modelle und Enumerationen
Ordnerpath, enthaltene Items; Hierarchie über die Ordner-Referenz
ModellmodelType, singleton, auditing, extendsModel, Felder, Endpunkte, Rollen, Hooks
Datenmodellkonkret instanziierbar (@type=datamodel)
Abstraktes ModellBasis für Untertypen (@type=abstractmodel)
Datei-ModellModell mit Upload und Download
Feldname (Muster [A-Za-z0-9_]{1,50}), Regeln, Rollen
Primitivfeldtype, length, defaultValue
Enum-FeldReferenz auf eine Enumeration, Vorgabewert
Beziehungsfeldrelationship, Spiegelfeld auf der Gegenseite, recursive
RegelRegeltyp und Vergleichswert
Rolletype, auf Modell- und auf Feldebene
Endpunkttype
Hooktype
Enumeration und Enum-WertWerte und die Felder, die darauf verweisen
ZugriffsfilterProfilattribut, gefiltertes Feld, Modell
ListeWerte
FeldtypSTRING, INTEGER, FLOAT, DOUBLE, BOOLEAN, DATE, TIME, DATE_TIME
BeziehungONE_TO_ONE, ONE_TO_MANY, MANY_TO_ONE, MANY_TO_MANY
RollenartCREATE, READ, UPDATE, DELETE
EndpunktartCREATE, READ, UPDATE, DELETE, LIST, UPLOAD, DOWNLOAD, HISTORY_READ, HISTORY_QUERY, HISTORY_ROLLBACK
Modell-ScopeTENANT, SYSTEM, USER
RekursionCREATE, UPDATE, DELETE
Hook-ArtCUSTOM

Welche Werte Ihr Hub tatsächlich unterstützt, liefert über MCP cdms_get_capabilities – das ist die verlässlichere Quelle als eine Tabelle in einer Dokumentation.

Verstanden werden (mit oder ohne führendes @):

@nullable, @notnull, @notnulloncreate, @notnullonupdate, @pattern, @size, @min, @max, @unique

Was sie zur Laufzeit bewirken, steht unter Validierung.

Diese Regeln setzt der Hub durch – gut zu wissen, bevor Sie modellieren:

  • Item-Namen sind pro Ordner eindeutig.
  • Vererbungsziel ist immer ein abstraktes Modell.
  • Der Modell-Scope ist Pflicht, Standard ist TENANT.
  • Ordnerpfade verwaltet der Hub selbst – sie ergeben sich aus der Hierarchie, nicht aus einer Eingabe.
  • Enum-Werte haben keine feste Ordnung; angezeigt wird alphabetisch.
  • Umbenennen ist erlaubt, warnt aber: Bestehende Daten und generierter Code hängen an den Namen.
  • Zyklen beim Verschieben von Ordnern werden serverseitig abgelehnt.

Alle Zugriffe – auch die des MCP-Servers – laufen über die zugriffsgeprüften Schichten des Hubs, nie direkt auf die Datenbank. Mandanten-, Owner- und Rechteprüfung greifen deshalb unverändert: Sie sehen und ändern genau die Systeme, für die Ihr Zugang berechtigt ist.