Skip to content

feat(parameters): system parameter admin dialog (PortalCore template)#1

Merged
sebolber merged 8 commits into
mainfrom
claude/add-parameter-dialog-9rw7d
Apr 19, 2026
Merged

feat(parameters): system parameter admin dialog (PortalCore template)#1
sebolber merged 8 commits into
mainfrom
claude/add-parameter-dialog-9rw7d

Conversation

@sebolber

Copy link
Copy Markdown
Owner

Summary

  • Uebernimmt den PortalCore-Parameterdialog als Vorlage und passt ihn an CVM-Konventionen an (Tenant-Isolation per TenantContext, Keycloak CVM_ADMIN, Lombok-Builder, Maven-Module).
  • DB: V0030__system_parameter.sql (Tabellen system_parameter + system_parameter_audit_log, eindeutiger Schluessel pro Mandant, Audit-Log mit FK CASCADE).
  • Backend: Domain-Enum (15 Typen), Persistence (Entities + Repositories), Application (Service mit CRUD/Wert-Aenderung/Reset/Audit, Validator, Views, Commands), API (/api/v1/admin/parameters mit @PreAuthorize("hasRole('CVM_ADMIN')"), Requests, Exception-Handler).
  • Frontend: HTTP-Service, AdminParametersComponent (Tabs Parameter + Audit-Log, Material-Form), Route /admin/parameters, Menueintrag „System-Parameter" unter Einstellungen, ApiClient.patch.
  • Sensitive Werte werden im Backend mit *** maskiert (Liste, Audit-Log, Schreibvorgaenge).

Test plan

  • mvn clean install laeuft fehlerfrei (Compile + ArchUnit + Tests)
  • Flyway-Migration V0030 wird sauber angewendet
  • Login als CVM_ADMIN: Liste laden, Parameter anlegen, Wert aendern (Audit-Eintrag erscheint), Reset, Loeschen
  • Sensitive Parameter zeigen *** in Liste und Audit-Log
  • Login ohne Admin-Rolle: /admin/parameters ist nicht erreichbar (403/keine Menue-Sichtbarkeit)

…terdialog)

Uebernimmt das Parameterdialog-Konzept aus PortalCore: mandantenspezifische
Key/Value-Konfiguration mit Typisierung, Validierung (regex/required/range)
und vollstaendigem Audit-Log fuer jede Wertaenderung. Sensitive Werte
werden im Audit maskiert.

- Flyway V0030: system_parameter + system_parameter_audit_log
- Domain-Enum SystemParameterType (STRING/NUMBER/BOOLEAN/EMAIL/URL/JSON/...)
- Persistence (Entity + Repos) mit Tenant-Isolation
- Application-Service mit Validator und Audit-Erzeugung
- REST-Controller /api/v1/admin/parameters (nur CVM_ADMIN)
- SystemParameterCommands (Create/Update/ChangeValue)
- SystemParameterView and SystemParameterAuditLogView (sensitive masking)
- SystemParameterValidator (type, regex, required, options)
- SystemParameterService (CRUD + value change + reset + audit log)
- SystemParameterController under /api/v1/admin/parameters with CVM_ADMIN
- SystemParameterRequests records mapped to application commands
- SystemParameterExceptionHandler for 404/400 mapping
@sebolber sebolber merged commit 2b1fb21 into main Apr 19, 2026
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant