Deployment constraints

When deploying settings to a target system, unwanted behavior can occur with certain settings. To keep an eye on these critical settings during deployment, they can be marked with an exclamation mark in the deployment dialog and the user is informed that they are in the process of deploying critical settings.

deployment constraint warning

Customization via core setting

We have already identified a few settings as critical and stored them in the "Core Services" setting "Core_Deployment". At runtime, this list can be expanded to include further settings and also for non-core-specific settings such as the monitor, dashboard, etc.

Core_Deployment Default BPC Version < 4.2.13
{
  "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 Default BPC Version >= 4.2.13
{
  "deploymentConstraints": {
    "warning": [
      {
        "module": "_core",
        "settings": [ "apiKeys", "browser_title", "bpcBaseUrl", "gui_stageColor", "viewConfiguration", "welcomeNotification", "login_title", "backupJobs" ]
      },
      {
        "module": "backendconnection",
        "instanceType": "identity_provider",
        "settings": [ "identityProvider_mappings", "identityProvider_jdbc_dataSource", "identityProvider_inubit_url", "identityProvider_oidc_clientId", "identityProvider_oidc_clientSecret", "identityProvider_oidc_metadataDiscoveryUri", "identityProvider_oidc_postAuthenticationRedirectUri", "identityProvider_oidc_postLogoutRedirectUri" ]
      },
      {
        "module": "backendconnection",
        "instanceType": "http_proxy",
        "settings": [ "connectionBaseUrl", "connectionUsername", "connectionPassword" ]
      }
    ]
  }
}
Core_Deployment exemplarily extended with the monitor instance setting "inubit_dbTablePrefix"
{
  "deploymentConstraints": {
    "warning": [
      {
        ...
      },
      {
        "module": "monitor",
        "instanceType": "none",
        "settings": [ "inubit_dbTablePrefix" ]
      }
    ]
  }
}

Specify in 3rd party modules

If you want to specify the deployment constraints in your own/other modules without storing them in the above-mentioned core setting, then create a setting with the name "deployment" in your module and store a deployment constraints JSON.

Add module setting "deployment"

In the module settings (default_module_settings.json), add a setting with the name "deployment" of type JSON. The name "deployment" is IMPORTANT, otherwise it will not be taken into account!

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

JSON of the "deployment" module setting

Here is a resources/defaults/deployment.json (referenced by the module setting above) to be created using the monitor module (monitor = ModulId) as an example. In the example, the monitor module uses the setting monitor_data_view_limit und von den Monitor-Instanzen die Settings <INLINE_CODE_3/>` and data_historyIndex for the deployment warnings.

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

The JSON must have exactly this structure with "deploymentConstraints → warning []"!


Keywords: