Administration Changelog

This page lists the changes included in each release that are specifically relevant to administrators. Administrators are defined as individuals who perform updates to the BPC and carry out administrative configuration within the BPC.

For a list of all changes, see Changelog.

BPC 5.0.8

Release Date: 2026-06-29

The following components must be updated with this update: BPC Modules

Improvements

  • Display of Data Management Bundle in Module List BPC-10867

    The module is now displayed as a frontend module again. This ensures consistent display.

Security

  • Improvements to the Security Cockpit BPC-10893

    The display of the Security Cockpit has been improved: - In addition to the score, the total score is also displayed - A link to the corresponding documentation page is available - If the check refers to a module instance, you can navigate directly to it - Text is selectable

    In addition, the HTTP proxy check has been adjusted so that it does not check for Basic Authentication, as this is not relevant to the security status of the BPC.

    Subject: BPC Core |

Bugs

  • OpenSearch does not start on Windows BPC-11105

    A bug in the opensearch-env.bat has been fixed.

  • Fixed an error when configuring OIDC/Keycloak backend Connections with the BPC homepage as the redirect URL BPC-11161

    The configuration of OIDC and Keycloak backend Connections failed when the BPC homepage was specified as the redirect URL (post-login or post-logout). The cause was the settings validation, which received an HTTP status code 406 when checking the URL of the BPC homepage. As a result, it was not possible to create new OIDC or Keycloak backend Connections or edit existing ones. New cloud deployments that create backend Connections via Custom Resources were also affected.

    This issue has been resolved.

    Affects: BPC Core |

BPC 5.0.7

Release Date: 2026-06-01

The following components must be updated with this update: BPC Modules

New Features

  • Extension of the Identity Management UI BPC-10722

    The full functionality of the Identity Management user interface is now also available with Keycloak as an identity provider. In addition, the frontend has been expanded to include the tabs “Organizations,” “Roles,” and “Permissions.”

    In these tabs, organizations, roles, and permissions can be listed

    , created , and deleted .

    Furthermore, the users in these groups can be viewed and managed directly.

    For organizations and roles (Keycloak as IdP only), role assignments can also be configured.

    Further information can be found under Identity Management.

    Re: BPC Core |

Miscellaneous

  • Migrating INUBIT Workflows to the BPC 5 Monitor Interface BPC-11084

    The INUBIT Workflow package now correctly handles BPC 5 calls.

    Most workflows are no longer delivered in a protected state.

BPC 5.0.6

Release Date: 2026-05-22

The following components must be updated with this release: BPC Module | OpenSearch

Internal Configuration Update

This version includes changes to the BPC’s internal configuration. This affects deployments between BPC instances running different versions. Additionally, extra steps are required when downgrading the BPC.

For more information, see the page at Versioning of the Internal BPC Configuration.

Breaking Changes

You should read the descriptions in this section carefully. They may contain instructions that you must follow for an update.

  • Do not convert attribute names in the payload of Monitor Process Actions to lowercase BPC-10808

    The attribute names of the records in the payload of Process Actions and Process Starters with context retain their original format and are no longer converted to lowercase.

    Affects: Process Monitoring |

Improvements

Bugs

  • Forms Renderer URLs and API keys are not migrated BPC-10813

    Fix: During an update, the settings apiKeys (Core) and rendererUrl (Forms) are migrated correctly. apiKeys is converted from a map to an array, and in rendererUrl, "BPC-forms-renderer/index.html" is set as the value.

    Affects: BPC Core |

Internal Dependencies / Dependency Updates

BPC 5.0.5

Release Date: 2026-03-26

The following components must be updated with this update: BPC Modules

Breaking Changes

You should read the descriptions in this section carefully. They may contain instructions that you must follow to perform an update.

  • Correction to the monitor setting data_filter BPC-10724

    Incorrect behavior in the monitor regarding the data_filter setting has been fixed: If you used the link OR and had not set a base filter, all records were displayed despite the filter rules.

    With a AND link, the base filter was negated and combined with the other filter rules via a logical UND. This was incorrect; the base filter is now no longer negated in this case either, and specifies which documents are generally visible. This means that a data record is visible if it satisfies the base filter OR all session-specific filter rules.

    Note: If you are using Monitor instances with ` data_filter ` in your BPC deployment, please verify that they still function as intended.

    More details on the “ data_filter ” setting can be found here: Restrict the visibility of monitor data

