1. Konfigurationsdatei

Die Konfiguration der Anwendung erfolgt über die Datei config/application.yml im Installationsverzeichnis.

Ein Beispieldatei liegt der Anwendung immer unter dem Pfad config/application.yml.example bei. Benennen Sie diese Datei vor dem ersten Start der Anwendung entsprechend um oder prüfen Sie bei Upgrades, ob es Änderungen gibt.

2. Allgemein

Die Anwendung basiert auf dem Spring-Boot-Framework und einem integrierten Tomcat. Das bringt schon eine Vielzahl an Konfigurationsmöglichkeiten mit sich.

Eine Liste der Konfigurationparamter finden Sie hier: Common Application Properties

Die folgende Tabelle enthält nennenswerte Parameter, die ggf. auch mit neuen Standardwerten versehen wurden:

Name Beschreibung Standardwert

server.address

Die IP-Adresse, von der aus auf die Anwendung zugegrifen werden darf. Durch Setzen des Wertes 0.0.0.0 werden alle IP-Adressen erlaubt.

127.0.0.1

server.port

Der HTTP-Port unter dem die Anwendung erreichbar ist.

8080

logging.level.ROOT

Setzt den übergeordneten Log-Level. Folgende Werte könenn gesetzt werden: TRACE, DEBUG, INFO, WARN, ERROR

WARN

logging.level.*

Setzt den Log-Level für ein bestimmtes Java-Package. Anstelle des * erfolgt die Angabe des Packages. Folgende Werte könenn gesetzt werden: TRACE, DEBUG, INFO, WARN, ERROR

WARN

logging.file.name

Der Name der Log-Datei. Bei Angabe eines relativen Pfades bezieht sich dieser auf das Installationsverzeichnis.

log/fva-simulation-hub.log

Beispiel:

server:
  address: 0.0.0.0
  port: 5000

logging:
  level:
    ROOT: WARN
    '[de.fva.simulationhub.service]': WARN
  file:
    name: log/fva-simulation-hub.log

3. Tasks

Name Beschreibung Standardwert

app.task.defaultWorkbenchVersion

Die Version der FVA-Workbench, die verwendet werden soll, falls keine in der Anfrage angegeben wurde.

app.task.dataDirectory

Verzeichnis in dem alle Daten zu den bearbeiteten Tasks zwischengespeichert werden. Bei Angabe eines relativen Pfades bezieht sich dieser auf das Installationsverzeichnis.

data/tasks

app.task.deleteTaskDataAfterFinish

Mit diesem Parameter wird festgelegt, ob die zwischengespeicherten Dateien zum Task nach dessen Bearbeitung gelöscht werden. Durch den Wert false werden die Dateien nicht gelöscht, was aber die Festplatte immer weiter füllt.

true

Beispiel:

app:
  task:
    defaultWorkbenchVersion: 7.1.0
    dataDirectory: data/tasks
    deleteTaskDataAfterFinish: true

4. FVA-Workbench-Instanzen

4.1. Standard-Lizenz

Mit den folgenden Parametern werden Lizenz-Einstellungen festgelegt, die für jede FVA-Workbench-Instanz gelten, zu der keine eigenen Lizenz konfiguriert wurde.

Name Beschreibung Standardwert

app.workbench.defaultLicense.serverUrl

Die URL zum FVA-Lizenzserver, in dem die benötigten Lizenzen hinterlegt sind.

app.workbench.defaultLicense.licenseId

Die Lizenz-ID der zu verwendenden Lizenz.

app.workbench.defaultLicense.login

Der Benutzername zur Verwendung der Lizenz. Die Angabe ist nur erforderlich, wenn im FVA-Lizenzserver Benutzername und Kennwort festgelegt wurden.

app.workbench.defaultLicense.password

Das Kennwort zur Verwendung der Lizenz. Die Angabe ist nur erforderlich, wenn im FVA-Lizenzserver Benutzername und Kennwort festgelegt wurden.

Beispiel:

app:
  workbench:
    defaultLicense:
      serverUrl: license.example.com.de:5006
      licenseId: Li13270
      login: fvagmbh
      password: geheim

4.2. Instanzen

Mit den folgenden Parametern werden die FVA-Workbench-Instanzen konfiguriert, die zur Bearbeitung von Aufgaben verwendet werden können.

Zu jeder Instanz kann eine Lizenz konfiguriert werden. Werden diese Parameter für die Lizenz leer gelassen, dann wird die Standard-Lizenz verwendet.

Name Beschreibung Standardwert

app.workbench.instances[0].workbenchDirectory

Der Pfad unter dem sich die FVA-Workbench-Instanz befindet.

Das gewählte Verzeichnis muss sich auf dem Rechner befinden, auf dem auch der FVA Simulation Hub ausgeführt wird.

Das gewählte Verzeichnis kann leer sein, wenn ein Vorlage-Pfad konfiguriert wurde.

app.workbench.instances[0].templatePath

Der Vorlage-Pfad für die FVA-Workbench-Instanz.

Sollte das Verzeichnis der FVA-Workbench-Instanz leer sein, dann wird es automatisch mit dem Inhalt dieses Verzeichnisses gefüllt.

Der Pfad kann auch zu einem ZIP-Archiv zeigen. In diesem Fall wird das Archiv automatisch entpackt.

app.workbench.instances[0].license.serverUrl

Die URL zum FVA-Lizenzserver, in dem die benötigten Lizenzen hinterlegt sind.

app.workbench.instances[0].license.licenseId

Die Lizenz-ID der zu verwendenden Lizenz.

app.workbench.instances[0].license.login

Der Benutzername zur Verwendung der Lizenz. Die Angabe ist nur erforderlich, wenn im FVA-Lizenzserver Benutzername und Kennwort festgelegt wurden.

app.workbench.instances[0].license.password

Das Kennwort zur Verwendung der Lizenz. Die Angabe ist nur erforderlich, wenn im FVA-Lizenzserver Benutzername und Kennwort festgelegt wurden.

app.workbench.instances[0].license.labels[0]

Eine Liste an frei definierbaren Labels, die für Einschränkungen bei der Authorisierung und ein Anfragen verwendet werden können.

app.workbench.instances[0].restartPolicy

Definiert die Richtlinie, die beim Beenden der FVA-Workbench-Instanz angewendet wird.

  • no: Startet eine Instanz unter keinen Umständen neu.

  • always: Die Richtlinie startet die Instanz immer neu.

  • on-failure: Die Richtlinie startet eine Instanz nur dann neu, wenn sie abgestürzt ist.

no

Beispiel:

app:
  workbench:
    instances:
      -
        workbenchDirectory: C:\\FVA-Simulation-Hub\\worker\\FVA-Workbench-7.1_01
        templatePath: C:\\FVA-Simulation-Hub\\worker\\FVA-Workbench-7.1
        license:
          serverUrl: license.example.de:5006
          licenseId: Li13270
          login: fvagmbh
          password: geheim
      -
        workbenchDirectory: C:\\FVA-Simulation-Hub\\worker\\FVA-Workbench-7.1_02
        templatePath: C:\\FVA-Simulation-Hub\\worker\\FVA-Workbench-7.1
        restartPolicy: always
      -
        workbenchDirectory: C:\\FVA-Simulation-Hub\\worker\\FVA-Workbench-7.1_03
        templatePath: C:\\FVA-Simulation-Hub\\worker\\FVA-Workbench-7.1
        labels:
          - foo
          - bar

5. Sicherheit

5.1. REST-API

Die folgneden Parameter steuern grundlegende Einstellungen zu Sicherheit der REST-API.

Name Beschreibung Standardwert

app.security.apiapp.security.enable

Mit diesem Parameter wird festgelegt, ob die REST-API mit einem Authentifizierungsverfahren geschützt wird. Durch den Wert false wird das Authentifizierungsverfahren deaktiviert.

true

app.security.accessToken.secret

Der geheime Schlüssel zu Ver- und Entschlüsseln des Authentifizierungs-Token.

Beim Load Balancing sollte dieser Wert über alle Instanzen identisch sein, damit keine erneute Authorisierung durchgeführt werden muss.

app.security.accessToken.expiration

Die Gültigkeit eines neu erstellten Authentifizierungs-Token in Minuten.

10

Beispiel:

app:
  security:
    api:
      enable: true
      accessToken:
        secret: ed51f4bcc7b1eee109fce1524706ac16bd5d7ae3155abd7b152e8b7f
        expiration: 10

5.2. GUI

Die folgneden Parameter steuern grundlegende Einstellungen zu Sicherheit der grafischen Oberfläche.

Name Beschreibung Standardwert

app.security.gui.enableUnsecuredGui

Mit diesem Parameter wird festgelegt, ob die grafische Oberfläche der Anwendung erreichbar ist. Durch den Wert true werden die Seiten der grafische Oberfläche bereitgestellt.

Die grafische Oberfläche ist in der vorliegenden Version noch nicht durch das Authentifizierungsverfahren geschützt.

false

Beispiel:

app:
  security:
    gui:
      enableUnsecuredGui: true

5.3. Benutzer

Mit den folgenden Parametern werden die Benutzer konfiguriert, die sich authentifizieren können.

Name Beschreibung Standardwert

app.security.users[0].username

