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 zwei 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.
Beispiel
Umgebungsvariable DMC_CONFIGURATION=C:/config/dmc.properties
logging.level.root=DEBUG
app.licensePath=C:\config\dmc-license.lic
security.authenticationMode=db
security.adminPassword=hiereinpasswort
jdbc.url=jdbc:sqlserver://db-adresse.net:1433;database=dmc-db
jdbc.schema=dbo
jdbc.username=dmc-test-user
jdbc.password=hiereinpasswort
jdbc.sql-configuration=mssql
jdbc.driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.schemaUpdate.enabled=true
jdbc.schemaUpdate.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_AUTH / security.authenticationMode | Authentifizierungsmethode (db, ad, openId) in web.xml muss dazu fest "AuthEnv" eingestellt sein |
DMC_ADMIN_PASSWORD / security.adminPassword | 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 / security.adminGroup | Administrator-Gruppe, standardmäßig "admin" |
DMC_SALT / security.salt | Salt (bspw. für Passwörter verwendet) |
DMC_LICENSE / app.license | DMC-Lizenzschlüssel (Base64-codiert) |
DMC_LICENSE_PATH / app.licensePath | Pfad zur Lizenzdatei (inkl. Dateiname!) - wird ignoriert wenn die DMC_LICENSE angegeben ist |
DMC_SECURE_COOKIE / security.useSecureCookie | 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 / security.cors.allowedOrigins | Ü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 / security.exposeSessionIdForUsers | 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 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. |
Logging
| Logging | |
|---|---|
DMC_LOG_PATH / logging.path | Pfad zur Logdatei - wenn keine Datei angegeben ist wird nach STDOUT geloggt |
DMC_LOG_LEVEL / logging.level.root | Detailgrad der Logausgabe (Standard: INFO, möglich sind auch DEBUG, TRACE, WARN oder ERROR) |
DMC_LOG_LEVEL_ADlogging.level.de.infomotion.idp.dpe.security.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_OPENIDlogging.level.de.infomotion.idp.dpe.security.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 / logging.pattern | Struktur der Logeinträge |
DMC_LOG_CHARSET / logging.charset | Zeichensatz für die Logdatei (Default: UTF-8) |
Datenbankkonfiguration
| Datenbankkonfiguration | |
|---|---|
DMC_DB_TYPE / jdbc.sql-configuration | Datenbanktyp (mssql, oracle, h2) |
DMC_DB_DRIVER / jdbc.driverClass | Passende JDBC-Treiberklasse |
DMC_DB_JDBC_URL `/ jdbc.url | JDBC-URL |
DMC_DB_USER / jdbc.username | Benutzername für Datenbank |
DMC_DB_PASSWORD / jdbc.password | Passwort für Datenbank |
DMC_DB_SCHEMA / jdbc.schema | Schema auf der Datenbank |
DMC_SCHEMA_UPDATE / jdbc.schemaUpdate.enabled | 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 / jdbc.schemaUpdate.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 / jdbc.mssqlTimezone | 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 / jdbc.bulkLoad.strategy | Lade-Strategie für große Datenmengen (SingleBatch, Batched oder AsyncBatched) |
DMC_DB_BULK_LOAD_BATCH_SIZE / jdbc.bulkLoad.batchSize | Batch-/Paket-Größe für Batched und AsyncBatched Ladestrategien |
DMC_DB_BULK_LOAD_ASYNC_POOL_SIZE / jdbc.bulkLoad.asyncPoolSize | 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 / ldap.url | URL für den LDAP-Server (bspw. ldap://ldap.example.com:389 oder ldaps://ldap.example.com:663) |
DMC_LDAP_USERNAME / ldap.username | Benutzername mit Leserechten für den LDAP-Server (Abfrage der Gruppen) |
DMC_LDAP_PASSWORD / ldap.password | Password für den LDAP-Benutzer |
DMC_LDAP_SEARCH_BASE / ldap.searchBase | DN des Startpunktes für die Suche nach Benutzern (z.B. ou=Users,dc=example,dc=com) |
DMC_LDAP_SEARCH_FILTER / ldap.searchFilter | Filter für die Suche nach Benutzern, standardmäßig (&(objectClass=user)(sAMAccountName=%s)) |
DMC_LDAP_USERNAME_ATTRIBUTE / ldap.usernameAttribute | Attribut, das den Benutzernamen enthält, standardmäßig sAMAccountName für Active Directory |
DMC_LDAP_DEFAULT_DOMAIN / ldap.defaultDomain | Standard-Domäne für Benutzernamen |
OpenID-Authentifizierung
Nur wenn DMC_AUTH bzw security.authenticationMode auf openId gesetzt ist.
| OpenID-Authentifizierung | |
|---|---|
DMC_OPENID_ISSUER / openid.issuer | für Microsoft https://login.microsoftonline.com/{Tenant}/v2.0 |
DMC_OPENID_DISCOVERY_URL / openid.discoveryUrl | für Microsoft https://login.microsoftonline.com/{Tenant}/v2.0/.well-known/openid-configuration |
DMC_OPENID_CLIENT_ID / openid.clientId | die Client-ID der App-Registrierung |
DMC_OPENID_JWKS_URL / openid.jwksUrl | für Microsoft https://login.microsoftonline.com/{Tenant}/discovery/v2.0/keys |
DMC_OPENID_USER_INFO_URL / openid.userInfoUrl | für Microsoft https://graph.microsoft.com/oidc/userinfo |
DMC_OPENID_USERNAME_CLAIM / openid.usernameClaim | standardmäßig preferred_username |
DMC_OPENID_ROLES_CLAIM / openid.rolesClaim | für Microsoft groups |
DMC_OPENID_SCOPE / openid.scope | standardmäßig "openid email profile" (ohne Anführungszeichen) |
DMC_OPENID_KEEP_CLAIM_ROLES / openid.keepClaimRoles | Rollen/Gruppen aus OpenID unverändert als DMC-Rollen übernehmen, standardmäßig false |
DMC_OPENID_MAP_CLAIM_ROLES / openid.mapClaimRoles | Rollen/Gruppen aus OpenID per Mapping in DMC-Rollen überführen, standardmäßig true |
DMC_OPENID_LOGIN_LABEL / openid.loginLabel | 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 / mail.hostname | Hostname für den Mailserver (SMTP) |
DMC_MAIL_PORT / mail.port | Port für den Mailserver (SMTP), standardmäßig 25 |
DMC_MAIL_TLS / mail.tlsEnabled | true um den Mailserver per TLS zu kontaktieren, standardmäßig false |
DMC_MAIL_USERNAME / mail.username | Benutzername für den Mailserver |
DMC_MAIL_PASSWORD / mail.password | Passwort für den Mailserver |
DMC_MAIL_FROM_ADDRESS / mail.fromAddress | 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/ deployment.fileLayout.alwaysIncludeUuid | Flag, ob UUID in Dateinamen beim Export von Objekten enthalten sein soll (Default: true) |
DMC_EXPORT_PATH_DOMAIN / deployment.fileLayout.DOMAIN | Pfad von Wertelisten innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_CATEGORY / deployment.fileLayout.CATEGORY | Pfad von Kategorien innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_TABLE / deployment.fileLayout.TABLE | Pfad von Tabellen innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_COMMAND / deployment.fileLayout.COMMAND | Pfad von Commands innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_QS_RULE / deployment.fileLayout.QS_RULE | Pfad von QS-Regeln innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DEPLOYMENT_SET / deployment.fileLayout.DEPLOYMENT_SET | Pfad von Deploymentsets innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_TASK / deployment.fileLayout.TASK | Pfad von Tasks innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_DOMAIN / deployment.fileLayout.DOMAIN.deleted | Pfad von gelöschten Wertelisten innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_CATEGORY / deployment.fileLayout.CATEGORY.deleted | Pfad von gelöschten Kategorien innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_TABLE / deployment.fileLayout.TABLE.deleted | Pfad von gelöschten Tabellen innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_COMMAND / deployment.fileLayout.COMMAND.deleted | Pfad von gelöschten Commands innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_QS_RULE / deployment.fileLayout.QS_RULE.deleted | Pfad von gelöschten QS-Regeln innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_DEPLOYMENT_SET / deployment.fileLayout.DEPLOYMENT_SET.deleted | Pfad von gelöschten Deploymentsets innerhalb eines exportierten Deploymentsets |
DMC_EXPORT_PATH_DELETED_TASKS / deployment.fileLayout.TASKS.deleted | Pfad von gelöschten Tasks innerhalb eines exportierten Deploymentsets |
DMC_DEPLOY_TABLE_USER_PERMISSIONS / deployment.table.exportUserPermissions | Flag, ob Nutzerberechtigungen mit Tabellen exportiert werden sollen (Default: true) |
DMC_DEPLOY_TABLE_ROLE_PERMISSIONS / deployment.table.exportRolePermissions | Flag, ob Rollenberechtigungen mit Tabellen exportiert werden sollen (Default: true) |
DMC_SNAPSHOTS_PATH / deployment.snapshots.path | Pfad der ZIP-Datei bei Erstellung eines Screenshots |
DMC_IMPORT_DEMO_CONTENT / deployment.importDemoContent | Flag, ob Demo-Content in die DMC geladen werden soll (Default: false) ACHTUNG: aktuell nur mit MSSQL kompatibel! |
DMC_IMPORT_ADDITIONAL_CONTENT_PATH / deployment.importAdditionalContentPath | 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 / theme.color.primary | Primäre Farbe des Themes |
DMC_THEME_ACCENT / theme.color.accent | Akzentfarbe |
DMC_THEME_MAIN_BG / theme.color.mainBackground | Farbe des Haupthintergrunds |
DMC_THEME_SEC_BG / theme.color.secondaryBackground | Sekundäre Hintergrundsfarbe |
DMC_THEME_ERROR / theme.color.error | Farbton von Fehlern |
DMC_THEME_WARN / theme.color.warn | Farbton von Warnungen |
DMC_THEME_INFO / theme.color.info | Farbton von Informationen |
DMC_THEME_VALID / theme.color.valid | Farbton von validen Eingaben |
DMC_THEME_HEAD1 `/ theme.color.textHeading | Überschriftenfarbe 1 |
DMC_THEME_HEAD2 / theme.color.textHeading2 | Überschriftenfarbe 2 |
DMC_THEME_HEAD3 / theme.color.textHeading3 | Überschriftenfarbe 3 |
DMC_THEME_NAV_TEXT / theme.color.textNav | Farbe der Einträge der Navigation |
DMC_THEME_ICON / theme.color.icon | Farbe von Sondericons (Bedienelemente haben die DMC_THEME_PRIMARY Farbe) |
DMC_THEME_CONTRAST_LIGHT / theme.color.lightContrast | Helle Kontrastfarbe |
DMC_THEME_CONTRAST_DARK / theme.color.darkContrast | Dunkle Kontrastfarbe |
DMC_THEME_LOGO_PATH / theme.logoPath | Pfad zur Logo-Datei |
DMC_THEME_ICON_PATH / theme.iconPath | Pfad zur Icon-Datei |
DMC_THEME_TITLE / theme.appTitle | Titel der Anwendung |
Tasks & Trigger
| Zusätzliche Variablen | |
|---|---|
DMC_TASKS_CRON_POOL_SIZE / tasks.cronTrigger.poolSize | Anzahl der für die zeitgesteuerte Ausführung von Tasks verwendeten Threads |
DMC_TASKS_QS_MAIL_TEMPLATE_FILE / tasks.qsMail.templateFile | Pfad zur Vorlagendatei für die QS-Mail |
Zusätzliche Variablen
| Zusätzliche Variablen | |
|---|---|
DMC_TRIM_ALL_PKS / app.trimAllPrimaryKeys | Flag, ob Primarykey-Spalten automatisch ohne Leerzeichen gespeichert werden (Default: false) |
DMC_APP_EXPORT_TECHNICAL_COLUMN_NAMES / app.exportTechnicalColumnNames | Flag, ob beim CSV-/XLSX-Export technische anstelle von DMC-Spaltennamen verwendet werden sollen (Default: false) |
DMC_APP_UPLOAD_PATH / app.uploadPath | Temporärer Ordner für CSV-/XLSX-Uploads |
DMC_DB_SQL_PER_BYTE_CHAR / jdbc.sqlBytesPerChar | Divisor, um die Umrechnung von Bytes eines Character für die zulässige Zeichenlänge zu steuern (Default: 1) |