Bugs

  • Correction to the monitor setting data_filter BPC-10724

    Incorrect behavior in the monitor regarding the data_filter setting has been fixed: If you used OR as a link and did not set a base filter, all records were displayed despite the filter rules.

    With a AND link, the base filter was negated and combined with the other filter rules using a logical UND. This was incorrect; the base filter is now no longer negated in this case either, and specifies which documents are generally visible. This means that a record is visible if it meets the criteria of the base filter OR all session-specific filter rules.

    Note: If you are using Monitor instances with data_filter in your BPC deployment, please verify that they continue to function as intended.

    More details on the “ data_filter ” setting can be found here: Restrict the visibility of monitor data

BPC 5.0.4

Release Date: 2026-03-16

The following components must be updated with this update: BPC Modules

Internal Configuration Update

This version includes changes to the BPC’s internal configuration. This affects deployments between BPC instances running different versions. Additionally, extra steps are required when downgrading the BPC.

For more information, see the page at Versioning of the Internal BPC Configuration.

Breaking Changes

You should read the descriptions in this section carefully. They may contain instructions that you must follow for an update.

  • Refactoring OIDC/PKCE Handshake: Switchover to Stateless (Encrypted Cookie) for DoS Prevention BPC-10544

    Data used by OIDC providers for login is stored in an encrypted cookie on the client’s device. This prevents system overload caused by a large number of login requests.

    For BPC module developers

    If you have developed your own UserFlowIdentityProvider implementation, you must adapt it. The function URI createAuthenticationRequestURI(String requestUrl) has been replaced with UserFlowLoginContext createAuthenticationRequestContext(String requestUrl) and now returns not only the redirect URL to the OIDC login but also a cookie containing the login state. This cookie is set by the frontend during a login attempt.

    For BPC administrators

    Install the new modules bpc-be-core.jar and bpc-fe-core.war. A restart of the BPC/Karaf is required. If the BPC is still unavailable, please delete the directory karaf/data and restart Karaf. (You may want to back up your log files first)

    Subject: BPC Core |

  • Renaming and merging monitor settings for download via HTTP proxy connections BPC-10572

    In Process Monitoring, the settings inubit_referenceEndpoint, inubit_proxyId, and inutbit_baseUrl were consolidated for download via an HTTP proxy and renamed to httpProxy_referenceEndpoint to clarify that they can be downloaded via a generic HTTP proxy connection. The setting inubit_dbTablePrefix was removed because it was only used for legacy scenarios.

  • WebTSM: Restrict Access to REST Endpoints BPC-10655

    Timeseries Management Administrators who do not belong to the "bpcadmin" role and previously only had the "webtsm_admin" permission now need the "webtsm_edit" permission instead. A Timeseries Management Administrator could also be assigned the “WEBTSM_ADMIN” role instead of the specific permission. This would also be more future-proof if, for example, in subsequent versions, finely granular permissions were defined for the endpoints instead of the “webtsm_edit” permission.

    Re: WebTSM |

  • Data Management Module Backend Removed BPC-10696

    The Data Management Module no longer has a standalone backend component (bpc-be-vam.jar). It must be removed during the update.

    To perform the update, first remove bpc-be-vam.jar and then install the updated bpc-fe-vam.war.

    The Data Management Module has been incorporated into the regular release cycle.

  • Remove the baseUrl setting BPC-9924

    The setting baseUrl is no longer needed, as the value (cxf) is a static part of the API URL and will not be changed.

    Not to be confused with bpcBaseUrl. This setting remains unchanged.

    Re: BPC Core |

  • Index export for new import function BPC-10386

    The format for index imports has been changed to a ZIP-based format. This is the same format that our OpenSearch tool uses to import and export indexes. In the administration interface under Core ServicesIndexes , you can download such index export files.

    Note: If you are using the index import functionality for an installation with a preconfigured BPC, the export file must be regenerated.

New Features

  • File Storage Download in the Process Monitor BPC-10560

    The File Storage Log Service integration has been adapted for the Process Monitor so that it can offer these files for download and viewing: To achieve this, the Log Service creates two additional fields with the suffixes _filename and _contentType for fields of type file-storage when logging to OpenSearch and relational databases.

    Files from File Storage can now also be retrieved in the Process Monitor.

    • If you want to display files from file storage in the monitor and do not route these downloads through the BPC, you must adjust the CSP and CORS settings. More details can be found at File Attachments.

    • If you have configured Log Service instances that use fields of the type file-storage, then the corresponding index should be reindexed.

  • Index Export for New Import Function BPC-10386

    The format for index imports has been changed to a ZIP-based format. This is the same format that our OpenSearch tool uses to import and export indexes. In the administration interface under Core ServicesIndexes , you can download such index export files.

    Note: If you are using the index import functionality for an installation with preconfigured BPC, the export file must be recreated.

Improvements

  • Monitor File Download BPC-5775

    The configuration of file attachments and downloads in the BPC Monitor has been restructured:

    • In a monitor (in both the parent and child data), it is now possible to define multiple columns that contain file attachments.

    • The setting (column_file) for the column containing the file content or file reference is therefore no longer required. Instead, a file attachment is configured in the column configuration of the parent data (column_config) or child data (column_historyConfig). To do this, an entry fileConfig is created there, which specifies the filename column and the content-type column:

    {
        ...
        "dataIndex": "datei",
        "text": "Datei",
        ...
        "fileConfig": {
            "columnFileName": "filename",
            "columnContentType": "contentType"
        }
    }
    • In the configuration object fileConfig, the field dataSource can optionally be used to specify the source (OpenSearch, HTTP proxy) from which the files should be retrieved.

    • Columns of the type “Attachment Column” can now also be used in child grids.

    • Existing monitor instances will be adapted to the new configuration via a migration.

    • In the Jetty configuration provided by the installer, the CSP header has been adjusted so that images can be displayed in the monitor.

    Further information can be found here: Configuring Monitor Columns and File Attachments.

    Note: Monitor instances previously used the setting ` column_mimetype ` to specify the column name, which refers to the file content type. However, the column name ` contentType ` was used inconsistently in the backend. Therefore, the setting ` column_mimetype ` was ignored during the migration of the instances. If this setting was used, please check the corresponding monitor instance and adjust it if necessary.

  • WebTSM Cache Optimization BPC-10517

    1. Incremental Update
      The " module_apis " setting cache_refresh (specified in minutes; 60 minutes is the default) determines the intervals at which the system checks for new, updated, or deleted time series. Only data that falls within the result set since the date of the last synchronization is taken into account.

    2. Time of full update
      The full update of the time seriescaches was previously performed via the module_apis setting cache_refresh_full. By default, this was performed every 24 hours, starting from the time the WebTSM module was launched. This option has been replaced by cache_refresh_full_cron_expression. Here, a cronexpression can be specified here in the format used by the Quartz scheduler. For example, the time series cache can be rebuilt every Sunday at 9:00 p.m. (0 0 21 ? * Sun). If this option is not set, a full update will not be performed.

    3. Performing a Full Update
      Previously, during a full update, via a SINGLE request to WebTSM, all time series were read and stored locally in BPC (cache). This option remains the default for the full update. However, this can now be switched to reading the time series page-by-page or block-by-block. To do this, set the mode via the module_apis setting cache_refresh_full_default_mode to: Full or FullPaginated. To determine which full refresh mode places less load on WebTSM, both can be manually started for testing purposes via the following WebTSM endpoints:

    4. The following module_apis settings can also affect synchronization:

      • cache_refresh_paginated_fetch_block_size (5000) = Retrieves time series in pages. For each request, WebTSM retrieves this number of time series until all existing time series have been processed. Used only if FullPaginated is set as the mode.

      • timeout (60) = This already existed. It is the query timeout used only for the full update for that ONE request to WebTSM.

      • timeout_general (2) = The query timeout used for all other accesses to WebTSM.

      • cache_refresh_opensearch_bulk_block_size_deleted (2500) = During incremental synchronization, delete commands are sent to OpenSearch in these bulk sizes. If the value is too high, OutOfMemory errors may occur. If the value is too low, too many HTTP requests will be sent to OpenSearch. This can have a negative impact on performance.

      • cache_refresh_opensearch_bulk_block_size_changed (2500) = Time series data is transferred to OpenSearch in these bulk sizes. If the value is too high, OutOfMemory errors may occur. If the value is too low, too many HTTP requests will be sent to OpenSearch. This can negatively impact performance.

        The values in parentheses are the default settings

    Affects: BPC Core |

  • Refactoring OIDC/PKCE Handshake: Switch to Stateless (Encrypted Cookie) for DoS Prevention BPC-10544

    Data used by OIDC providers for login is stored in an encrypted cookie on the client side. This prevents system overload caused by a large number of login requests.

    For BPC module developers

    If you have developed your own UserFlowIdentityProvider implementation, you must adapt it. The function URI createAuthenticationRequestURI(String requestUrl) has been replaced with UserFlowLoginContext createAuthenticationRequestContext(String requestUrl) and now returns not only the redirect URL to the OIDC login but also a cookie containing the login state. This cookie is set by the frontend during a login attempt.

    For BPC administrators

    Install the new modules bpc-be-core.jar and bpc-fe-core.war. A restart of the BPC/Karaf is required. If the BPC is still unavailable, please delete the directory karaf/data and restart Karaf. (You may want to back up your log files first)

    Subject: BPC Core |

  • Renaming and merging monitor settings for download via HTTP proxy connections BPC-10572

    In Process Monitoring, the settings inubit_referenceEndpoint and inubit_proxyId, and inutbit_baseUrl for downloading via an HTTP proxy have been consolidated and renamed to httpProxy_referenceEndpoint to clarify the possibility of downloading via a generic HTTP proxy connection. The setting inubit_dbTablePrefix has been removed, as it was only used for legacy scenarios.

  • WebTSM: Restrict Access to REST Endpoints BPC-10655

    Timeseries Management Administrators who do not belong to the "bpcadmin" role and previously only had the "webtsm_admin" permission now need the "webtsm_edit" permission instead. A Timeseries Management administrator could also be assigned the “WEBTSM_ADMIN” role instead of the specific permission. This would also be more future-proof if, for example, subsequent versions were to define fine-grained permissions for the endpoints instead of the “webtsm_edit” permission.

    Re: WebTSM |

  • Remove the "baseUrl" setting BPC-9924

    The " baseUrl " setting is removed because the value (cxf) is a static part of the API URL and will not be changed.

    Not to be confused with bpcBaseUrl. This setting remains unchanged.

    Re: BPC Core |

