Administration changelog

This page shows changes that are contained in the releases of the individual versions and are explicitly relevant for administrators. Administrators are persons who carry out updates to the BPC and perform administrative configuration in the BPC.

For a list of all changes, see Changelog.

BPC 5.0.2

Release date: 2026-01-15

The following components must be updated with this update: BPC modules | Karaf

Improvements

  • Unser Karaf startet über 10mal langsamer als ein Vanilla Karaf BPC-9395

    Affects: Karaf |

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. It may contain instructions that you must follow for an update.

  • HttpProxy fügt an BaseUrl / an BPC-8832

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

    Affects: BPC Core |

Improvements

  • Unterstützung von OIDC Login mit aktiviertem PKCE BPC-8198

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

    Affects: BPC Core | Dokumentation |

  • Reindizieren hinterlässt keine alten Indices BPC-10192

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

    Affects: BPC Core | Dokumentation |

  • Beim deinstallieren von Bundles kommt es zu Exceptions BPC-10228

    Affects: BPC Core |

Security

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

    The driver provided via pax-jdbc-mssql is no longer delivered.

    Please ensure that the MSSQL driver used has at least one of the following versions: 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 a current driver (without the pax-jdbc-mssql feature). See also: Databases

    Affects: Dokumentation | Karaf |

Bugs

  • HttpProxy fügt an BaseUrl / an BPC-8832

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

    Affects: BPC Core |

  • Error during index migration BPC-8989

    If an error occurs during the migration of an index, the newly created index for the migration will be removed again in order to avoid subsequent errors or to revert to a stable state.

    Affects: BPC Core |

BPC 5.0.0

Release date: 2025-10-24

The following components must be updated with this update: BPC modules | Karaf | OpenSearch | Java

Update of the internal configuration

In this version there have been changes to the internal configuration of the BPC. This affects deployments between BPCs with different versions. Additional steps are also required when downgrading the BPC.

Further information can be found on the page Versioning of the internal BPC configuration.

