Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

...

General

Die Konfiguration des Connect Servers erfolgt in der Regel mit Hilfe von JSON-Dateien, welche sich im Installationsverzeichnis der Applikation befinden. In Spezialfällen ist eine Übersteuerung über Umgebungsvariablen oder über Kommandozeilenparameter möglich.

Standardkonfiguration

Die Standardkonfiguration befindet sich in der Datei “appsettings.Default.json”. Diese Datei sollte nicht direkt verändert werden, da diese Änderungen ggf. durch ein späteres Upgrade überschrieben werden.

Installationsspezifische Konfiguration

Soll eine installationsspezifische Konfiguration angelegt werden, so empfiehlt es sich die Datei „appsettings.Default.json“ in eine Datei mit dem Namen “appsettings.json” zu kopieren. Diese Datei wird bei einem eventuellen Upgrade nicht überschrieben, somit bleiben die hier hinterlegten Konfigurationseinstellungen bestehen.

Die Standardkonfiguration wird hierbei weiterhin berücksichtigt. Die installationsspezifische Konfiguration muss daher nur die gewünschten Deltas enthalten.

Umgebungsspezifische Konfiguration

Wird ein Installationsverzeichnis in verschiedenen Umgebungen genutzt (z. B. in einem Template für Container), so können umgebungsspezifische Konfigurationen angelegt werden. Hierfür wird die Datei „appsettings.Default.json“ in eine Datei mit dem Namen “appsettings.{environment}.json” kopiert ({environment} ist hierbei durch den Namen der entsprechenden Umgebung zu ersetzen).

In diesem Szenario kann die Umgebung zur Laufzeit mit Hilfe der Umgebungsvariablen “ASPNETCORE_ENVIRONMENT” spezifiziert werden. In der Regel werden hier die Werte “Development”, “Staging” und “Production” verwendet, der Standardwert ist “Production”.

Die Standardkonfiguration sowie ein evtl. vorhandene installationsspezifische Konfiguration werden weiterhin berücksichtigt. Die umgebungsspezifischen Konfigurationen müssen daher nur die gewünschten Deltas enthalten.

Die Verwendung der Umgebung “Development” sollte in Produktionsumgebungen vermieden werden, da hierbei zusätzliche Debugging-Funktionalitäten aktiviert werden.

Explizite Konfiguration

Bei Bedarf können in der Kommandozeile über das Argument “settings=…”, “-settings=…”, “--settings=…” oder “/settings=…” zusätzliche Konfigurationsdateien angegeben werden. Hierbei wird geprüft, ob die angegebene Konfigurationsdatei vorhanden ist und gegebenenfalls eine Fehlermeldung ausgegeben. Diese Prüfung kann deaktiviert werden, indem an den Dateinamen ein Fragezeichen angehängt wird. Dadurch lassen sich auch optionale Konfigurationsdateien in der Kommandozeile spezifizieren.

Die Standardkonfiguration sowie die installationsspezifische Konfiguration und die umgebungsspezifische(n) Konfiguration(en) werden weiterhin berücksichtigt. Die expliziten Konfigurationen müssen in diesem Fall nur die gewünschten Deltas enthalten.

Struktur der Konfigurationsdatei

Die Konfigurationsdatei für den Connect Server ist eine JSON Datei mit eine JSON Objekt als Wurzelelement. Die entsprechenden untergeordneten Elemente werden in den folgenden Kapiteln beschrieben.

Der Abschnitt „AllowedHosts“ (JSON Wert vom Typ String)

Dieser Abschnitt erlaubt die Einschränkung der Host-Namen, an welche der Webserver gebunden werden kann. Somit lässt sich der Zugriff über unerwünschte Hostnamen oder über IP-Adressen verhindern. Mehrere Werte können durch ein Semikolon getrennt werden. Weitere Informationen finden Sie unter folgendem LinkThe Connect Server is usually configured using JSON files, which are located in the installation directory of the application. In special cases, overriding via environment variables or via command line parameters is possible.

Standard configuration

The default configuration is located in the appsettings.Default.json file. This file should not be changed directly, because these changes may be overwritten by a later upgrade.

