Zum Hauptinhalt springen
Version: 2024.2.x

Konfiguration/Umgebungsvariablen

Ein zentraler Aspekt bei der Konfiguration der DMC sind Konfigurationsparameter. Über diese können neben grundlegender Konfiguration auch Datenbankkonfiguration, Authentifizierung und das Styling beeinflusst werden.

Die Parameter können auf drei Arten eingestellt werden:

  1. Über Umgebungsvariablen (DMC_...). Diese Option ist insbesondere für das Deployment in Docker-Containern relevant.
  2. Als Parameter in einer .properties-Datei. In diesem Fall muss zumindest der Pfad zur Datei in der Umgebungsvariable DMC_CONFIGURATION hinterlegt werden.
  3. Im Standalone-Deployment können die Parameter außerdem direkt auf der Kommandozeile mit übergeben werden: java -jar dmc.war --DMC_LOG_LEVEL=TRACE
Schutz der Konfiguration

Die Konfiguration (Umgebungsvariablen/Konfigurationsdatei) enthält sensible Daten wie beispielsweise die Zugangsdaten des technischen Benutzers für die Datenbank oder ggf. auch ein Passwort für den Anwendungs-Administrator.
Diese Daten müssen auch außerhalb der DMC selbst auf geeignete Weise geschützt werden.

Für eine Konfigurationsdatei kommen hier u.A. restriktive, auf den Systembenutzer in dessen Kontext die DMC läuft beschränkte Leseberechtigungen in Frage.
Für Umgebungsvariablen in einem Container kommt u.A. die Beschränkung des Zugriffs auf den Container in Frage.

Beispiel

Umgebungsvariable DMC_CONFIGURATION=C:/config/dmc.properties

C:/config/dmc.properties
DMC_LOG_LEVEL=DEBUG
DMC_LICENSE_PATH=C:/config/dmc-license.lic
DMC_SALT=eineZufaelligeZeichenketteInBeliebigerLaenge

# Nur zu Entwicklungszwecken - siehe Hinweis unten!
DMC_AUTH=db
DMC_ADMIN_PASSWORD.adminPassword=hiereinpasswort

DMC_DB_JDBC_URL=jdbc:sqlserver://db-adresse.net:1433;database=dmc-db
DMC_DB_SCHEMA=dbo
DMC_DB_USER=dmc-test-user
DMC_DB_PASSWORD=hiereinpasswort
DMC_DB_TYPE=mssql
DMC_DB_DRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver
DMC_SCHEMA_UPDATE=true
DMC_SCHEMA_CONTEXTS=schema,baseContent,adminUser
(...)

Bitte beachten: Im Docker- und Compose-File sind einige der Variablen bereits passend vorbelegt, die verbleibenden Variablen sind in der Datei dmc.env aufgelistet.

WICHTIG

Sowohl die Namen der Umgebungsvariablen als auch der Parameter für die .properties-Datei müssen, die Groß-/Kleinschreibung exakt befolgen!

Folgende Variablen/Parameter stehen grundsätzlich zur Verfügung:

Grundlegende Einstellungen

Integrierte DB-Authentifizierung

Die hier beschriebene integrierte Authentifizierung (DMC_AUTH=db) unterstützt keine Passwort-Richtlinien sowie keine Multi-Faktor-Authentifizierung.

Daher raten wir dringend davon ab, diese Authentifizierungsmethode außerhalb von Entwicklungs- oder Testumgebungen zu nutzen!

Soweit möglich und insbesondere für produktive Umgebungen sollte unbedingt die Authentifizierung via Active Directory/LDAP oder OpenID/Entra genutzt werden.

