Konfiguration
Die Konfiguration erfolgt in der Datei appsettings.json
(die Datei befindet sich im Installationsverzeichnis). Die
nachfolgenden Unterkapitel beschreiben jeweils einen
Toplevel-Eintrag.
Hinweis: Pfadangaben müssen mit doppelte Backslashes geschrieben werden.
Serilog
{
"Serilog": {
"MinimumLevel": {
"Default": "[LEVEL]"
},
"WriteTo": [
{
"Args": {
"path": "[PATH]",
"rollingInterval": "Day"
},
"Name": "File"
},
{
"Name": "Console"
}
]
}
}
Dies ist die Serilog-Konfiguration. Serilog wird insbesondere für das File-Logging gebraucht.
MinimumLevel.Default
Folgende Log-Levels werden unterstützt:
- Verbose
- Debug
- Information
- Warning
- Error
- Fatal
Die Log-Levels Verbose und Debug sollten nur für Fehlersuche gesetzt werden, da die geloggte Menge gross werden kann.
WriteTo.Args.Path
Hier wird der Pfad zum Log-File gesetzt. Bsp.: C:\\temp\logs.log
Weitere Konfigurationen
Weitere Konfigurationen siehe https://github.com/serilog/serilog-settings-configuration.
Database
{
"Database": {
"DatabaseProvider": "[Provider]",
"ConnectionStrings": {
"MSSQL": "[Connection-String]",
"PostgreSQL": "[Connection-String]"
}
}
}
Das vorliegende JSON-Konfigurationsobjekt "Database" enthält Einstellungen für die Datenbankverbindung in der Anwendung. Es umfasst die folgenden Informationen:
- DatabaseProvider: Hier wird die Datenbanktechnologie angegeben, der in der Anwendung verwendet wird. Es wird " MSSQL" oder "PostgreSQL" unterstützt.
- ConnectionStrings: Dieser Abschnitt enthält die Connection-Strings für die beiden unterstützten Datenbanktechnologien "MSSQL" und "PostgreSQL". Die Connection-Strings sind Platzhalter für die tatsächlichen Verbindungsinformationen, die benötigt werden, um eine Verbindung zur jeweiligen Datenbank herzustellen.
E-Mail-Server
Konfiguriert einen E-Mail-Server, der für alle Mandanten verwendet wird, um E-Mails zu versenden. Ein mandanten-spezifischer E-Mail-Server kann auf Mandanten-Ebene konfiguriert werden.
{
"EmailConfiguration": {
"SmtpHost": "[SMTP Host]",
"SmtpPort": [
PORT
],
"UserId": "[SMTP User ID]",
"Password": "[SMTP Password]",
"SslEnabled": [
true/false
],
"EMailFrom": "[SMTP Sender E-Mail]"
}
}
SmtpHost
: Hier wird der Hostname oder die IP-Adresse des SMTP-Servers angegeben, über den E-Mails versendet werden sollen.SmtpPort
: Dieser Wert gibt den Port an, der für die SMTP-Kommunikation verwendet wird.UserId
(Optional): Hier wird der Benutzername oder die Benutzerkennung für den SMTP-Server angegeben. Diese Anmeldeinformationen ermöglichen die Authentifizierung beim Versenden von E-Mails.Password
(Optional): Dieses Feld enthält das Passwort, das zur Anmeldung am SMTP-Server verwendet wird. Es dient der Sicherung der Authentifizierungsinformationen.SslEnabled
(Standardmässig false): Hier wird festgelegt, ob eine verschlüsselte SSL/TLS-Verbindung für die Kommunikation mit dem SMTP-Server verwendet werden soll. Ein Wert von "true" bedeutet, dass SSL/TLS aktiviert ist, während "false" darauf hinweist, dass keine Verschlüsselung verwendet wird.EMailFrom
: Legt die Absender-E-Mail-Adresse fest, mit der das E-Mail versendet wird.
Tenants
{
"Tenants": {
"[Tenant-Key]": {
"ApiBaseUrl": "[PROTOKOLL]://[DOMAIN]:[OWIN-PRIVATE-PORT]",
"Security": {
"CmiStsUri": "[STS-URL]",
"Service": {
"Client_secret": "[STS-CLIENT-SECRET]",
"Client_id": "[STS-CLIENT-ID]"
},
"ConfigUi": {
"Client_id": "[STS-CLIENT-ID]"
}
},
"Caching": {
"AbsoluteExpiration": 3600
},
// optional:
"EmailConfiguration": {
// wie globale Konfiguration
}
}
}
}
In der "Tenants"-Konfiguration werden einzelne Mandanten als eigenständige JSON-Objekte innerhalb des "Tenants"-Objekts definiert. Der Schlüssel des jeweiligen Objekts entspricht dabei dem Namen des Mandanten.
Hier ist ein Beispiel mit den Mandanten prod und test:
{
"Tenants": {
"prod": {
...
},
"test": {
...
}
}
}
ApiBaseUrl
Url zur Metatool API. Die Url muss auf dem Owin-Privateport gerichtet sein.
Beispiel: https://mandant.cmicloud.ch:10004
Security
Konfiguriert den client_credentials
-Flow um beim CMI STS Access Tokens zu beziehen. Das ist notwendig, damit die API
mit dem CMI Server Service kommunizieren kann.
Hier ist die Minimalkonfiguration beschrieben, die am CMI STS vorgenommen werden muss.
CmiStsUri
Url zum CMI STS. URL muss inkl. Mandant angegeben werden und mit /identity
enden.
Beispiel.: https://sts3.cloud.ch/<MANDANT>/identity
Service.Client_id
Die Client ID für den client_credentials
-Flow, welche für Hintergrundaufgaben der Web-API verwendet wird. Eine
Beispielkonfiguration sind hier zu finden.
Service.Client_secret
Client Secret in Plaintext, welches beim STS konfiguriert ist. Das Secret wird für den client_credentials
-Flow
verwendet.
ConfigUi.Client_id
Client ID für den authorization code
-Flow, der vom ConfigUI ausgeführt wird. Es kann der selbe Client verwendet
werden, wie in Service.Client_id
. Wenn jedoch für das Config UI andere Sicherheitsparameter gelten sollen, sollt ein
separater Client beim CMI STS für das Config UI hinterlegt werden.
Caching
Hier kann der Cache, welcher gewisse Metatool Requests cacht, eingestellt werden.
AbsoluteExpiration
Zeit in Sekunden, wie lange die Requests im Cache bleiben.
EmailConfiguration
Optional können E-Mail-Server-Einstellungen pro Mandant festgelegt werden. Werden keine E-Mail-Server-Einstellungen auf Mandanten-Ebene festgelegt, wird die globale Konfiguration für den Mandanten verwendet.