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:
- Über Umgebungsvariablen (
DMC_...). Diese Option ist insbesondere für das Deployment in Docker-Containern relevant. - Als Parameter in einer
.properties-Datei. In diesem Fall muss zumindest der Pfad zur Datei in der UmgebungsvariableDMC_CONFIGURATIONhinterlegt werden. - Im Standalone-Deployment können die Parameter außerdem direkt auf der
Kommandozeile mit übergeben werden:
java -jar dmc.war --DMC_LOG_LEVEL=TRACE
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
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.
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
| Grundlegende Einstellungen | |
|---|---|
DMC_SALT | Salt (bspw. für Passwörter verwendet) |
DMC_LICENSE | DMC-Lizenzschlüssel (Base64-codiert) |
DMC_LICENSE_PATH | Pfad zur Lizenzdatei (inkl. Dateiname!) - wird ignoriert wenn die DMC_LICENSE angegeben ist |
DMC_SECURE_COOKIE | Steuert, 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_USERS | Diese 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 "secured" 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. |
Authentifizierung & Autorisierung
| Authentifizierung/Autorisierung | |
|---|---|
DMC_AUTH | Authentifizierungsmethode(n), komma-getrennte Liste (ad, openId, db siehe Hinweis oben). |
DMC_ADMIN_PASSWORD | Setzt 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_GROUP | Administrator-Gruppe, standardmäßig "admin" |
DMC_ROLE_MAPPING | Feste Zuordnung (optional) im JSON-Format von externen Rollen (AD- oder OpenID-Gruppen, Snowflake-Rollen) auf DMC-internen Benutzergruppen. |
DMC_ROLE_MAPPING_FILE | Optionaler Pfad zu einer JSON-Datei mit festen Rollenzuordnungen (s.o.) |
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.
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_PORT | TCP-Port, auf dem der eingebettete Anwendungsserver Verbindungen annimmt. (Default: 8080) |
DMC_SESSION_TIMEOUT | Sitzungs-Timeout für den eingebetteten Anwendungsserver. (Default: 20 Minuten) |
DMC_SSL_ENABLE | Aktiviert 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_KEY | Privater Schlüssel des Server-Zertifikats. Siehe Anmerkungen zu Zertifikaten unten. |
DMC_SSL_PRIVATE_KEY_PASSWORD | Passwort für den privaten Schlüssel, falls dieser verschlüsselt ist. |
Logging
| Logging | |
|---|---|
DMC_LOG_PATH | Pfad zur Logdatei - wenn keine Datei angegeben ist wird nach STDOUT geloggt |
DMC_LOG_STDOUT | Aktiviert mit true die Log-Ausgabe nach STDOUT. Ist automatisch true, wenn kein DMC_LOG_PATH definiert ist, ansonsten standardmäßig false. |
DMC_LOG_LEVEL | Detailgrad der Logausgabe (Standard: INFO, möglich sind auch DEBUG, TRACE, WARN oder ERROR) |
DMC_LOG_LEVEL_AD | Detailgrad 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_OPENID | Detailgrad der Logausgabe für OpenID-Anbindung (Standard: identisch zu DMC_LOG_LEVEL, möglich sind auch DEBUG, TRACE, WARN oder ERROR) |
DMC_LOG_PATTERN | Struktur der Logeinträge |
DMC_LOG_CHARSET | Zeichensatz für die Logdatei (Default: UTF-8) |
DMC_LOG_BUFFER_SIZE | Puffergröße für den Actuator-REST-Endpoint log. (Default: 1000) |
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_TYPE | Datenbanktyp (mssql, oracle, h2) |
DMC_DB_DRIVER | Passende JDBC-Treiberklasse |
DMC_DB_JDBC_URL | JDBC-URL |
DMC_DB_USER | Benutzername für Datenbank |
DMC_DB_PASSWORD | Passwort für Datenbank |
DMC_DB_SCHEMA | Schema auf der Datenbank |
DMC_SCHEMA_UPDATE | Steuert ob das Datenmodell der DMC automatisch aktualisiert werden soll. Standardmäßig false, sollte aber i.d.R. auf true gesetzt werden |
DMC_SCHEMA_CONTEXTS | Komma-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_TIMEZONE | Nur 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_STRATEGY | Lade-Strategie für große Datenmengen (SingleBatch, Batched oder AsyncBatched) |
DMC_DB_BULK_LOAD_BATCH_SIZE | Batch-/Paket-Größe für Batched und AsyncBatched Ladestrategien |
DMC_DB_BULK_LOAD_ASYNC_POOL_SIZE | Anzahl Threads für parallele Beladung |
LDAP/AD-Authentifizierung
Nur wenn DMC_AUTH bzw security.authenticationMode auf ad gesetzt ist.
| LDAP/AD-Authentifizierung | |
|---|---|
DMC_LDAP_URL | URL für den LDAP-Server (bspw. ldap://ldap.example.com:389 oder ldaps://ldap.example.com:663) |
DMC_LDAP_USERNAME | Benutzername mit Leserechten für den LDAP-Server (Abfrage der Gruppen) |
DMC_LDAP_PASSWORD | Password für den LDAP-Benutzer |
DMC_LDAP_SEARCH_BASE | DN des Startpunktes für die Suche nach Benutzern (z.B. ou=Users,dc=example,dc=com) |
DMC_LDAP_SEARCH_FILTER | Filter für die Suche nach Benutzern, standardmäßig (&(objectClass=user)(sAMAccountName=%s)) |
DMC_LDAP_USERNAME_ATTRIBUTE | Attribut, das den Benutzernamen enthält, standardmäßig sAMAccountName für Active Directory |
DMC_LDAP_DEFAULT_DOMAIN | Standard-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_TEMPLATE | Wenn 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_ISSUER | für Microsoft https://login.microsoftonline.com/{Tenant}/v2.0 |
DMC_OPENID_DISCOVERY_URL | für Microsoft https://login.microsoftonline.com/{Tenant}/v2.0/.well-known/openid-configuration |
DMC_OPENID_CLIENT_ID | die Client-ID der App-Registrierung |
DMC_OPENID_JWKS_URL | für Microsoft https://login.microsoftonline.com/{Tenant}/discovery/v2.0/keys |
DMC_OPENID_USER_INFO_URL | für Microsoft https://graph.microsoft.com/oidc/userinfo |
DMC_OPENID_USERNAME_CLAIM | standardmäßig preferred_username |
DMC_OPENID_ROLES_CLAIM | für Microsoft groups |
DMC_OPENID_SCOPE | standardmäßig "openid email profile" (ohne Anführungszeichen) |
DMC_OPENID_KEEP_CLAIM_ROLES | Rollen/Gruppen aus OpenID unverändert als DMC-Rollen übernehmen, standardmäßig false |
DMC_OPENID_MAP_CLAIM_ROLES | Rollen/Gruppen aus OpenID per Mapping in DMC-Rollen überführen, standardmäßig true |
DMC_OPENID_LOGIN_LABEL | Die Ü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_HOSTNAME | Hostname für den Mailserver (SMTP) |
DMC_MAIL_PORT | Port für den Mailserver (SMTP), standardmäßig 25 |
DMC_MAIL_TLS | true um den Mailserver per TLS zu kontaktieren, standardmäßig false |
DMC_MAIL_USERNAME | Benutzername für den Mailserver |
DMC_MAIL_PASSWORD | Passwort für den Mailserver |
DMC_MAIL_FROM_ADDRESS | Absenderadresse 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_PATH | Flag, ob UUID in Dateinamen beim Export von Objekten enthalten sein soll (Default: true) |
DMC_EXPORT_PATH_DOMAIN | Pfad von Wertelisten innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_CATEGORY | Pfad von Kategorien innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_TABLE | Pfad von Tabellen innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_COMMAND | Pfad von Commands innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_QS_RULE | Pfad von QS-Regeln innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DEPLOYMENT_SET | Pfad von Deploymentsets innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_TASK | Pfad von Tasks innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_DOMAIN | Pfad von gelöschten Wertelisten innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_CATEGORY | Pfad von gelöschten Kategorien innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_TABLE | Pfad von gelöschten Tabellen innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_COMMAND | Pfad von gelöschten Commands innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_QS_RULE | Pfad von gelöschten QS-Regeln innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_DEPLOYMENT_SET | Pfad von gelöschten Deploymentsets innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_TASKS | Pfad von gelöschten Tasks innerhalb eines exportierten Deploymentsets |
DMC_DEPLOY_TABLE_USER_PERMISSIONS | Flag, ob Nutzerberechtigungen mit Tabellen exportiert werden sollen (Default: true) |
DMC_DEPLOY_TABLE_ROLE_PERMISSIONS | Flag, ob Rollenberechtigungen mit Tabellen exportiert werden sollen (Default: true) |
DMC_SNAPSHOTS_PATH | Pfad der ZIP-Datei bei Erstellung eines Screenshots |
DMC_IMPORT_DEMO_CONTENT | Flag, ob Demo-Content in die DMC geladen werden soll (Default: false) ACHTUNG: aktuell nur mit MSSQL kompatibel! |
DMC_IMPORT_ADDITIONAL_CONTENT_PATH | Falls beim initialen Starten der DMC Inhalte bereits geladen werden sollen, kann hierüber der Pfad für diese angegeben werden |
Theme-Einstellungen
Das Frontend akzeptiert nur sechsstellige Hexadezimalwerte (Bsp.: #fafafa) für Farben, andernfalls wird die Angabe ignoriert.
| Theme-Einstellungen | |
|---|---|
DMC_THEME_PRIMARY | Primäre Farbe des Themes |
DMC_THEME_ACCENT | Akzentfarbe |
DMC_THEME_MAIN_BG | Farbe des Haupthintergrunds |
DMC_THEME_SEC_BG | Sekundäre Hintergrundsfarbe |
DMC_THEME_ERROR | Farbton von Fehlern |
DMC_THEME_WARN | Farbton von Warnungen |
DMC_THEME_INFO | Farbton von Informationen |
DMC_THEME_VALID | Farbton von validen Eingaben |
DMC_THEME_HEAD1 | Überschriftenfarbe 1 |
DMC_THEME_HEAD2 | Überschriftenfarbe 2 |
DMC_THEME_HEAD3 | Überschriftenfarbe 3 |
DMC_THEME_NAV_TEXT | Farbe der Einträge der Navigation |
DMC_THEME_ICON | Farbe von Sondericons (Bedienelemente haben die DMC_THEME_PRIMARY Farbe) |
DMC_THEME_CONTRAST_LIGHT | Helle Kontrastfarbe |
DMC_THEME_CONTRAST_DARK | Dunkle Kontrastfarbe |
DMC_THEME_LOGO_PATH | Pfad zur Logo-Datei |
DMC_THEME_ICON_PATH | Pfad zur Icon-Datei |
DMC_THEME_TITLE | Titel der Anwendung |
Tasks & Trigger
| Zusätzliche Variablen | |
|---|---|
DMC_TASKS_CRON_POOL_SIZE | Anzahl der für die zeitgesteuerte Ausführung von Tasks verwendeten Threads |
DMC_TASKS_QS_MAIL_TEMPLATE_FILE | Pfad zur Vorlagendatei für die QS-Mail |
Zusätzliche Variablen
| Zusätzliche Variablen | |
|---|---|
DMC_TRIM_ALL_PKS | Kann auf true gesetzt werden um automatisch Leerzeichen am Anfang und Ende von Werten in Primary-Key-Spalten zu entfernen. (Default: false) |
DMC_TRIM_ALL_NON_PKS | Kann auf true gesetzt werden um automatisch Leerzeichen am Anfang und Ende von Werten welche keine Primary-Key-Spalten sind zu entfernen. (Default: false) |
DMC_TRIM_ALL | Kann auf true gesetzt werden um automatisch Leerzeichen am Anfang und Ende von Werten aller Spalten zu entfernen. (Default: false) |
DMC_APP_EXPORT_TECHNICAL_COLUMN_NAMES | Flag, ob beim CSV-/XLSX-Export technische anstelle von DMC-Spaltennamen verwendet werden sollen (Default: false) |
DMC_APP_UPLOAD_PATH | Temporärer Ordner für CSV-/XLSX-Uploads |
DMC_DB_SQL_PER_BYTE_CHAR | Divisor, um die Umrechnung von Bytes eines Character für die zulässige Zeichenlänge zu steuern (Default: 1) |
DMC_ENABLE_ACTUATOR_ENV | Mit false kann der Actuator-REST-Endpoint env deaktiviert werden. |
DMC_ENABLE_ACTUATOR_LOG | Mit false kann der Actuator-REST-Endpoint log deaktiviert werden. |
DMC_ENABLE_OPENAPI | Mit 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="(...)"