Der Benutzername des Benutzers.

app.security.users[0].password

Das Kennwort des Benutzers.

app.security.users[0].permittedClassifiers.versions[0]

Eine Liste mit Versionen der FVA-Workbench, die bei einer Anfrage verwendet werden dürfen.

app.security.users[0].permittedClassifiers.priorities[0]

Eine Liste mit Prioritäten, die bei einer Anfrage verwendet werden dürfen.

app.security.users[0].permittedClassifiers.labels[0]

Eine Liste mit Labels zu konfigurierten FVA-Workbench-Instanzen, die bei einer Anfrage verwendet werden dürfen.

app.security.users[0].permittedClassifiers.allVersionsPermitted

Setzen Sie den Wert des Parameters auf true, um alle FVA-Workbench-Versionen für den Benutzer freizuschalten.

false

app.security.users[0].permittedClassifiers.allPrioritiesPermitted

Setzen Sie den Wert des Parameters auf true, um alle Prioritäten für den Benutzer freizuschalten.

false

app.security.users[0].permittedClassifiers.allLabelsPermitted

Setzen Sie den Wert des Parameters auf true, um alle Labels für den Benutzer freizuschalten.

false

Beispiel:

app:
  security:
    users:
      -
        username: user1
        password: password1
        permittedClassifiers:
          versions:
            - 7.1.0
          priorities:
            - NORMAL
            - LOW
            - LOWEST
          labels:
            - foo
      -
        username: user2
        password: password2
        permittedClassifiers:
          allVersionsPermitted: true
          allPrioritiesPermitted: true
          allLabelsPermitted: true

6. Load Balancing

6.1. Master

Beim Einsatz von Load Balancing wird mit diesen Parametern der Master-Knoten konfiguriert.

Name Beschreibung Standardwert

app.loadBalancing.master.enabled

Setzen Sie den Wert des Parameters auf true, um diese Instanz als Master-Knoten zu aktivieren.

false

app.loadBalancing.master.period

Angabe der Zeitabstände in Millisekunden, in denen der Master-Knoten den Stand der FVA-Workbench-Instanzen bei den Slave-Knoten holt.

10000

app.loadBalancing.master.connectTimeout

Der Zeitraum beim Verbindungsaufbau zum Slave-Knoten bis zum Timeout in Millisekunden.

5000

app.loadBalancing.master.readTimeout

Der Zeitraum für Requests zum Slave-Knoten bis zum Timeout in Millisekunden.

5000

app.loadBalancing.master.secret

Ein geheimer Schlüssel zum Austausch zwischen Master- und Slave-Knoten. Nur Slave-Knoten mit identischem Schlüssel können an einem Master-Knoten angebunden werden.

Beispiel:

app:
  loadBalancing:
    master:
      enabled: true
      period: 10000
      connectTimeout: 5000
      readTimeout: 5000
      secret: 9d473430ef7ac17f8bdaa0cb795946a71a68921c1dfd8b4cb5f907cfbf57c

6.2. Slave

Beim Einsatz von Load Balancing wird mit diesen Parametern ein Slave-Knoten konfiguriert.

Name Beschreibung Standardwert

app.loadBalancing.slave.enabled

Setzen Sie den Wert des Parameters auf true, um diese Instanz als Slave-Knoten zu aktivieren.

false

app.loadBalancing.slave.masterUrl

Die URL unter der der Master-Knoten erreichbar ist.

app.loadBalancing.slave.slaveUrl

Die URL unter der der Slave-Knoten vom Master-Knoten aus erreichbar ist.

app.loadBalancing.slave.period

Angabe der Zeitabstände in Millisekunden, in denen sich der Slave-Knoten beim Master-Knoten meldet, um seinen aktuellen Status mitzuteilen.

10000

app.loadBalancing.slave.connectTimeout

Der Zeitraum beim Verbindungsaufbau zum Master-Knoten bis zum Timeout in Millisekunden.

5000

app.loadBalancing.slave.readTimeout

Der Zeitraum für Requests zum Master-Knoten bis zum Timeout in Millisekunden.

5000

app.loadBalancing.slave.secret

Ein geheimer Schlüssel zum Austausch zwischen Master- und Slave-Knoten. Nur Slave-Knoten mit identischem Schlüssel können an einem Master-Knoten angebunden werden.

Beispiel:

app:
  loadBalancing:
    slave:
      enabled: true
      masterUrl: http://localhost:5000
      slaveUrl: http://localhost:6000
      period: 10000
      connectTimeout: 5000
      readTimeout: 5000
      secret: 9d473430ef7ac17f8bdaa0cb795946a71a68921c1dfd8b4cb5f907cfbf57c