Grundlegende Einstellungen
DMC_AUTHAuthentifizierungsmethode(n), komma-getrennte Liste (ad, openId, db siehe Hinweis oben).
DMC_ADMIN_PASSWORDSetzt das Passwort des admin-Benutzers (sofern vorhanden) beim Start der Anwendung auf den angegebenen Wert zurück - hier kann und muss das Passwort im Klartext übergeben werden!
DMC_ADMIN_GROUPAdministrator-Gruppe, standardmäßig "admin"
DMC_SALTSalt (bspw. für Passwörter verwendet)
DMC_LICENSEDMC-Lizenzschlüssel (Base64-codiert)
DMC_LICENSE_PATHPfad zur Lizenzdatei (inkl. Dateiname!) - wird ignoriert wenn die DMC_LICENSE angegeben ist
DMC_SECURE_COOKIESteuert, ob die Session-Cookies der DMC "secure" sind (d.h. nur für HTTPS zugelassen). Standardmäßig ist diese Einstellung auf true gesetzt, was allerdings zu Problemen führen kann, wenn eine DMC-Instanz ohne HTTPS betrieben wird. Dann kann die Einstellung auf false gesetz werden.
DMC_CORS_ALLOWED_ORIGINSÜber diese Variable werden Hostnamen übergeben, von denen aus auf die DMC zugegriffen werden kann (bspw. alternativer Host fürs Frontend, Reporting-Server für Kommentierung). Hierbei sind mehrere Hostnamen erlaubt, indem man diese durch Kommata trennt. Zudem kann eine Wildcard (*) im Hostnamen verwendet werden. Beispiel: *.infomotion.de oder test.infomotion.de,dev.infomotion.de
ACHTUNG: wenn CORS aktiviert wird, werden die Cookies automatisch auf secure gesetzt, HTTPS ist dann verpflichtend!
DMC_EXPOSE_SESSIONID_FOR_USERSDiese Variable steuert, für welche Benutzer der Server bei der Anmeldung die Session-ID "im Klartext" an den Browser zurückgibt.
Normalerweise wird die Session-ID nur als gesichertes Cookie an den Browser übermittelt, um einen Diebstahl durch bösartigen JavaScript-Code im Browser zu erschweren.
In bestimmten Sonderfällen (bspw. wenn die DMC als Kommentierungs-Backend in Reporting-Lösungen integriert wird) muss die Session-ID jedoch per JavaScript im Browser verfügbar sein.
Es kann eine komma-getrennte Liste von Benutzernamen (z.B. die Namen technischer Benutzer für die Kommentierung) oder * als Wildcard für alle Benutzer hinterlegt werden.

Standalone-Deployment

Die folgenden Variablen sind nur für das Standalone-Deployment ohne externen Tomcat-Applikationsserver relevant. Sie beziehen sich auf die Konfiguration des eingebetteten Anwendungsservers:

Standalone-Deployment
DMC_PORTTCP-Port, auf dem der eingebettete Anwendungsserver Verbindungen annimmt. (Default: 8080)
DMC_SESSION_TIMEOUTSitzungs-Timeout für den eingebetteten Anwendungsserver. (Default: 20 Minuten)
DMC_SSL_ENABLEAktiviert mit true die SSL/HTTPS-Verschlüsselung für den eingebetteten Anwendungsserver. In diesem Fall empfiehlt es sich, den DMC_PORT auf 443 oder 8443 zu setzen. Außerdem müssen die Zertifikate (s.u.) konfiguriert werden.
DMC_SSL_PEM_CERTIFICATEÖffentlicher Teil des Server-Zertifikats. Siehe Anmerkungen zu Zertifikaten unten.
DMC_SSL_PRIVATE_KEYPrivater Schlüssel des Server-Zertifikats. Siehe Anmerkungen zu Zertifikaten unten.
DMC_SSL_PRIVATE_KEY_PASSWORDPasswort für den privaten Schlüssel, falls dieser verschlüsselt ist.

Logging

Logging
DMC_LOG_PATHPfad zur Logdatei - wenn keine Datei angegeben ist wird nach STDOUT geloggt
DMC_LOG_STDOUTAktiviert mit true die Log-Ausgabe nach STDOUT. Ist automatisch true, wenn kein DMC_LOG_PATH definiert ist, ansonsten standardmäßig false.
DMC_LOG_LEVELDetailgrad der Logausgabe (Standard: INFO, möglich sind auch DEBUG, TRACE, WARN oder ERROR)
DMC_LOG_LEVEL_ADDetailgrad der Logausgabe für LDAP/AD-Anbindung (Standard: identisch zu DMC_LOG_LEVEL, möglich sind auch DEBUG, TRACE, WARN oder ERROR)
DMC_LOG_LEVEL_OPENIDDetailgrad der Logausgabe für OpenID-Anbindung (Standard: identisch zu DMC_LOG_LEVEL, möglich sind auch DEBUG, TRACE, WARN oder ERROR)
DMC_LOG_PATTERNStruktur der Logeinträge
DMC_LOG_CHARSETZeichensatz für die Logdatei (Default: UTF-8)
DMC_LOG_BUFFER_SIZEPuffergröße für den Actuator-REST-Endpoint log. (Default: 1000)
Protokollierung sensibler Daten