Installation specific configuration

If an installation-specific configuration is to be created, it is recommended to copy the file "appsettings.Default.json" into a file with the name "appsettings.json". This file will not be overwritten in case of an upgrade, so the configuration settings stored here will remain.

The default configuration is still taken into account here. The installation-specific configuration must therefore only contain the desired deltas.

Environment-specific configuration

If an installation directory is used in different environments (e.g. in a template for containers), environment-specific configurations can be created. For this purpose, the file "appsettings.Default.json" is converted into a file with the name "appsettings.{environment}.json" copied ({environment} must be replaced by the name of the corresponding environment).

In this scenario, the environment can be specified at runtime using the environment variable "ASPNETCORE_ENVIRONMENT". Usually the values "Development", "Staging" and "Production" are used here, the default value is "Production".

The default configuration and any existing installation-specific configuration are still taken into account. The environment-specific configurations must therefore only contain the desired deltas.

The use of the "Development" environment should be avoided in production environments, as this activates additional debugging functionalities.

Explicit configuration

If required, additional configuration files can be specified in the command line via the argument "settings=...", "-settings=...", "--settings=..." or "/settings=...". This will check if the specified configuration file exists and will print an error message if necessary. This check can be disabled by appending a question mark to the file name. Thus also optional configuration files can be specified in the command line.

The default configuration as well as the installation-specific configuration and the environment-specific configuration(s) are still taken into account. The explicit configurations in this case only have to contain the desired deltas.

Structure of the configuration file

The configuration file for the Connect Server is a JSON file with a JSON object as the root element. The corresponding child elements are described in the following chapters.

The AllowedHosts section (JSON value of type String).

This section allows you to restrict the host names to which the web server can be bound. Thus, access via unwanted host names or via IP addresses can be prevented. Multiple values can be separated by a semicolon. For more information, see the following link:

...

...

Example

Code Block
...
  "AllowedHosts": "connect.mycompany.com;localhost",
...

...

The Debug section (JSON

...

object)

Dieser Abschnitt enthält Einstellungen zur Fehleranalyse.

...

This section contains settings for error analysis.

The section HttpLogging (JSON

...

Object)

In diesem Abschnitt kann die Protokollierung des eingehenden und ausgehenden HTTP-Verkehrs aktiviert werden. Bitte beachten Sie, dass hierbei eine erhebliche Datenmenge in die Protokolle geschrieben werden kann und dass die Protokollierung spürbare Auswirkungen auf die Performance des Gesamtsystems hat. Die Funktionalität sollte nur dann aktiviert werden, wenn das Ziel der Protokollierung eine Datei oder die Konsole ist. Hier können folgende Werte hinterlegt werden:

...

Eigenschaft

...

Typ

...

Funktion

...

Enabled

...

Boolean

...

Diese Option aktiviert oder deaktiviert die Protokollierung des eingehenden aus ausgehenden HTTP-Verkehrs. Da diese Funktionalität bei Bedarf auch zur Laufzeit über die GUI aktiviert oder deaktiviert werden kann, empfiehlt es sich, diese Voreinstellung auf dem Wert “false” zu belassen.

...

Include

...

Array mit Werten vom Typ String

...

Dieser Wert enthält eine Auflistung von Regular Expressions. Nur URIs, welche zu einer der hier aufgelisteten Regular Expressions passen, werden bei der Protokollierung berücksichtigt. Wird dieser Wert nicht definiert, so werden generell aller URIs in die Protokollierung miteinbezogen.

...

Exclude

...

Array mit Werten vom Typ String

...

Dieser Wert enthält eine Auflistung von Regular Expressions. Nur URIs, welche nicht zu einer der hier aufgelisteten Regular Expressions passen, werden bei der Protokollierung berücksichtigt. Wird dieser Wert nicht definiert, so werden keine URIs von der Protokollierung ausgeschlossen.

...

ForceHexDump

...

Boolean

...

