Allgemein
Es werden zwischen drei Stufen von Konfigurationen unterschieden:
System-Konfiguration
Low Level Konfiguration
Nicht aus der App editierbar
z.B. Connection String für die Datenbank
Server-Konfiguration
Administrative Konfiguration
Aus der App editierbar - für gewisse Settings wird ein Neustart der App vorausgesetzt
z.B. Mail/SMTP Konfiguration
Client-Konfiguration
Öffentliche Konfiguration
Aus der App editierbar - benötigen keinen Neustart. Ein reload im Browser reicht.
z.B. DataGrid Search Konfiguration, Crosslink defaults
Die drei Systeme werden in den nachfolgenden Abschnitten noch im Detail erklärt.
System-Konfiguration
Die System-Konfiguration enthält besonders sensitive Konfigurations Elemente, oder solche die bereits beim aufstarten der App zur Verfügung stehen müssen. Das sind beispielsweise:
Logging Konfiguration
Datenbank Konfiguration
IP-Rate-Limit Konfiguration
Konfigurationen welche von .NET Umsystem verwendet werden
Dieser Teil der Konfiguration wird von einem Entwickler erstellt und gewartet. Das Konfiguration-System und Setup entspricht dabei dem Standard von .NET. Der interessierte Leser sei auf .NET Configuration System verwiesen.
Server-Configuration
Die Konfiguration auf Serverebene ist normalerweise vom Integrator vorzunehmen. Im Normallfall sind die Einstellungen auf der Datenbank gespeichert. Für die initiale Konfiguration werden zusätzlich zwei JSON Files unterstützt. Diese werden analog den System-Settings geladen und durch den Developer erstellt und gewartet. Beim aufstarten der Applikation werden die Werte aus den JSON Files in die Datenbank geschrieben – dabei werden existierende Werte in der Datenbank nicht überschrieben.
Standardmässig werden die folgenden JSON-Files unterstützt:
appsettings.client.json
appsettings.server.json
Die auf der Datenbank gespeicherten Werte können wie andere Daten auch über das ECUI-UI bearbeitet werden. Keys sind dabei mit “:” in Segmente zu unterteilen welche später für die Filterung und Sortierung nützlich sind. So sind beispielsweise Mail Settings wie folgt zu erfassen: Mail:SmtpHost
Das Segment “Public” ist für öffentliche Konfigurationen reserviert. Werte mit diesem Segment sind öffentlich auch für nicht authentifizierte Benutzer abrufbar.
Client-Konfiguration
Diese Konfiguration ist öffentlich und ohne Authentifizierung abrufbar. Sie dient dem Client um Features zu aktivieren und spezifiziert das grundlegende UI-Verhalten.
Die Konfiguration kann analog der Server-Konfiguration erweitert und aktualisiert werden. Dabei ist bei den Einträgen jeweils ein “Public” Prefix zu verwenden. Ein Beispiel dazu wäre Public:DataGridConfiguration:useColumnChooser
um entsprechend den Column-Chooser in den Listen zu konfigurieren.