ti&m e-gov-framework

12 Glossar

Wichtige Fach- und Technikbegriffe alphabetisch sortiert. Domänenspezifische Framework-Konzepte, Abkürzungen und externe Systembezeichnungen.


12.1 Framework-Konzepte

Begriff Definition
ArchivedModifiableEntity JPA-Basisklasse für Soft-Delete; Entitäten werden archiviert statt physisch gelöscht. Alle Abfragen filtern archivierte Einträge automatisch aus.
BaseExecutor Abstraktes Interface, das eine execute(Command)-Methode vorschreibt. Koordiniert den Command-Lifecycle: Validation → Ausführung → Status-Persistierung. Zwei Varianten: Executor (transaktional) und NonTxExecutor (nicht-transaktional).
BaseRepositoryImpl Abstrakte Basisklasse für alle Domänen-Repositories. Stellt generische CRUD-Operationen bereit und delegiert Query-Bau an QueryBuilder. Consuming Apps leiten pro Domänen-Entity eine Subklasse ab.
Command JPA-Entity in Tabelle egov_cmd_command, die eine fachliche Schreiboperation repräsentiert. Enthält Benutzer, Zeitstempel, Aktion und Status-Lifecycle. Bildet die Grundlage des Audit-Trails.
CommandHandlerBase Basis-Implementierung von BaseExecutor für Standard-Schreiboperationen. Consuming Apps leiten davon domänenspezifische Executors ab.
Consuming App Fachapplikation einer Behörde, die das e-gov-framework als Maven-Dependency einbindet. Das Framework läuft in derselben JVM wie die Fachapplikation.
ContextInterceptor Spring HandlerInterceptor, der bei jedem HTTP-Request die userId aus dem EGOV_TOKEN-Cookie extrahiert und im DataHolder ablegt. Bereinigt den ThreadLocal in afterCompletion().
DataHolder ThreadLocal-Kontext, der für die Dauer eines Requests die userId und Request-Parameter (filter, sort, page, size u.a.) hält. Wird von allen Framework-Komponenten gelesen.
DatabaseConfigurationService Spring-Bean, der beim Start egov.persistence.database.type und egov.persistence.database.naming.style liest und Hibernate-Dialekt sowie Spalten-Namensschema konfiguriert.
DomainCommandFactory Abstrakte Fabrik, die consuming Apps ableiten, um domänenspezifische Command-Instanzen zu erzeugen und mit Audit-Informationen zu befüllen.
EGOV_TOKEN HTTP-Cookie, das die F5-Firewall nach erfolgtem Azure-AD-Login setzt und die userId des authentifizierten Benutzers enthält. Das Framework führt keine eigene Token-Validierung durch.
ExecutionPlan Enum auf dem Command, das steuert ob und wann Validierung und Ausführung stattfinden: VALIDATE_BEFORE_EXECUTION, VALIDATE_BEFORE_EXECUTING_ANYWAY, VALIDATE_AFTER_EXECUTION, DONT_VALIDATE, DONT_EXECUTE.
Filter-DSL Eigenentwickelte Filtersprache für REST-Anfragen (z.B. status==ACTIVE;name==M*). FilterParser und Tokenizer übersetzen den String in einen Abstract Syntax Tree; QueryBuilder erzeugt daraus parameterisiertes SQL.
GenericExceptionHandler Spring @ControllerAdvice, der alle EGovException-Subklassen abfängt und in ein strukturiertes ResponseExceptionBody-JSON umwandelt (inkl. errorCode, exceptionId).
LUID Locally Unique Identifier — zeitbasierte, sortierbare, cluster-sichere ID-Strategie des Moduls e-gov-luid. Kein Datenbankzugriff bei der Generierung; Eindeutigkeit über mehrere Pods via segmentId.
LUIDGenerator Hibernate IdentifierGenerator, der LUIDs erzeugt. Thread-sicher (synchronized). Konfigurierbar über egov.persistence.luid.*-Properties.
ModifiableEntity JPA-Basisklasse mit Audit-Feldern (createdBy, modifiedBy, Zeitstempel). Alle Framework-Entitäten und Domänen-Entitäten der consuming Apps erben davon.
NonTxExecutor Variante von BaseExecutor ohne @Transactional — für Operationen, die ausserhalb einer Spring-Transaktion laufen müssen. Bekanntes Risiko (R-2); wird in Framework 2.0 adressiert.
PermissionBuilder Komponente, die für eine userId, eine Entity-Klasse und eine PermissionOperation eine parametrisierte SQL-WHERE-Klausel erzeugt. Wird vom QueryBuilder automatisch in jede Leseabfrage eingebunden.
PermissionService Service, der die aktiven Rollenberechtigungen eines Benutzers aus den IAM-Tabellen liest und AllowedRecordsQuery-Objekte zurückgibt.
QueryBuilder Kernkomponente der Persistence-Schicht. Baut native SQL-Abfragen aus Filter-DSL, Sortierung, Paginierung und Permission-Filter zusammen.
RemoteCommandExecutor BaseExecutor-Variante für verteilte Command-Ausführung über mehrere Kubernetes-Pods hinweg, koordiniert via ZooKeeper.
RuleSet Datenbankgespeicherte Menge von Validierungsregeln für eine bestimmte Aktion. RuleSetService ermittelt den passenden RuleSet; ValidationEngine wertet ihn gegen DTO-Felder aus.
RuleSetService Service, der den für eine Kombination aus Aktion und Benutzerrolle passenden RuleSet aus den IAM-Tabellen ermittelt.
Row-based Security Sicherheitskonzept, bei dem jede Datenbankabfrage automatisch um benutzer- und rollenspezifische WHERE-Klauseln erweitert wird. Kein Benutzer sieht Datensätze, für die keine permission_definition existiert. Opt-out statt Opt-in (ADR-004).
Soft-Delete Archivierungsstrategie: Entitäten werden nicht physisch gelöscht, sondern als archiviert markiert. Umsetzung über ArchivedModifiableEntity.
UserIdProvider Interface, das jede consuming App einmalig implementiert, um die userId aus dem EGOV_TOKEN-Cookie (oder einem anderen Auth-Mechanismus) zu extrahieren. Einziger Integrationspunkt für die Authentifizierung.
ValidationEngine Komponente, die RuleSet-Validierungsregeln rekursiv gegen DTO-Felder auswertet und ein ValidationTriple (OK / FAILED + Fehlerbeschreibung) zurückgibt.
Vocabulary MDM-Konzept für eine benannte Sammlung mehrsprachiger Code-Werte (z.B. Ortschaften, Anreden, Sprachen). Besteht aus LanguageDefinition-Einträgen und MasterDataGenericEntity-Zeilen pro Sprache.

12.2 Systemkomponenten und externe Systeme

Begriff Definition
ArgoCD GitOps-Deployment-Tool, das Kubernetes-Ressourcen aus einem Git-Repository synchronisiert. Consuming Apps werden über ArgoCD auf Kubernetes-Clustern der Behörden ausgerollt.
Artifactory Maven-Artefakt-Registry von JFrog, betrieben von ti&m unter bin.ti8m.ch/artifactory/. Einziges Distributions-Repository für Framework-JARs; nicht Maven Central.
Azure AD Microsoft Azure Active Directory — Identity Provider der Behörden. Stellt nach erfolgreicher Authentifizierung das EGOV_TOKEN-Cookie via F5 aus.
Azure OpenAI Cloud-Dienst von Microsoft für OpenAI-Modelle (gpt-4o). Wird vom Modul e-gov-ai-rule-generation für die LLM-gestützte Regelgenerierung genutzt.
F5 F5 BIG-IP Reverse Proxy / Firewall, der TLS terminiert und nach Azure-AD-Login den EGOV_TOKEN-Cookie setzt.
Flyway Datenbank-Migrationstool. Das Framework liefert eigene Flyway-Skripte für IAM- und Command-Tabellen mit; consuming Apps ergänzen applikationsspezifische Skripte.
Spring AI Spring-Framework-Erweiterung als Abstraktionsschicht für LLM-Integration. Ermöglicht späteren Wechsel des LLM-Providers ohne Code-Änderung. Aktuell als Milestone-Release eingesetzt (→ Risiko R-4).
ZooKeeper Verteiltes Koordinationssystem (Apache). Optional; wird für RemoteCommandExecutor genutzt, wenn Commands über mehrere Pod-Instanzen hinweg verteilt ausgeführt werden sollen.

12.3 Abkürzungen

Abkürzung Bedeutung Kontext
ADR Architecture Decision Record Sektion 9: dokumentiert wichtige Architekturentscheidungen im Nygard-Format
arc42 Architecture 42 Template-Standard für Softwarearchitektur-Dokumentation (https://arc42.org)
BOM Bill of Materials Maven-Konzept; e-gov-bom steuert die Versionen aller Framework-Abhängigkeiten zentral
CRUD Create, Read, Update, Delete Grundlegende Datenbankoperationen; BaseRepositoryImpl stellt sie generisch bereit
DDL Data Definition Language SQL-Befehle zur Schemadefinition; Framework liefert Flyway-DDL für IAM- und Command-Tabellen
DSL Domain-Specific Language Im Framework: Filter-DSL für REST-Anfragen (z.B. status==ACTIVE;name==M*)
DTO Data Transfer Object Datenobjekt für REST-Schnittstellen; trägt @Ruleset- und @Validation-Annotationen
IAM Identity and Access Management Framework-Modul ch.ti8m.egov.framework.iam: Rollen, RuleSets, Permissions
JDBC Java Database Connectivity Low-level Java API für Datenbankzugriff; wird im QueryBuilder für native SQL-Abfragen genutzt
JPA Java Persistence API ORM-Standard; wird für Entity-Mapping und Schreiboperationen eingesetzt
LTS Long-Term Support Java-Release-Kategorie; Java 21 ist die aktuelle LTS-Version (Randbedingung)
LUID Locally Unique Identifier Zeitbasierte, sortierbare, cluster-sichere ID-Strategie des e-gov-luid-Moduls
MDM Master Data Management Modul e-gov-mdm: verwaltet mehrsprachige Stammdaten (Vocabularies, Codelisten)
REST Representational State Transfer HTTP-basiertes API-Stil; alle Framework-Endpunkte sind REST-konform und via SpringDoc/OpenAPI dokumentiert
RBAC Role-Based Access Control Berechtigungskonzept: Zugriff wird anhand von Rollen gesteuert; Basis des IAM-Moduls
SemVer Semantic Versioning Versionierungsschema MAJOR.MINOR.PATCH; Breaking Changes → Major-Bump; automatisiert via Conventional Commits + Semantic Release
ULID Universally Unique Lexicographically Sortable Identifier Alternative ID-Strategie in e-gov-luid; ms-präzise, ohne segmentId