Ist dieser Wert nicht definiert oder auf false gesetzt, so entscheidet der Connect Server, anhand des Content Types inwiefern der Inhalt einer HTTP-Nachricht als Text oder als Hexdump angezeigt wird. Wird dieser Wert auf true gesetzt, wird die Darstellung des Inhalts von HTTP-Nachrichten als Hexdump erzwungen (unabhängig vom Inhalt).

Der Abschnitt EnableBackgroundExceptions (JSON Wert vom Typ Boolean)

Dieser Wert steuert den Umgang mit bei der Hintergrundverarbeitung auftretenden Exceptions. Diese Option sollte nach Möglichkeit nicht definiert oder auf den Wert false gesetzt werden. Der Wert true macht nur während des Debuggings oder innerhalb von Unit Tests Sinn.

...

this section, logging of incoming and outgoing HTTP traffic can be enabled. Please note that a considerable amount of data can be written to the logs when this is done and that logging has a noticeable impact on the performance of the overall system. The functionality should only be enabled if the target of the logging is a file or the console. The following values can be stored here:

Property

Type

Function

Enabled

Boolean

This option enables or disables logging of incoming from outgoing HTTP traffic. Since this functionality can also be enabled or disabled at runtime via the GUI if required, it is recommended to leave this preset at the value "false".

Include

Array with values of type String

This value contains a list of regular expressions. Only URIs that match one of the regular expressions listed here are included in the logging. If this value is not defined, all URIs are generally included in the logging.

Exclude

Array with values of type String

This value contains a list of regular expressions. Only URIs that do not match one of the regular expressions listed here will be considered for logging. If this value is not defined, no URIs will be excluded from logging.

ForceHexDump

Boolean

If this value is not defined or is set to false, the Connect Server decides, based on the content type, to what extent the content of an HTTP message is displayed as text or as a hexdump. If this value is set to true, the content of HTTP messages is forced to be displayed as a hexdump (regardless of the content).

The EnableBackgroundExceptions section (JSON value of type Boolean).

This value controls the handling of exceptions that occur during background processing. If possible, this option should not be defined or set to the value false. The value true only makes sense during debugging or within unit tests.

Example

Code Block
languagejson
...

  "Debug": {
    "HttpLogging": {
      "Enabled": false,
      "Include": [
        ".*"
      ],
      "Exclude": [
        "^(http|https)://[^/]+/_content/",
        "^(http|https)://[^/]+/_framework/",
        "^(http|https)://[^/]+/api/",
        "^(http|https)://[^/]+/css/",
        "^(http|https)://[^/]+/font/",
        "^(http|https)://[^/]+/js/",
        "^(http|https)://[^/]+/lib/",
        "^(http|https)://[^/]+/[sS]erver/",

        "^(http|https)://[^/]+/$",
        "^(http|https)://[^/]+/favicon.ico$",
        "^(http|https)://[^/]+/index.html$",
        "^(http|https)://[^/]+/[sS]erver$",
        "^(http|https)://[^/]+/[^/]+.css$"
      ],
      "ForceHexDump": false
    },
    "EnableBackgroundExceptions": false
  },
  
...

...

The Endpoints section (JSON Array)

Dieser Abschnitt dient zur Konfiguration des integrierten Webservers und enthält ein Array mit Informationen zu den Enpoints. Die einzelnen Elemente des Arrays besitzen folgende Eigenschaften:

...

Eigenschaft

...

Typ

...

This section is used to configure the integrated web server and contains an array with information about the enpoints. The individual elements of the array have the following properties:

Property

Type

Function

Uri

String

Diese Eigenschaft enthält die URI des gewünschten Endpoints. Schema und Host werden zwingend benötigt, die Angabe eines Ports ist optional. Ist kein Port angegeben, so werden die jeweiligen Standard-Ports (80 bei HTTP und 443 bei HTTPS) verwendet. Wird als Host keine IP-Adresse angegeben, so wird der angegebene Name mittels DNS Lockup in eine IP-Adresse umgewandelt. Die IP-Adressen This property contains the URI of the desired endpoint. Schema and host are mandatory, the specification of a port is optional. If no port is specified, the respective default ports (80 for HTTP and 443 for HTTPS) are used. If no IP address is specified as the host, the specified name is converted to an IP address using DNS lockup. The IP addresses 0.0.0.0 oder * stehen für alle verfügbaren IP-Adressen des Serversor * represent all available IP addresses of the server.