Wenn die Log-Einstellungen (DMC_LOG_LEVEL, DMC_LOG_LEVEL_AD, DMC_LOG_LEVEL_OPENID) auf DEBUG oder TRACE gesetzt werden kann es sein, dass sensible oder personenbezogene Daten (insbesondere Benutzernamen und Rollenzuordnungen) protokolliert werden.

In diesem Fall müssen geeigneten Maßnahmen ergriffen werden, um die Inhalte der Protokolldateien und/oder die Ausgabe der Anwendung oder des Containers adäquat zu schützen. Sofern personenbezogene Daten protokolliert werden, ist auch der Datenschutz zu berücksichtigen.

Datenbank

Datenbankkonfiguration
DMC_DB_TYPEDatenbanktyp (mssql, oracle, h2)
DMC_DB_DRIVERPassende JDBC-Treiberklasse
DMC_DB_JDBC_URLJDBC-URL
DMC_DB_USERBenutzername für Datenbank
DMC_DB_PASSWORDPasswort für Datenbank
DMC_DB_SCHEMASchema auf der Datenbank
DMC_SCHEMA_UPDATESteuert ob das Datenmodell der DMC automatisch aktualisiert werden soll.
Standardmäßig false, sollte aber i.d.R. auf true gesetzt werden
DMC_SCHEMA_CONTEXTSKomma-getrennte Liste von Einträgen die definiert, welche Inhalte einmalig in der DB ausgerollt werden sollen (typischerweise schema,baseContent, ggf. auch adminUser für einen Benutzer admin/admin)
DMC_TIMEZONENur MSSQL Setzt die Zeitzone der Datenbank bei Änderungszeitstempeln, da bspw. in Azure SQL Databases keine Zeitzonen einstellbar sind. Default: Central European Standard Time
DMC_DB_BULK_LOAD_STRATEGYLade-Strategie für große Datenmengen (SingleBatch, Batched oder AsyncBatched)
DMC_DB_BULK_LOAD_BATCH_SIZEBatch-/Paket-Größe für Batched und AsyncBatched Ladestrategien
DMC_DB_BULK_LOAD_ASYNC_POOL_SIZEAnzahl Threads für parallele Beladung

LDAP/AD-Authentifizierung

Nur wenn DMC_AUTH bzw security.authenticationMode auf ad gesetzt ist.

