Bausteinsicht
Whitebox Gesamtsystem
Das e-gov-framework besteht aus einem Pflicht-Kernmodul und vier
optionalen Erweiterungsmodulen. Fachapplikationen beziehen die Module
als Maven-Dependencies über das BOM.
Bausteinsicht Gesamtsystem
↗ Vollbild
Bildquelle Bausteinsicht Gesamtsystem (SVG)
Enthaltene Bausteine
Baustein
Verantwortung
e-gov-bom
Bill of Materials — zentrale Versionssteuerung aller
Framework-Abhängigkeiten; kein ausführbarer Code
e-gov-framework
Kern: Persistence-Abstraktion, IAM (Rollen/RuleSets),
Command-Pattern, Exception-Handling, OpenAPI-Integration
e-gov-mdm
Stammdatenverwaltung: Vokabulare (Codelisten), mehrsprachige Codes,
erweiterbare Felddefinitionen
e-gov-mdm-api
REST-API-Layer für MDM; OpenAPI-Dokumentation; Maven-Plugin zur
Ruleset-SQL-Generierung
e-gov-ai-rule-generation
LLM-gestützte Generierung von Validierungsregeln aus natürlicher
Sprache (Azure OpenAI / gpt-4o)
e-gov-luid
Alternative ID-Generierungsstrategien: LUID (sortierbar,
cluster-sicher), DB-Sequence, ULID
e-gov-framework-demo
Referenzimplementierung; zeigt korrekten Einsatz aller Module
Wichtige Schnittstellen
Schnittstelle
Beschreibung
BaseRepositoryImpl<T>
Abstrakte Basisklasse; consuming Apps erweitern sie für jede
Domänen-Entity
BaseExecutor
Abstrakte Basis für Command-Executor; kapselt Validation +
Persistierung
UserIdProvider
Interface; consuming Apps implementieren es, um userId
aus dem EGOV_TOKEN-Cookie zu extrahieren
DomainCommandFactory
Abstrakte Fabrik; consuming Apps erzeugen domänenspezifische
Commands
@Ruleset / @Validation
Annotationen auf DTOs; deklarieren Autorisierungs- und
Validierungsregeln
egov.* Properties
Konfigurationspunkte in application.yml der consuming
App
Ebene 2 — Detailzerlegung
e-gov-framework (Kern)
Der Kern gliedert sich in vier interne Pakete.
Persistence
(ch.ti8m.egov.framework.persistence)
Baustein
Verantwortung
BaseRepositoryImpl
Generische CRUD-Operationen; delegiert Query-Bau an
QueryBuilder
QueryBuilder
Baut native SQL-Abfragen aus Filter-DSL, Sortierung, Paginierung und
Permission-Filter
FilterParser / Tokenizer
Parsen den Filter-DSL-String in einen Abstract Syntax Tree
PermissionBuilder
Ergänzt jede SELECT-Abfrage um rollenbasierte WHERE-Klauseln
ModifiableEntity
Basis-JPA-Entity mit Audit-Feldern (createdBy,
modifiedBy, Zeitstempel)
DatabaseConfigurationService
Liest egov.persistence.database.type und
naming.style; konfiguriert Dialekt
IAM
(ch.ti8m.egov.framework.iam)
Baustein
Verantwortung
RuleSetService
Ermittelt den passenden RuleSet für eine Action + Benutzerrolle
PermissionService
Prüft ob ein Benutzer eine Operation (READ/WRITE/DELETE) auf einer
Entity ausführen darf
RoleService
Verwaltet Rollen und Rollenmitgliedschaften
IAMController
REST-Endpunkt GET /iam/v1/permissions
RuleSet-Entities
JPA-Entities in Tabellen egov_iam_rule_set,
egov_iam_condition, egov_iam_role*
Command & Validation
(ch.ti8m.egov.framework.validation)
Baustein
Verantwortung
Command
JPA-Entity; persistiert jede fachliche Aktion (Tabelle
egov_cmd_command) mit Status-Lifecycle
(INITIATED → VALIDATED → EXECUTED / FAILED)
DomainCommandFactory
Erzeugt und initialisiert Commands; setzt Audit-Informationen
BaseExecutor
Orchestriert Validation (via ValidationEngine) →
Ausführung → Persistierung
ValidationEngine
Wertet RuleSet-Validierungsregeln rekursiv gegen DTO-Felder aus
NonTxExecutor
Führt Commands ausserhalb einer Spring-Transaktion aus
Exception Handling &
Context (ch.ti8m.egov.framework.exceptionhandling)
Baustein
Verantwortung
GenericExceptionHandler
@ControllerAdvice; wandelt alle
EGovException-Subklassen in strukturierte
HTTP-Fehlerantworten um
DataHolder
ThreadLocal-Kontext; hält userId für den aktuellen
Request
ContextInterceptor
HTTP-Interceptor; extrahiert userId aus
EGOV_TOKEN und befüllt DataHolder
EGovException-Hierarchie
ActionNotAllowedException,
NoPermissionForEntityException,
UnauthorizedException, SystemException
Ebene 2 — Detailzerlegung
e-gov-ai-rule-generation
Das KI-Modul ist als optionales Erweiterungsmodul konzipiert und
enthält drei Bausteine, die den Workflow von der Freitext-Eingabe bis
zur persistierten Validierungsregel abbilden.
Baustein
Verantwortung
RuleModificationController
REST-Endpunkt (POST); nimmt Freitext-Beschreibung entgegen und
orchestriert Generierung und Persistierung der neuen Regel
RuleGenerator
Baut den Prompt aus Freitext + Regelgrammatik und ruft Azure OpenAI
(gpt-4o) über Spring AI auf
RuleTranslator
Konvertiert die LLM-Antwort in das Framework-Regelformat und
persistiert die Regel via RuleSetService in
egov_iam_rule_set
Externe Abhängigkeit: RuleGenerator
kommuniziert mit Azure OpenAI über HTTPS (Cloud-Egress); die übrigen
Bausteine kommunizieren ausschliesslich mit dem
e-gov-framework-Kern (→ Szenario 4 in Sektion 6).