Certificate

JSON Objekt

Diese Eigenschaft wird nur bei der Verwendung von HTTPS benötigt. Das hir angegebene JSON Objekt benötigt folgende Eigenschaften:

Source
Gibt den Speicherort des Zertifikats an. Hierbei werden folgende Werte unterstützt:

File
Das Zertifikat liegt als Datei vor.

UserStore
Das Zertifikat liegt im benutzerspezifischen Zertifikatspeicher.

SystemStore
Das Zertifikat liegt im systemspezifischen Zertifikatspeicher.

Store
Das Zertifikat liegt in einem Zertifikatspeicher und Connect versucht diesen anhand der weiteren Daten zu ermitteln.

Path
Nur für Source “File”: Der Pfad zur Zertifikatdatei oder der Pfad zu dem Verzeichnis, welches die Zertifikatdatei enthält.

Name
Nur für Source “File”: Enthält die Eigenschaft “Path” das Verzeichnis, welches die Zertifikatdatei enthält, so muss hier der Dateiname der Zertifikatdatei angegeben werden. Andernfalls kann diese Eigenschaft weggelassen werden.

Password
Nur für Source “File”: Das Passwort für den in der Zertifikatdatei enthaltenen privaten Schlüsselobject

This property is only required when using HTTPS. The JSON object specified here requires the following properties:

Source
Specifies the location of the certificate. The following values are supported:

File
The certificate is available as a file.

UserStore
The certificate is located in the user-specific certificate store.

SystemStore
The certificate is located in the system-specific certificate store.

Store
The certificate is stored in a certificate store and Connect tries to determine it based on the other data.

Path
For Source "File" only: The path to the certificate file or the path to the directory containing the certificate file.

Name
Only for Source "File": If the "Path" property contains the directory that contains the certificate file, the file name of the certificate file must be specified here. Otherwise, this property can be omitted.

Password
Only for Source "File": The password for the private key contained in the certificate file.

SerialNumber (or Serial or SerialNo)
Selektionskriterium: Die Seriennummer des zu verwendenden ZertifikatsSelection criterion: The serial number of the certificate to be used.

SubjectName (or Subject)Selektionskriterium: Der Betreff (Subject) des zu verwendenden Zertifikats

Selection criterion: The subject of the certificate to be used.

Thumbprint
Selektionskriterium: Der Fingerabdruck (Thumbprint) des zu verwendenden Zertifikats.

Die Selektionskriterien werden nur dann ausgewertet, wenn das Zertifikat aus einem Zertifikatspeicher gelesen werden soll. Es müssen nicht alle möglichen Selektionskriterien spezifiziert werden, die Zertifikatsuche muss jedoch zu einem eindeutigen Ergebnis führen. Erfüllen mehrere Zertifikate die Selektionskriterien, kann der Webserver nicht gestartet werden.

Die Verwendung mehrerer Zertifikate am selben Endpoint wird derzeit nicht unterstützt. Ist ein Endpoint über verschiedene Hostnamen erreichbar, so müssen diese in einem Zertifikat aufgelistet sein. Wildcard-Zertifikate werden ohne Einschränkungen unterstützt.

...

Selection criterion: The fingerprint (thumbprint) of the certificate to be used.

The selection criteria are only evaluated if the certificate is to be read from a certificate store. Not all possible selection criteria have to be specified, but the certificate search must lead to a unique result. If several certificates meet the selection criteria, the web server cannot be started.

The use of multiple certificates on the same endpoint is currently not supported. If an endpoint can be reached via different hostnames, these must be listed in a certificate. Wildcard certificates are supported without restrictions.

Example

