Deployment Constraints

Beim Deployment von Settings auf ein Zielsystem, kann es auf diesem bei bestimmten Settings zu ungewolltem Verhalten kommen. Damit man diese kritischen Settings während des Deployments im Auge behält, können diese im Deploymentdialog mit einem Ausrufezeichen kenntlich gemacht werden und der Benutzer wird darauf hingewiesen dass er gerade dabei ist kritische Settings zu deployen.

deployment constraint warning

Anpassung über Core Einstellung

Wir haben schon ein paar Einstellungen als kritisch identifiziert und in der "Core Services" Einstellung "Core_Deployment" hinterlegt. Zur Laufzeit kann diese Liste um weitere Einstellungen und auch für NICHT Core spezifische Einstellungen wie dem Monitor, Dashboard, etc. erweitert werden.

Core_Deployment Default BPC 4.0
{
  "deploymentConstraints": {
    "warning": [
      {
        "module": "_core",
        "settings": [ "apiKeys", "browser_title", "bpcBaseUrl", "gui_stageColor", "viewConfiguration", "welcomeNotification", "login_title" ]
      },
      {
        "module": "backendconnection",
        "instanceType": "identity_provider",
        "settings": ["identityProvider_mappings", "identityProvider_configuration"]
      },
      {
        "module": "backendconnection",
        "instanceType": "http_proxy",
        "settings": ["connectionBaseUrl", "connectionUsername", "connectionPassword"]
      }
    ]
  }
}
Core_Deployment exemplarisch erweitert mit der Monitor-Instanz Setting "inubit_dbTablePrefix"
{
  "deploymentConstraints": {
    "warning": [
      {
        ...
      },
      {
        "module": "monitor",
        "instanceType": "none",
        "settings": [ "inubit_dbTablePrefix" ]
      }
    ]
  }
}

In 3rd Party Modulen festlegen

Wenn man in eigenen/anderen Modulen die Deployment Constraints vorgeben möchte, ohne sie in der oben genannten Core Einstellung zu hinterlegen, dann legt man in seinem Modul eine Einstellung mit dem Namen "deployment" an und hinterlegt ein Deployment Constraints JSON.

Modul-Einstellung "deployment" hinzufügen

Bei den Modul-Settings (default_module_settings.json) ein Setting mit dem Namen “deployment” vom Typ JSON hinzufügen. Der Name “deployment” ist WICHTIG, andernfalls wird es nicht berücksichtigt!

default_module_settings.json
{
  "beispielGruppenName": {
    "sortPriority": 100,
    "settings": [
      {
        "name": "deployment",
        "value": "defaults/deployment.json",
        "type": "json",
        "_writeableByRoles": [ "bpcadmin" ],
        "_readableByRoles": [ "bpcadmin", "bpcuser" ]
      },
      ...
    ]
  }
...
}

JSON der "deployment" Modul-Einstellung

Hier eine anzulegende resources/defaults/deployment.json (wird vom Modul-Setting oben referenziert) am Beispiel vom Monitor-Modul (monitor = ModulId). In dem Beispiel wird vom Monitor-Modul die Setting monitor_data_view_limit und von den Monitor-Instanzen die Settings data_index und data_historyIndex für die Deployment-Warnings verwendet.

resources/defaults/deployment.json
{
  "deploymentConstraints": {
    "warning": [
      {
        "module": "monitor",
        "settings": [ "monitor_data_view_limit" ]
      },
      {
        "module": "monitor",
        "instanceType": "none",
        "settings": [ "data_index", "data_historyIndex" ]
      }
    ]
  }
}

Das JSON muss genau diesen Aufbau mit “deploymentConstraints → warning []” haben!


Keywords: