Entity-System
Codemeta OS hat eine generische Entity-Schicht, durch die jede CRUD-Mutation hindurchgeht. Das gibt Ihnen einheitliches Verhalten – egal, ob Sie ein Ticket, einen Vertrag oder einen Wissensartikel anlegen.
Drei Bestandteile pro Entity
- Schema definiert Felder, Typen und Pflichtfelder.
- Konfiguration verknüpft Schema, Permissions, geschützte Felder und unterstützte Datenscopes.
- Beziehungs-Modell beschreibt, wer welchen Datensatz sehen darf — relationship-basiert (Owner, Team, Mandant).
Eine einheitliche Service-Schicht liest die Konfiguration und gibt allen Entities dasselbe Verhalten.
Was passiert bei einer Mutation?
In einer einzigen Datenbank-Transaktion:
- UUIDv7 generieren,
versionsetzen,tenantIdaus dem Header übernehmen. - Sequenznummer ziehen, falls die Entity eine hat (
T-2026-00042etc.). - Daten schreiben.
- Audit-Eintrag mit JSON-Patch festhalten.
- Beziehungs-Index aktualisieren.
Schlägt einer der Schritte 1–4 fehl, wird die gesamte Transaktion zurückgerollt. Sie sehen niemals einen Datensatz ohne Audit-Eintrag.
Geschützte Felder
Einige Felder werden vom Service kontrolliert und können nicht direkt vom
Caller gesetzt werden – etwa id, tenantId, version, createdAt,
createdBy, deletedAt, deletedBy. Wenn Sie sie im Body mitschicken, werden
sie ignoriert oder die API antwortet mit 422 Unprocessable Entity.