Code Block
languagejson
...
  
  "Endpoints": [
    {
      "Uri": "http://*:80"
    },
    {
      "Uri": "https://*:443",
      "Certificate": {
        "Source": "File",
        "Path": "C:\Certificates",
        "Name": "Certificate.pfx",
        "Password": "CertificatePassword"
      }
    },
    {
      "Uri": "https://192.168.100.100:444",
      "Certificate": {
        "Source": "Store",
        "SerialNumber": "0123456789"
      }
    }
  ],
  
...

...

The "Frontend" section (JSON

...

object)

Der Abschnitt „SupportedLanguages“ (JSON Array mit Werten vom Typ String)

Dieser Abschnitt definiert die im Dialog zur Pflege von Sprachabhängigen Texte auswählbaren Sprachen. Hierbei werden sowohl generische Sprachschlüssel (wie “en” oder “de”) als auch gebietsspezifische Sprachschlüssel (wie “en-US”, “en-UK”, “de-DE” oder “de-AT”) unterstützt.

...

The SupportedLanguages section (JSON array with string type values).

This section defines the languages that can be selected in the dialog for maintaining language-dependent texts. Both generic language keys (such as "en" or "de") and area-specific language keys (such as "en-US", "en-UK", "de-DE" or "de-AT") are supported.

Example

Code Block
languagejson
...

  "Frontend": {
    "SupportedLanguages": [ "de", "en", "es", "fr", "it", "nl" ]
  },

...

...

The Logging section (JSON

...

object)

Dieser Abschnitt enthält ein weiteres JSON Objekte mit dem Namen “LogLevel”, welches den Detailgrad der Protokollausgaben festlegt. Hierbei enthält die Eigenschaft “Default” die Standardeinstellung, weitere vorhandene Eigenschaften definieren ggf. abweichende Einstellungen für bestimmte .NET Namensräume. Für den Detailgrad werden folgende die Werte “Trace”, “Debug”, “Information”, “Warning” und “Error” unterstützt.

...

This section contains another JSON object called "LogLevel" which defines the level of detail of the log output. The property "Default" contains the default setting, other properties may define different settings for specific .NET namespaces. The following values are supported for the level of detail: "Trace", "Debug", "Information", "Warning" and "Error".

Example

Code Block
...

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "IdentityServer4": "Warning",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },

...

Bei Bedarf kann der Detailgrad in Abhängigkeit vom Protokollierungsziel (Konsole, Event LogIf required, the level of detail can be specified depending on the logging target (console, event log, etc.) spezifiziert werden. Weitergehende Informationen finden sie unter folgendem Link. Further information can be found under the following link:

...

...

The Security section (JSON

...

object)

...

The IpFiltering section (JSON

...

object)

In diesem Abschnitt kann der Zugriff auf den Connect Server auf bestimmte IP-Adressen beschränkt werden. Hier können folgende Werte hinterlegt werden:

...

Eigenschaft

...

Typ

...

Funktion

...

Enabled

...

Boolean

...

Diese Option aktiviert oder deaktiviert die Filterung nach IP-Adressen.

...

Blacklist

...

Array mit Werten vom Typ String

...

Dieser Wert enthält eine Auflistung der IP-Adressen oder Netzwerke (CIDR-Adressen), welche vom Zugriff auf den Webserver ausgeschlossen werden sollen. Ist die Blacklist leer oder nicht angegeben, so wird lediglich die Whitelist betrachtet.

...

Whitelist

...

Array mit Werten vom Typ String

...

Dieser Wert enthält eine explizite Auflistung der IP-Adressen oder Netzwerke (CIDR-Adressen), welche auf den Webserver zugreifen dürfen (sofern sie nicht in der Blacklist enthalten sind). Ist die Whitelist leer oder nicht angegeben, so wird lediglich die Blacklist betrachtet (sofern verfügbar).

Der Abschnitt “JsonEncryptionKey“ (JSON Objekt)

Um Passwörtern im Klartext zu vermeiden, können diese vor der Speicherung in Dateien oder in der Datenbank verschlüsselt werden. Das genaue Verhalten wird durch folgende Eigenschaften definiert:

...

Eigenschaft

...

Typ

...

Funktion

...

Enabled

...

Boolean

...

Diese Option aktiviert oder deaktiviert die partielle Verschlüsselung für als JSON abgelegte Objekte. Ist diese Option nicht angegeben, ist die Verschlüsselung von Passwörtern deaktiviert.

...

Key

...

String

...

Dieser Wert wird bei der Generierung des Schlüssels miteinbezogen, so dass nur Passwörter nur von Connect Servern entschlüsselt werden können, bei denen derselbe Wert hinterlegt ist. Ist dieser Wert nicht definiert oder leer, so wird ein in der Applikation hinterlegter Standardschlüssel verwendet. Bitte beachten Sie, dass nach einer Änderung dieses Schlüssels alle gespeicherten Passwörter neu eingegeben werden müssen.

...

this section, access to the Connect Server can be restricted to specific IP addresses. The following values can be stored here:

Property

Type

Function

Enabled

Boolean

This option enables or disables filtering by IP addresses.

Blacklist

Array with values of type String

This value contains a list of IP addresses or networks (CIDR addresses) that should be excluded from accessing the web server. If the blacklist is empty or not specified, only the whitelist is considered.

Whitelist

Array with values of type String

This value contains an explicit listing of the IP addresses or networks (CIDR addresses) that are allowed to access the web server (if they are not included in the blacklist). If the whitelist is empty or not specified, only the blacklist is considered (if available).

The JsonEncryptionKey section (JSON object)

To avoid passwords in plain text, they can be encrypted before being stored in files or in the database. The exact behavior is defined by the following properties:

Property

Type

Function

Enabled

Boolean

This option enables or disables partial encryption for objects stored as JSON. If this option is not specified, encryption of passwords is disabled.

Key

String

This value is included in the generation of the key so that only passwords can be decrypted only from Connect Servers where the same value is stored. If this value is not defined or empty, a default key stored in the application is used. Please note that after changing this key, all stored passwords must be re-entered.

Example

Code Block
languagejson
...

  "Security": {
    "IpFiltering": {
      "Enabled": false,
      "Blacklist": [
      ],
      "Whitelist": [
        "::1",
        "127.0.0.1",
        "192.168.0.0/16"
      ]
    },
    "JsonEncryption": {
      "Enabled": true,
      "Key": "MySecretKey!"
    }
  },

...

...

The Workspace section (JSON

...

Dieser Abschnitt enthält Konfigurationsdaten für die Verbindung mit einem bestimmten Datenspeicher (Workspace). Hir können die folgenden Werte hinterlegt werden:

...

Eigenschaft

...

Typ

...

object)

This section contains configuration data for the connection to a specific data store (workspace). The following values can be stored here:

Property

Type

Function

Id

StringEnthält

eine eindeutige ID zur Identifikation des WorkspacesContains a unique ID to identify the workspace.

DataSource

JSON Objekt

Enthält die Informationen für die Verbindung mit der Datenbank mit Benutzern, Laufzeitinformationen und, je nach Konfiguration, den Connect Objekten. Dieses Objekt unterstützt folgende Eigenschaften:

Name
Enthält die ID des Workspaces. Dieser Wert muss normalerweise nicht angegeben werden und wird automatisch vorbelegt.

DbType
Definiert den Typ der verwendeten Datenbank. Derzeit werden hier die Werte “Sqlite” und ”SqlServer” unterstützt. Eine Unterstützung für “MySql” ist in Planung.

ConnectionString
Die Verbindungszeichenfolge, welche zum Herstellen der Verbindung mit der Datenbank verwendet wird. Bei der Verwendung von SQLite kann diese Eigenschaft weggelassen werden.

RetentionPeriods
Dieses JSON Objekt definiert die Aufbewahrungszeiten für bestimmte Datentypen. Es enthält folgende Attribute:

OpenContexts
Aufbewahrungszeitraum für nicht abgeschlossene Transaktionen in Tagen.

CompletedContexts
Aufbewahrungszeitraum für abgeschlossene Transaktionen in Tagen.

ConnectObjects

JSON Objekt

Definiert das Verhalten beim Zugriff auf Connect Objekte. Dieses Objekt unterstützt folgende Eigenschaften:

Provider
Definiert den für den Zugriff auf Connect-Objekte verwendeten Provider. Hier werden die Werte “Database” (Speicherung in der Datenbank) und “FileSystem” (Speicherung im Dateisystem) unterstützt.

RootPath
Sofern der Provider “FileSystem” verwendet wird, muss hier das Stammverzeichnis für die Ablage der Connect-Objekte definiert werden. Wird eine SQLite-Datenbank ohne Angabe eines Connection Strings verwendet, so definiert dieser Pfad auch das Verzeichnis, in dem die Datenbankdateien abgelegt werden.

DbLogging

JSON Objekt

Hier können zusätzliche Optionen für die Protokollierung des Datenbankzugriffs definiert werden. Dieses Objekt unterstützt folgende Eigenschaften:

LogLevel
Der gewünschte Detailgrad für Datenbank-spezifische Protokollausgaben. Es werden die Werte “Trace”, “Debug”, “Information”, “Warning” und “Error” unterstützt. Wird diese Eigenschaft nicht angegeben, wird der Standardwert “Error” verwendet.

EnableSensitiveDataLogging
Wird dieser Wert auf “true” gesetzt, so werden bei der Protokollierung auch Feldinhalte mit ausgegeben, andernfalls werden diese stets unterdrückt.

EnableDetailedErrors
Wird dieser Wert auf “true” gesetzt, so werden bei der Protokollierung detaillierte Fehlermeldungen der Datenbank ausgegeben.

...

object

Contains the information for connecting to the database with users, runtime information and, depending on the configuration, the Connect objects. This object supports the following properties:

Name
Contains the ID of the workspace. This value does not normally need to be specified and is automatically pre-populated.

DbType
Defines the type of database used. Currently the values "Sqlite" and "SqlServer" are supported here. Support for "MySql" is planned.

ConnectionString
The connection string used to connect to the database. When using SQLite, this property can be omitted.

RetentionPeriods
This JSON object defines the retention times for specific data types. It contains the following attributes:

OpenContexts
Retention period for uncompleted transactions in days.

CompletedContexts
Retention period for completed transactions in days.

ConnectObjects

JSON object

Defines the behavior when accessing Connect objects. This object supports the following properties:

Provider
Defines the provider used for accessing Connect objects. The values "Database" (storage in the database) and "FileSystem" (storage in the file system) are supported here.

RootPath
If the "FileSystem" provider is used, the root directory for storing the connect objects must be defined here. If an SQLite database is used without specifying a connection string, this path also defines the directory in which the database files are stored.

DbLogging

JSON object

Additional options for logging database access can be defined here. This object supports the following properties:

LogLevel
The desired level of detail for database-specific log output. The values "Trace", "Debug", "Information", "Warning" and "Error" are supported. If this property is not specified, the default value "Error" is used.

EnableSensitiveDataLogging
If this value is set to "true", field contents are also output during logging, otherwise they are always suppressed.

EnableDetailedErrors
If this value is set to "true", detailed error messages from the database are output during logging.

Example

Code Block
languagejson
...
  
  "Workspace": {
    "Id": "connect",
    "DataSource": {
      "DbType": "SqlServer",
      "ConnectionString": "Data Source=.\\SQLEXPRESS;Initial Catalog=connect;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
      "RetentionPeriods": {
        "OpenContexts": 3,
        "CompletedContexts": 1
      }
    },
    "ConnectObjects": {
      "Provider": "Database",
      "RootPath": ""
    },
    "DbLogging": {
      "LogLevel": "Warning",
      "EnableSensitiveDataLogging": false,
      "EnableDetailedErrors": true
    }
  }

...

Beispielkonfiguration

...

Example configuration

The following example shows the possible Connect-specific configuration settings:

Code Block
{
  "AllowedHosts": "*",

  "Debug": {
    "HttpLogging": {
      "Enabled": false,
      "Include": [
        ".*"
      ],
      "Exclude": [
        "^(http|https)://[^/]+/_content/",
        "^(http|https)://[^/]+/_framework/",
        "^(http|https)://[^/]+/api/",
        "^(http|https)://[^/]+/css/",
        "^(http|https)://[^/]+/font/",
        "^(http|https)://[^/]+/js/",
        "^(http|https)://[^/]+/lib/",
        "^(http|https)://[^/]+/[sS]erver/",

        "^(http|https)://[^/]+/$",
        "^(http|https)://[^/]+/favicon.ico$",
        "^(http|https)://[^/]+/index.html$",
        "^(http|https)://[^/]+/[sS]erver$",
        "^(http|https)://[^/]+/[^/]+.css$"
      ],
      "ForceHexDump": false
    }
  },

  "Endpoints": [
    {
      "Uri": "http://*:80"
    }
  ],

  "Frontend": {
    "SupportedLanguages": [ "de", "en", "es", "fr", "it", "nl" ]
  },

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },

  "Security": {
    "IpFiltering": {
      "Enabled": false,
      "Blacklist": [
      ],
      "Whitelist": [
        "::1",
        "127.0.0.1",
        "192.168.0.0/16"
      ]
    },
    "JsonEncryption": {
      "Enabled": true,
      "Key": "MySecretKey!"
    }
  },

  "Workspace": {
    "Id": "connect",
    "DataSource": {
      "DbType": "sqlite",
      "RetentionPeriods": {
        "OpenContexts": 14,
        "CompletedContexts": 7
      }
    },
    "ConnectObjects": {
      "Provider": "filesystem",
      "RootPath": "Workspaces/connect"
    },
    "DbLogging": {
      "LogLevel": "Warning",
      "EnableSensitiveDataLogging": false,
      "EnableDetailedErrors": true
    }
  }
}