Breaking Changes

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

  • Restriction of SSH access BPC-8253

    By default, the accessibility of Karaf via SSH connections is now restricted to the host localhost. To enable accessibility via external connections, use the central configuration file. See Karaf SSH Access.

    Affects: Dokumentation | Karaf |

  • OpenSearch access 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 supplement the central configuration file with the lines

    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 [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% [https://localhost:%DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_PORT%]

    (as shown here with the example https://localhost:9200) [https://localhost:9200)]. You can use the files from the download file server as a reference.

    Affects: BPC Core | Dokumentation |

  • Java JDK 21 BPC-9312

    The use of Java 21 is now necessary.

    Affects:

  • 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 | Dokumentation |

  • Support for INUBIT Identity Provider removed BPC-9482

    INUBIT is no longer supported as an Identity Provider.

    Affects: BPC Core | Dokumentation |

  • Aufsplittung der Identity Provider-Konfiguration aus JSON in separate Settings BPC-9515

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

    Affects: BPC Core | Dokumentation |

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

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

    Affects: BPC Core | Dokumentation |

  • 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 the 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 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 sent via the "metadata" configuration in the process starter configuration in the monitor settings. The process parameters are bundled under config.parameters in the request payload. File uploads contain filename, type and data. Grids contain a list of their records.

    In Change State, tablePrefix, mandant and changeStatusBox_<column name> have been removed. command has been uniformly renamed to type and receives the value "statusChange". columnsstring has been renamed to column. newStatusCombo_<column name> 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, is 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 calls in the BPC in the context of the user. The setting filterSessionCookie is therefore no longer required. Instead, with the new setting sendSessionId, it is possible to send the user’s session ID, which can be verified at the endpoint GET /cxf/bpc-core/authentication/session/{sessionid}. When the injectUserSessionJWT setting is enabled, a self-created JWT is no longer sent, but rather the signed ID token from the OpenID Connect provider is sent. You can find more details in Backend Connections - HTTP-Proxy.

    Affects: BPC Core | Dokumentation |

  • HTTP proxy filters X-APIKey header BPC-10011

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

    Affects: BPC Core | Dokumentation |

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

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

    Affects: BPC Core |

You should read the descriptions in this section carefully. These are recommended instructions that are advised during an update.

  • OpenSearch Konfiguration auslagern BPC-9106

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

    In the bundle installation file, BPC is now delivered with a configuration directory outsourced to INSTALLATION_DIRECTORY/opensearch_config.

    It is recommended to set OPENSEARCH_PATH_CONF in the bpc.env.

    Affects: Dokumentation | OpenSearch |

New features

Improvements

  • REST API: Adaptive Authentifizierungsantwort (401 vs. Keycloak Redirect) basierend auf Accept-Header implementieren BPC-7723

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

    Affects: BPC Core |

  • Prometheus Metrik: BPC Status (Gesamtstatus aller BPC Module) BPC-8904

    Affects: BPC Core | Dokumentation |

  • OpenSearch Einstellung zum verschieben von Shards auf andere Nodes bei geringem Plattenplatz BPC-9011

    If the available disk space falls below defined thresholds, shards are redistributed to other nodes. It can also happen that indices are 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.

    Affects: OpenSearch |

  • OpenSearch Konfiguration auslagern BPC-9106

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

    In the bundle installation file, BPC is now delivered with a configuration directory outsourced to INSTALLATION_DIRECTORY/opensearch_config.

    It is recommended to set OPENSEARCH_PATH_CONF in the bpc.env.

    Affects: Dokumentation | OpenSearch |

  • OpenSearch access 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 supplement the central configuration file with the lines

    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 [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% [https://localhost:%DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_OPENSEARCH_PORT%]

    (as shown here with the example https://localhost:9200) [https://localhost:9200)]. You can use the files from the download file server as a reference.

    Affects: BPC Core | Dokumentation |

  • 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 | Dokumentation |

  • Aufsplittung der Identity Provider-Konfiguration aus JSON in separate Settings BPC-9515

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

    Affects: BPC Core | Dokumentation |

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

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

    Affects: BPC Core | Dokumentation |

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

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

  • Per Default die Gruppierung in den BPC Settings Tabellen aktivieren. BPC-9737

    The option for grouping settings is now initially enabled. It is recommended to use this view, as the settings are displayed together in a common context.

    Affects: 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 the 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 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 sent via the "metadata" configuration in the process starter configuration in the monitor settings. The process parameters are bundled under config.parameters in the request payload. File uploads contain filename, type and data. Grids contain a list of their records.

    In Change State, tablePrefix, mandant and changeStatusBox_<column name> have been removed. command has been uniformly renamed to type and receives the value "statusChange". columnsstring has been renamed to column. newStatusCombo_<column name> 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, is 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.

  • Log Service: Settings mit Elasticsearch im Namen umbenennen BPC-9813

    Affects: BPC Core |

  • Boolsche Werte in Einstellungs-Tabelle besser darstellen und setzen BPC-9968

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

    Affects: BPC Core |

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

    Users of the Log Service API must replace all occurrences of childs with children in their POST data. During a transition period, childs can still be used for incoming data. This backward compatibility will be removed in a future release. It should also be noted 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, the accessibility of Karaf via SSH connections is now restricted to the host localhost. To enable accessibility via external connections, use the central configuration file. See Karaf SSH Access.

    Affects: Dokumentation | Karaf |

  • Filter session cookie content from log file BPC-9533

    The logging configuration has been changed so that session tokens are masked. For new installations of Karaf, this happens automatically. For existing installations, please adjust 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 256bit (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 with Keycloak and OIDC the session tokens are UUIDs that are also used elsewhere, we log the first and last four characters here.

    Affects: BPC Core | Dokumentation | Karaf |

  • 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 calls in the BPC in the context of the user. The setting filterSessionCookie is therefore no longer required. Instead, with the new setting sendSessionId, it is possible to send the user’s session ID, which can be verified at the endpoint GET /cxf/bpc-core/authentication/session/{sessionid}. When the injectUserSessionJWT setting is enabled, a self-created JWT is no longer sent, but rather the signed ID token from the OpenID Connect provider is sent. You can find more details in Backend Connections - HTTP-Proxy.

    Affects: BPC Core | Dokumentation |

  • HTTP proxy filters X-APIKey header BPC-10011

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

    Affects: BPC Core | Dokumentation |

  • Default für filterSessionCookie auf true BPC-9926

    For new backend connections of the type HTTP-Proxy and Flow, the option Filter BPC Session is enabled by default.

    Affects: BPC Core | Dokumentation |

Dependency Updates

  • Java JDK 21 BPC-9312

    The use of Java 21 is now necessary.

    Affects:

  • Update OpenSearch to 3.2 BPC-9609

    If BPC was initially installed with an OpenSearch version instead of an Elasticsearch version, then the [bpc]/opensearch_data directory can be adopted directly.

    If not, indices must first be migrated.

  • Update Karaf BPC-9960

    With this update, the Karaf version is upgraded 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 delivering CXF 3.6.8 instead of 3.6.7, which provides Jackson in version 2.19.2.

    Please update the CXF version (3.6.8) and Jackson version (2.19.2) in your pom.xml. Check whether you have an Import-Package statement for this version. This must be added or adjusted if you use Jackson features such as the ObjectMapper class.

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

Other

  • Support for INUBIT Identity Provider removed BPC-9482

    INUBIT is no longer supported as an Identity Provider.

    Affects: BPC Core | Dokumentation |

Overview of Karaf updates

Karaf has been updated in the following BPC versions.

Overview of OpenSearch updates

OpenSearch has been updated in the following BPC versions.

Overview of updates to the internal BPC configuration

The following BPC versions have an update to the internal BPC configuration has been carried out.