LDAP/AD-Authentifizierung
DMC_LDAP_URLURL für den LDAP-Server (bspw. ldap://ldap.example.com:389 oder ldaps://ldap.example.com:663)
DMC_LDAP_USERNAMEBenutzername mit Leserechten für den LDAP-Server (Abfrage der Gruppen)
DMC_LDAP_PASSWORDPassword für den LDAP-Benutzer
DMC_LDAP_SEARCH_BASEDN des Startpunktes für die Suche nach Benutzern (z.B. ou=Users,dc=example,dc=com)
DMC_LDAP_SEARCH_FILTERFilter für die Suche nach Benutzern, standardmäßig (&(objectClass=user)(sAMAccountName=%s))
DMC_LDAP_USERNAME_ATTRIBUTEAttribut, das den Benutzernamen enthält, standardmäßig sAMAccountName für Active Directory
DMC_LDAP_DEFAULT_DOMAINStandard-Domäne für Benutzernamen
DMC_LDAP_PEM_CERTIFICATEÖffentliches Zertifikat des LDAP-/AD-Servers bzw. der ausstellenden Zertifizierungsstelle. Siehe Anmerkungen zu Zertifikaten unten.
DMC_LDAP_BIND_DN_TEMPLATEWenn ein LDAP-Server (anders als AD) zur Anmeldung einen vollständigen DN erwartet, kann dieses Template gesetzt werden um aus dem Benutzernamen einen DN zu erzeugen.
Beispiel: cn=%s,ou=users,dc=example,dc=com

OpenID-Authentifizierung

Nur wenn DMC_AUTH auf openId gesetzt ist.

OpenID-Authentifizierung
DMC_OPENID_ISSUERfür Microsoft https://login.microsoftonline.com/{Tenant}/v2.0
DMC_OPENID_DISCOVERY_URLfür Microsoft https://login.microsoftonline.com/{Tenant}/v2.0/.well-known/openid-configuration
DMC_OPENID_CLIENT_IDdie Client-ID der App-Registrierung
DMC_OPENID_JWKS_URLfür Microsoft https://login.microsoftonline.com/{Tenant}/discovery/v2.0/keys
DMC_OPENID_USER_INFO_URLfür Microsoft https://graph.microsoft.com/oidc/userinfo
DMC_OPENID_USERNAME_CLAIMstandardmäßig preferred_username
DMC_OPENID_ROLES_CLAIMfür Microsoft groups
DMC_OPENID_SCOPEstandardmäßig "openid email profile" (ohne Anführungszeichen)
DMC_OPENID_KEEP_CLAIM_ROLESRollen/Gruppen aus OpenID unverändert als DMC-Rollen übernehmen, standardmäßig false
DMC_OPENID_MAP_CLAIM_ROLESRollen/Gruppen aus OpenID per Mapping in DMC-Rollen überführen, standardmäßig true
DMC_OPENID_LOGIN_LABELDie Überschrift, unter der die Option für den OpenID-Login in der Oberfläche geführt wird. Standardmäßig "OpenId"

Mail-Einstellungen

Einstellungen für den E-Mail-Versand, beispielsweise durch QS-Mail-Tasks

Mail-Einstellungen
DMC_MAIL_HOSTNAMEHostname für den Mailserver (SMTP)
DMC_MAIL_PORTPort für den Mailserver (SMTP), standardmäßig 25
DMC_MAIL_TLStrue um den Mailserver per TLS zu kontaktieren, standardmäßig false
DMC_MAIL_USERNAMEBenutzername für den Mailserver
DMC_MAIL_PASSWORDPasswort für den Mailserver
DMC_MAIL_FROM_ADDRESSAbsenderadresse für von der DMC verschickte E-Mails

Deployment-Einstellungen

Diese Einstellungen betreffen das Deployment. Sie erlauben in weiten Teilen die Anpassung der beim Export von DMC-Inhalten generierten Ordner- und Dateistruktur.

Deployment-Einstellungen
DMC_EXPORT_INCLUDE_UUID_IN_PATHFlag, ob UUID in Dateinamen beim Export von Objekten enthalten sein soll (Default: true)
DMC_EXPORT_PATH_DOMAINPfad von Wertelisten innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_CATEGORYPfad von Kategorien innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_TABLEPfad von Tabellen innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_COMMANDPfad von Commands innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_QS_RULEPfad von QS-Regeln innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_DEPLOYMENT_SETPfad von Deploymentsets innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_TASKPfad von Tasks innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_DELETED_DOMAINPfad von gelöschten Wertelisten innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_DELETED_CATEGORYPfad von gelöschten Kategorien innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_DELETED_TABLEPfad von gelöschten Tabellen innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_DELETED_COMMANDPfad von gelöschten Commands innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_DELETED_QS_RULEPfad von gelöschten QS-Regeln innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_DELETED_DEPLOYMENT_SETPfad von gelöschten Deploymentsets innerhalb eines exportierten Deploymentsets
DMC_EXPORT_PATH_DELETED_TASKSPfad von gelöschten Tasks innerhalb eines exportierten Deploymentsets
DMC_DEPLOY_TABLE_USER_PERMISSIONSFlag, ob Nutzerberechtigungen mit Tabellen exportiert werden sollen (Default: true)
DMC_DEPLOY_TABLE_ROLE_PERMISSIONSFlag, ob Rollenberechtigungen mit Tabellen exportiert werden sollen (Default: true)
DMC_SNAPSHOTS_PATHPfad der ZIP-Datei bei Erstellung eines Screenshots
DMC_IMPORT_DEMO_CONTENTFlag, ob Demo-Content in die DMC geladen werden soll (Default: false)
ACHTUNG: aktuell nur mit MSSQL kompatibel!
DMC_IMPORT_ADDITIONAL_CONTENT_PATHFalls beim initialen Starten der DMC Inhalte bereits geladen werden sollen, kann hierüber der Pfad für diese angegeben werden

Theme-Einstellungen

INFO

Das Frontend akzeptiert nur sechsstellige Hexadezimalwerte (Bsp.: #fafafa) für Farben, andernfalls wird die Angabe ignoriert.

Theme-Einstellungen
DMC_THEME_PRIMARYPrimäre Farbe des Themes
DMC_THEME_ACCENTAkzentfarbe
DMC_THEME_MAIN_BGFarbe des Haupthintergrunds
DMC_THEME_SEC_BGSekundäre Hintergrundsfarbe
DMC_THEME_ERRORFarbton von Fehlern
DMC_THEME_WARNFarbton von Warnungen
DMC_THEME_INFOFarbton von Informationen
DMC_THEME_VALIDFarbton von validen Eingaben
DMC_THEME_HEAD1Überschriftenfarbe 1
DMC_THEME_HEAD2Überschriftenfarbe 2
DMC_THEME_HEAD3Überschriftenfarbe 3
DMC_THEME_NAV_TEXTFarbe der Einträge der Navigation
DMC_THEME_ICONFarbe von Sondericons (Bedienelemente haben die DMC_THEME_PRIMARY Farbe)
DMC_THEME_CONTRAST_LIGHTHelle Kontrastfarbe
DMC_THEME_CONTRAST_DARKDunkle Kontrastfarbe
DMC_THEME_LOGO_PATHPfad zur Logo-Datei
DMC_THEME_ICON_PATHPfad zur Icon-Datei
DMC_THEME_TITLETitel der Anwendung

Tasks & Trigger

Zusätzliche Variablen
DMC_TASKS_CRON_POOL_SIZEAnzahl der für die zeitgesteuerte Ausführung von Tasks verwendeten Threads
DMC_TASKS_QS_MAIL_TEMPLATE_FILEPfad zur Vorlagendatei für die QS-Mail

Zusätzliche Variablen

Zusätzliche Variablen
DMC_TRIM_ALL_PKSKann auf truegesetzt werden um automatisch Leerzeichen am Anfang und Ende von Werten in Primary-Key-Spalten zu entfernen. (Default: false)
DMC_TRIM_ALLKann auf truegesetzt werden um automatisch Leerzeichen am Anfang und Ende von Werten in Nicht-Key-Spalten zu entfernen. (Default: false)
DMC_APP_EXPORT_TECHNICAL_COLUMN_NAMESFlag, ob beim CSV-/XLSX-Export technische anstelle von DMC-Spaltennamen verwendet werden sollen (Default: false)
DMC_APP_UPLOAD_PATHTemporärer Ordner für CSV-/XLSX-Uploads
DMC_DB_SQL_PER_BYTE_CHARDivisor, um die Umrechnung von Bytes eines Character für die zulässige Zeichenlänge zu steuern (Default: 1)
DMC_ENABLE_ACTUATOR_ENVMit false kann der Actuator-REST-Endpoint env deaktiviert werden.
DMC_ENABLE_ACTUATOR_LOGMit false kann der Actuator-REST-Endpoint log deaktiviert werden.
DMC_ENABLE_OPENAPIMit true kann die eingebaute API-Dokumentation aktiviert werden (/api/docs.yaml, /swagger-ui)

Anmerkungen zu Zertifikaten

Zertifikate können als Pfad zu einer PEM-Datei angegeben werden. Alternativ kann auch direkt der Inhalt der Datei (d.h. das Zertifikat) als mehrzeiliger Wert in die Variable übergeben werden:

DMC_SSL_PEM_CERTIFICATE=file:/path/to/pem.crt
## oder
DMC_SSL_PEM_CERTIFICATE="-----BEGIN CERTIFICATE-----
(...)
-----BEGIN CERTIFICATE-----"

Falls das Zertifikat von einer eigenen Zertifizierungsstelle signiert wurde, muss auch die PEM-Datei die komplette Kette enthalten (Zertifikat des Servers + Zertifikat der Zertifizierungsstelle):

-----BEGIN CERTIFICATE-----
(... Zertifikat des Servers ...)
-----BEGIN CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(... Zertifikat der Zertifizierungsstelle ...)
-----BEGIN CERTIFICATE-----

Private Schlüssel

Auch private Schlüssel können entweder als Pfad zu einer PEM-Datei oder (mehrzeilig) direkt in der Variable übergeben werden:

DMC_SSL_PRIVATE_KEY=/path/to/pem.key
## oder
DMC_SSL_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----
(...)
-----BEGIN PRIVATE KEY-----"

Optional kann der private Schlüssel auch noch einmal mit einer Passphrase gesichert werden - allerdings muss natürlich auch diese der DMC zur Verfügung stehen:

DMC_SSL_PRIVATE_KEY="-----BEGIN ENCRYPTED PRIVATE KEY-----
(...)
-----BEGIN ENCRYPTED PRIVATE KEY-----"
DMC_SSL_PRIVATE_KEY_PASSWORD="(...)"