Miscellaneous

  • Support for Postgres JSONB columns in replication BPC-10555

    Subject: BPC Core |

  • Data Management Module Backend Removed BPC-10696

    The Data Management Module does not have a standalone backend component (bpc-be-vam.jar) . It must be removed during the update.

    To perform the update, first remove bpc-be-vam.jar and then install the updated bpc-fe-vam.war.

    The Data Management Module has been incorporated into the regular release cycle.

BPC 5.0.3

Release Date: 2026-01-23

The following components must be updated with this update: BPC Modules

New Features

  • Prometheus Support via OpenSearch Metrics BPC-10297

    The prometheus-exporter plugin is now included with OpenSearch by default.

    Re: OpenSearch |

Improvements

  • Introduction of OIDC Access Token Authentication for the BPC API BPC-9610

    The BPC API now also offers authentication via access tokens issued by the configured OIDC provider. Authentication via access tokens must be explicitly enabled in the identity provider configuration. In addition to validating the signature and validity of the access token, you can optionally use the OIDC provider’s introspection endpoint, which also checks whether the session has been terminated (token revocation). Further information can be found here: Access Tokens and Keycloak as an Identity Provider.

    Subject: BPC Core | Documentation |

BPC 5.0.2

Release Date: 2026-01-15

The following components must be updated with this release: BPC Modules | Karaf

Improvements

BPC 5.0.1

Release Date: 2025-11-24

The following components must be updated with this update: BPC Modules

Breaking Changes

You should read the descriptions in this section carefully. They may contain instructions you need to follow to update.

  • HttpProxy appends '/' to BaseUrl BPC-8832

    Check the HTTP proxy configurations and adjust them if necessary. Previously, a '/' was always appended to the configured connection URL. This is no longer the case. If your HTTP proxy destination requires this and the URL is currently configured without a '/' at the end, please adjust it accordingly.

    Re: BPC Core |

Improvements

  • Support for OIDC login with PKCE enabled BPC-8198

    BPC now supports PKCE (Proof Key for Code Exchange) for OpenID Connect and Keycloak identity providers to enable a hardened login flow. To enable this, you must set the PKCE method in the Identity Provider backend Connection and, if necessary, configure this in your Keycloak client.

    Subject: BPC Core | Documentation |

  • Reindexing does not leave behind old indexes BPC-10192

    During reindexing, the old index is deleted instead of being closed as before. The user is prompted to create a backup before reindexing.

    Subject: BPC Core | Documentation |

  • Exceptions occur when uninstalling bundles BPC-10228

    Subject: BPC Core |

Security

  • mssql-jdbc:12.6.1 | CVE-2025-59250 BPC-10266

    The driver provided via pax-jdbc-mssql is no longer included in the release.

    Make sure that the MSSQL driver you are using is at least the following version: 10.2.4, 11.2.4, 12.2.1, 12.6.5, 12.8.2, 12.10.2, 13.2.1

    If an older driver is being used, it should be replaced. Remove the old driver by deleting it from the deploy directory or by uninstalling pax-jdbc-mssql or the driver itself. Then install an up-to-date driver (without the " `pax-jdbc-mssql`" feature). See also: Databases

    Subject: Documentation | Karaf |