Übersteuerung von Konfigurationseinstellungen

Die in den JSON-Dateien hinterlegten Konfigurationseinstellungen können bei Bedarf übersteuert werden. Diese Vorgehensweise macht insbesondere bei der Automatisierung von Docker-basierten Umgebungen Sinn.

Übersteuerung mit Hilfe von Umgebungsvariablen

Um den Wert einer Konfigurationseinstellung zu übersteuern kann eine Umgebungsvariable mit dem Präfix “DOTNET_” oder “ASPNETCORE_” gefolgt vom Pfad der Einstellung in der JSON Datei definiert werden. Als Pfadtrennzeichen sollte hier ein doppelter Underscore (__) verwendet werden.

...

Override configuration settings

The configuration settings stored in the JSON files can be overridden if necessary. This approach makes sense especially when automating Docker-based environments.

Override with the help of environment variables

To override the value of a configuration setting an environment variable can be defined with the prefix "DOTNET_" or "ASPNETCORE_" followed by the path of the setting in the JSON file. A double underscore (__) should be used as path separator here.

You can find more information on this topic at the following link:

...

BeispielExample:

Code Block
SET DOTNET_Logging__LogLevel__Default=Debug

Übersteuerung über die Kommandozeile

Bei Bedarf können Konfigurationen auch mit Hilfe von Schlüssel-Wert-Paaren als Kommandozeilenparameter übersteuert werden. Der Name entspricht hierbei dem Pfad der Einstellung, wobei das Zeichen „:“ als Pfadtrennzeichen verwendet wird. Die Angabe von Schlüssel-Wert-Paaren kann auf verschiedene Art und Weisen erfolgen:

<name1>=<wert1> <name2>=<wert2> …
/<name1> <wert1> /<name2> <wert2> …
--<name1> <wert1> --<name2> <wert2> …

...

Override via the command line

If required, configurations can also be overridden using key-value pairs as command line parameters. The name here corresponds to the path of the setting, using the ":" character as the path separator. Key-value pairs can be specified in various ways:

<name1>=<value1> <name2>=<value2> ...
/<name1> <value1> /<name2> <value2> ...
--<name1> <value1> --<name2> <value2> ...

You can find more information on this topic at the following link:

...

BeispielExample:

Code Block
GalileoGroup.Connect.Server.exe Logging:LogLevel:Default=Debug

 

...