Bugs

  • HttpProxy appends '/' to BaseUrl BPC-8832

    Check the HTTP proxy configurations and adjust them if necessary. Previously, a '/' was always appended to the configured connection URL. This is no longer the case. If your HTTP proxy destination requires this and the URL is currently configured without a '/' at the end, please adjust it accordingly.

    Re: BPC Core |

  • Error during index migration BPC-8989

    If an error occurs during index migration, the index newly created for the migration is removed to prevent subsequent errors or to revert to a stable state.

    Subject: BPC Core |

BPC 5.0.0

Release Date: 2025-10-24

The following components must be updated with this release: BPC Module | Karaf | OpenSearch | Java

Internal Configuration Update

This version includes changes to the internal configuration of the BPC. This affects deployments between BPC instances running different versions. Additionally, extra steps are required when downgrading the BPC.

For more information, see the page Versioning of the Internal BPC Configuration.

Breaking Changes

You should read the descriptions in this section carefully. They may contain instructions that you must follow for an update.

  • Restriction of SSH Access BPC-8253

    Effective immediately, access to Karaf via SSH connections to the host localhost is restricted by default. To enable access via external connections, use the central configuration file. See Karaf SSH Access.

    Subject: Documentation | Karaf |

  • OpenSearch access is now only available via de.Virtimo.BPC.core.opensearch.hosts BPC-9246

    Connections to OpenSearch are now configured exclusively via de.virtimo.bpc.core.opensearch.hosts. When updating from an older version, you must add the entry de.virtimo.bpc.core.opensearch.hosts to the configuration file karaf/etc/de.virtimo.bpc.core.cfg. Additionally, it is recommended to to add the following lines to the central configuration file:

    export DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_PORT=$(($PORT_OFFSET + 9200))
    export DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_HOSTS="https://localhost:$DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_PORT"

    or

    SET /a DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_PORT=%PORT_OFFSET% + 9200
    SET DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_HOSTS=https://localhost:%DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_PORT%

    (using https://localhost:9200 as an example here). You can use the files from the download file server as a guide here.

    Subject: BPC Core | Documentation |

  • Java JDK 21 BPC-9312

    Java 21 is now required.

    Re:

  • Metrics Adjustment BPC-9440

    These metrics have been renamed:

    • bpc_es_bpc_plugin_status_websocket → bpc_os_bpc_plugin_status_websocket

    • bpc_es_bpc_plugin_status_plugin → bpc_os_bpc_plugin_status_plugto

    Subject: BPC Core | Documentation |

  • Support for INUBIT Identity Provider removed BPC-9482

    INUBIT is no longer supported as an Identity Provider.

  • Splitting the Identity Provider configuration from JSON into separate settings BPC-9515

    For Identity Providers (Backend Connections), a large portion was previously configured via a single JSON setting. This has been split into individual settings. Existing configurations are migrated automatically. If older deployment exports of Identity Provider components are being used, it is best to recreate them.

    Affects: BPC Core | Documentation |

  • Status API: status/server/{serverUUID} removed BPC-9654

    The Status API endpoint /cxf/bpc-core/status/server/{serverUUID}, which queried the status of a remote BPC, has been removed.

  • Harmonization of Interfaces for Various Monitor Functions BPC-9770

    The query string parameters gridId, gridExtId, multiRecords, buttonId, and the form parameter tablePrefix have been removed from process action requests. To send additional context or configuration information, “Process Action Metadata” can be configured in the monitor settings.

    In process starters, the XML that was sent along with the request has been replaced by JSON. As a result, portletArchiveName, operation, mandant, gridID, key, bpcModule, bpcModuleInstanceId and custom have been removed. key has been uniformly renamed to id. Additional context or configuration information can be reliably included using the "metadata" configuration in the process starter configuration within the monitor settings. The process parameters are grouped under config.parameters in the request payload. File uploads include filename, type, and data. Grids contain a list of their records.

    For Change State, tablePrefix, mandant, and changeStatusBox_<Spaltenname> have been removed. command has been uniformly renamed to type and is assigned the value "statusChange". columnsstring has been renamed to column. newStatusCombo_<Spaltenname> has been renamed to newStatus. commentfield has been renamed to comment. childStatus is no longer set to "Info" by default in the Change State configuration and, if configured, will be migrated to metadata. Additional information can be passed in the "metadata" object in the Change State configuration.

    The unused settings inubit_aperakEndPoint, inubit_dbGridId, and inubit_pmMandant have been removed. The settings inubit_actionEndpoint, inubit_changeStateEndpoint, and inubit_VpsEndpoint have been replaced by actionEndpointProcessor, changeStateEndpointProcessor, and vpsEndpointProcessor.

  • Restricted Forwarding of Session Information BPC-9925

    HTTP proxy backend Connections and flow Connections now always filter the session cookie so that a recipient cannot make requests in the BPC within the user’s context. The setting filterSessionCookie is therefore no longer needed. Instead, the new setting sendSessionId allows you to include the user’s session ID, which can be verified at the endpoint GET /cxf/bpc-core/authentication/session/{sessionid}. When the setting injectUserSessionJWT is enabled, a self-generated JWT is no longer sent; instead, the signed ID token from the OpenID Connect provider is sent. For more details, see Backend Connections - HTTP Proxy.

    Affects: BPC Core | Documentation |

  • HTTP Proxy filters X-APIKey header BPC-10011

    HTTP calls made via an HTTP proxy or Flow connection filter out the BPC API key header (X-APIKey). Note: This could affect existing BPC configurations if, for example, an INUBIT process is triggered that uses the included APIkey to make calls to the BPC API. (In this case, it would be better to store a fixed BPC API key within the INUBIT process.)

    Subject: BPC Core | Documentation |

  • Renaming "childs" to "children" in the Log Service Payload BPC-8478

    Users of the Log Service API must replace all instances of childs with children in their POST data. During a transition period, childs can still be used for incoming requests. This backward compatibility will be removed in a future release. Please also note that the responses from the Log Service endpoints now contain children instead of childs.

    Subject: BPC Core |

You should read the descriptions in this section carefully. These are recommended actions to take during an update.

  • Move OpenSearch Configuration BPC-9106

    The OpenSearch configuration directory can be configured via OPENSEARCH_PATH_CONF. This allows you to move the configuration directory out of the OpenSearch directory. As a result, it will no longer be overwritten during an OpenSearch update. See also Moving the OpenSearch Configuration.

    In the bundle installation file, BPC is now shipped with a configuration directory moved to INSTALLATIONSVERZEICHNIS/opensearch_config.

    It is recommended to set OPENSEARCH_PATH_CONF in BPC.env.

    Subject: Documentation | OpenSearch |

New Features

Improvements

  • REST API: Implement adaptive authentication response (401 vs. Keycloak Redirect) based on the Accept header BPC-7723

    BPC API requests made via a web browser now redirect to Keycloak (or another OIDC UserFlowIdentityProvider) if authentication is missing. After logging in, the user is redirected to the original API endpoint.

    Re: BPC Core |

  • Prometheus Metric: BPC Status (Overall status of all BPC modules) BPC-8904

    _
    _Re:
    BPC Core | Documentation |

  • OpenSearch setting for moving shards to other nodes when disk space is low BPC-9011

    If free disk space falls below defined thresholds, shards are distributed to other nodes. Indices may also be set to read-only to prevent the disk from filling up.

    The value of ` cluster.routing.allocation.disk.threshold_enabled ` is now ` true`. This corresponds to the OpenSearch default value.

    Re: OpenSearch |

  • Move OpenSearch configuration BPC-9106

    The OpenSearch configuration directory can be configured via OPENSEARCH_PATH_CONF. This allows you to move the configuration directory out of the OpenSearch directory. As a result, you will no longer overwrite it during an OpenSearch update. See also Moving the OpenSearch Configuration.

    The bundle installation file now ships with BPC using a configuration directory moved to INSTALLATIONSVERZEICHNIS/opensearch_config.

    It is recommended to set OPENSEARCH_PATH_CONF in BPC.env.

    Subject: Documentation | OpenSearch |

  • OpenSearch access now only via de.Virtimo.BPC.core.opensearch.hosts BPC-9246

    Connections to OpenSearch are now configured exclusively via de.virtimo.bpc.core.opensearch.hosts. When updating from an older version, you must add the entry de.virtimo.bpc.core.opensearch.hosts to the configuration file karaf/etc/de.virtimo.bpc.core.cfg. Additionally, it is recommended to to add the following lines to the central configuration file: `

    export DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_PORT=$(($PORT_OFFSET + 9200))
    export DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_HOSTS="https://localhost:$DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_PORT"

    or

    SET /a DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_PORT=%PORT_OFFSET% + 9200
    SET DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_HOSTS=https://localhost:%DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_PORT%

    (using https://localhost:9200 as an example here). You can use the files from the download file server as a guide here.

    Subject: BPC Core | Documentation |

  • Adjustment of Metrics BPC-9440

    These metrics have been renamed:

    • bpc_es_bpc_plugin_status_websocket → bpc_os_bpc_plugin_status_websocket

    • bpc_es_bpc_plugin_status_plugin → bpc_os_bpc_plugin_status_plugin

    Affects: BPC Core | Documentation |

  • Splitting the Identity Provider Configuration from JSON into Separate Settings BPC-9515

    For Identity Providers (Backend Connections), a large portion was previously configured via a single JSON setting. This has been split into individual settings. Existing configurations will be migrated automatically. If older deployment exports of Identity Provider components are being used, it is best to recreate them.

    Affects: BPC Core | Documentation |

  • Status API: status/server/{serverUUID} removed BPC-9654

    The Status API endpoint /cxf/bpc-core/status/server/{serverUUID}, which queried the status of a remote BPC, has been removed.

  • Target process can be configured in the process starter plugin BPC-9728

    The plugin can now configure a process that is displayed immediately upon triggering. In addition, the text and icon can now be freely configured. See also Process Starter Plugin

  • Enabling grouping in bpcConfigSettings BPC-9737

    The option to group settings is now enabled by default. We recommend using this view, as it displays the settings in a shared context.

    Re: BPC Core |

  • Harmonization of Interfaces for Various Monitor Functions BPC-9770

    The query string parameters gridId, gridExtId, multiRecords, buttonId, and the form parameter tablePrefix have been removed from process action requests. To send additional context or configuration information, "Process Action Metadata" can be configured in the monitor settings.

    In process starters, the XML that was sent along with the request has been replaced by JSON. As a result, portletArchiveName, operation, mandant, gridID, key, bpcModule, bpcModuleInstanceId, and custom have been removed. key has been uniformly renamed to id. Additional context or configuration information can be reliably included by using the "metadata" configuration in the process starter settings within the monitor settings. The process parameters can be found grouped under config.parameters in the request payload. File uploads contain ` filename, ` `type `, and ` `data. Grids contain a list of their records. `

    ` For Change State, tablePrefix, mandant, and changeStatusBox_<Spaltenname> have been removed. command has been uniformly renamed to type and is assigned the value "statusChange". columnsstring has been renamed to column. newStatusCombo_<Spaltenname> has been renamed to newStatus. commentfield has been renamed to comment. childStatus is no longer set to "Info" by default in the Change State configuration and, if configured, will be migrated to metadata. Additional information can be passed in the "metadata" object in the Change State configuration.

    The unused settings inubit_aperakEndPoint, inubit_dbGridId, and inubit_pmMandant have been removed. The settings inubit_actionEndpoint, inubit_changeStateEndpoint, and inubit_VpsEndpoint have been replaced by actionEndpointProcessor, changeStateEndpointProcessor, and vpsEndpointProcessor.

  • Renaming in Log Service: Settings with "Elasticsearch" in the name BPC-9813

    Subject: BPC Core |

  • Optimization of Boolean Editing in Tables BPC-9968

    For Boolean values in the settings tables, a combo box is no longer displayed; instead, only the checkbox with the truth value appears. The value can be changed by clicking, pressing the spacebar, or pressing Enter.

    Affects: BPC Core |

  • Renaming "childs" to "children" in the Log Service Payload BPC-8478

    Users of the Log Service API must replace all instances of childs with children in their POST data. During a transition period, childs may still be used for incoming requests. This backward compatibility will be removed in a future release. Please also note that the responses from the Log Service endpoints now contain children instead of childs.

    Affects: BPC Core |

Security

  • Restriction of SSH Access BPC-8253

    By default, access to Karaf via SSHconnections to the host localhost. To enable access via external connections, use the central configuration file. See Karaf SSH Access.

    Subject: Documentation | Karaf |

  • Filter session cookie content from log files BPC-9533

    The logging configuration has been changed so that session tokens are masked. For new Karaf installations, this happens automatically. For existing installations, please update the configuration file [KARAF]/etc/org.ops4j.pax.logging.cfg. Replace the old line

    log4j2.maskpasswords.pattern = %replace{${log4j2.pattern}}{(password=[^\\s,]+)|("password"\\s*:\\s*"\\w+")}*{}*

    with the following lines:

    # Chained replacement patterns to mask sensitive information
    # Filter out UUIDs as these are used as session cookies (keycloak+oidc)
    log4j2.maskuuids.pattern = %replace{${log4j2.pattern}}{(?i)([a-f0-9]{4})[a-f0-9]{4}(-[a-f0-9]{4}){3}-[a-f0-9]{8}(([a-f0-9]{4}))(?-i)}{$1****-****-****-**-*****$3*}
    # Filter out JWT tokens that might contain session IDs
    log4j2.maskjwt.pattern = %replace{${log4j2.maskuuids.pattern}}{ey[\\w-]+\\.ey[\\w-]+\\.[\\w-]+}*{(JWT)}*
    log4j2.maskunsecuredjwt.pattern = %replace{${log4j2.maskjwt.pattern}}{ey[\\w-]+\\.ey[\\w-]+\\.}*{(JWT)}*
    # Filter out 256-bit (64 hex digits) UUIDs used for Karaf session cookies and API keys
    log4j2.maskkarafsessioncookie.pattern = %replace{${log4j2.maskunsecuredjwt.pattern}}{[0-9a-fA-F]{64}}*{}*
    # Filter out passwords
    log4j2.maskpasswords.pattern = %replace{${log4j2.maskkarafsessioncookie.pattern}}{(password=[^\\s,]+)|("password"\\s*:\\s*"\\w+")}*{}*

    Since session tokens in Keycloak and OIDC are UUIDs that are also used elsewhere, we log the first and last four characters here.

    Subject: BPC Core | Documentation | Karaf |

  • Restricted Forwarding of Session Information BPC-9925

    HTTP proxy backend Connections and flow Connections now always filter the session cookie to prevent a recipient from making requests in the BPC within the user’s context. The setting ` filterSessionCookie ` is therefore no longer needed. Instead, the new setting ` sendSessionId ` allows you to include the user’s session ID, which can be verified at the endpoint ` GET /cxf/bpc-core/authentication/session/{sessionid} . When the setting ` `injectUserSessionJWT ` is enabled, a self-generated JWT is no longer sent; instead, the signed ID token from the OpenID Connect provider is sent. For more details, see Backend Connections - HTTP Proxy.

    Affects: BPC Core | Documentation |

  • HTTP proxy filters X-APIKey header BPC-10011

    HTTP calls made via an HTTP proxy or Flow connection filter out the BPC API key header (X-APIKey). Note: This could affect existing BPC configurations if, for example, an INUBIT process is triggered that in turn makes calls to the BPC API using the API key provided. (In this case, it would be better to store a fixed BPC API key within the INUBIT process.)

    Affects: BPC Core | Documentation |

  • Changing the default value for filterSessionCookie to true BPC-9926

    For new backend Connections of the HTTP Proxy and Flow types, the " Filter BPC Session " option is enabled by default.

    Affects: BPC Core | Documentation |

Internal Dependencies / Dependency Updates

  • Java JDK 21 BPC-9312

    Java 21 is now required.

    Affects:

  • Update OpenSearch to 3.2 BPC-9609

    If the BPC was initially installed with a version of OpenSearch instead of Elasticsearch, then the [bpc]/opensearch_data directory can be used as-is.

    If not, the indices must be migrated first.

  • Karaf Update BPC-9960

    This update upgrades the Karaf version to 4.4.8. It is necessary to update the modules bpc-be-core, bpc-be-analysis, bpc-be-forms, and bpc-be-monitor.

    For BPC module developers

    With the updated Karaf, we are shipping CXF 3.6.8 instead of 3.6.7, which provides Jackson version 2.19.2.

    Please update the CXF version (3.6.8) and Jackson version (2.19.2) in your pom.xml. To do this, check whether you have an import package statement for this version. This must be added or updated if you use Jackson functions such as the ` ObjectMapper ` class.

    <Import-Package>
    ...
    com.fasterxml.jackson.*;version="[2.17.2,3.0.0)",
    ...
    </Import-Package>

Miscellaneous

  • Support for INUBIT Identity Provider Removed BPC-9482

    INUBIT is no longer supported as an identity provider.

    Subject: BPC Core | Documentation |

Overview of Karaf Updates

An update to Karaf was performed in the following BPC versions.

Overview of OpenSearch Updates

An update to OpenSearch was performed in the following BPC versions.

Overview of Updates to the Internal BPC Configuration

An update to the internal BPC configuration was performed in the following BPC versions.