Changelog

This page shows all the changes contained in the releases of the individual versions.

There are separate changelogs for administrators and developers (Administration changelog and Developer-Changelog). These are a subset of this changelog, with entries that are only relevant for these people.

For some versions, an update of individual system components (Karaf, OpenSearch) or other components is necessary. Update-Guide describes how these can be updated.

Explanations of the changelog

Within each version, changes are grouped according to different categories:

  • Breaking Changes
    Changes that change the existing behavior of functions or that may entail additional work when updating the BPC.

    Read the notes on the Breaking Change carefully.

    Entries in this category may reappear in one of the other categories.

  • Recommended adjustments
    Instructions for the BPC update and the consequences of following or not following the instructions.

    Entries in this category may reappear in one of the other categories.

  • New functions
    Functions that have been added with this version.

  • Improvements
    Improvements to existing functions.

  • Security
    Changes that eliminate potential IT security risks in the BPC or further increase the security level.

  • Bugs
    Corrections of errors of various kinds.

  • Documentation
    Changes or extensions to the product documentation.

  • Dependency updates
    Changes to internally used components from external sources.

  • Miscellaneous
    Changes that are not assigned to any other category.

For an explanation of the version numbering, see Explanation of versioning.

BPC 5.0.2

Release date: 2026-01-15

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

New features

  • BPC Forms AI Generation BPC-8640

    Affects: BPC Core | Dokumentation | Forms |

  • AI Assistant BPC-9724

    Affects: BPC Core |

  • Azure Blob and Google Cloud Storage support for file storage BPC-10268

    The BPC File Storage Service now supports Azure Blob Storage and Google Cloud Storage in addition to AWS S3.

    To use the file storage functionality, it is necessary to install the appropriate module for the respective cloud provider, see File Storage Modules. (This is also required if file storage was previously used with AWS S3.) If file storage is already being used with AWS S3, the AWS S3 File Storage Module must also be installed accordingly.

    Affects: BPC Core | Dokumentation | Karaf |

  • Base-URL HTTPS Check BPC-10323

    A security check has been introduced that verifies HTTPS is used for the bpcBaseUrl setting.

    Affects: BPC Core |

  • Zusätzliche HTTP Header für die Verwendung von HTTP Proxy Verbindungen BPC-10339

    It is now possible to store additional headers on the HTTP proxy, which will be sent to the server.

    Affects: BPC Core |

  • Index-Import BPC-10382

    Analogous to the import of module settings, we now offer the possibility to import preconfigured OpenSearch indices, see Installation with preconfigured BPC.

    Affects: BPC Core | Dokumentation |

Improvements

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

    Affects: Karaf |

  • Scripte bzw. Tools für den Export und Import von BPC Indices BPC-9518

    A command line tool is available for listing, deleting, as well as exporting/importing indices. It is called bpc-opensearch-tool.jar and can be downloaded from the file server (https://files.virtimo.net/bpc/ [https://files.virtimo.net/bpc/]). You can access the help by running java -jar bpc-opensearch-tool.jar --help.

    Affects: BPC Core |

  • externalReference Datenfeld per Default in Log Service Konfiguration BPC-10172

    Affects: BPC Core | Dokumentation |

  • Erweiterung des TLS Security Checks BPC-10193

    Affects: BPC Core | Karaf |

  • Security Check HTTP BPC-10194

    A security check has been introduced to ensure that BPC is only accessible via HTTPS.

    Affects: BPC Core |

  • Correct display of the checkbox in bpcCheckColumn for On/Off values BPC-10224

    Affects: BPC Core |

  • Update Security Check Configuration BPC-10308

    The delivered configuration file de.virtimo.bpc.core.security.checks.cfg contains corrected and updated default settings adapted to current checks.

    Affects: BPC Core | Dokumentation | Karaf |

  • Tooltip mit dem Link zur Quartz Scheduler Dokumentation lässt sich nicht klicken BPC-10312

    Tooltips with URL links can be accessed with the cursor without them disappearing.

    Affects: BPC Core |

  • Replikation repliziert keine Sätze wenn in initialer Tabelle nur Sätze aus der Zukunft sind BPC-10318

    Affects: BPC Core |

  • Falscher Tooltip bei der Replikationseinstellung "Anpassung Zeitgrenze" BPC-10368

    Affects: BPC Core |

  • Deployment: Bundles Differ erkennt fälschlicherweise einen Unterschied BPC-10388

    Affects: BPC Core |

  • Monitor JSON Export per Default aktivieren BPC-10444

Bugs

  • Einstellbare Monitor-Export Limits unklar und werden beim Export ignoriert BPC-9840

    The configured limit (max. number of records) for XLSX is now taken into account again during data export in the monitor. For CSV and JSON, a limit can now also be configured in the export mask. There is only an upper limit for XLSX, not for other file formats.
    See also monitor:admin/configuration_monitor_export.adoc
    Export of processes

  • Monitor Export: CustomRenderer-Konfiguration wird nur auf String-Daten angewandt und Custom-Renderer "true" verwendet immer defaultRenderer. BPC-9964

    When exporting monitor data with configured custom renderers, the following errors were fixed: - Custom renderers were only applied to data of type String. Now, custom renderers are also applied to the types Integer, Long, and Boolean during export. - For a column, you can set the value true as a custom renderer. In this case, a custom renderer with the same name as the dataIndex is used. If this does not exist, the custom renderer "defaultRenderer" is used. During export, only "defaultRenderer" was used in this case. This has been fixed.

    Affects: Process Monitoring |

  • Module type displayField / displayValue gibts nicht, Instanzen können nicht angelegt werden BPC-10005

    For GUI modules that offer types, components with types can once again be created. Translations for the designation of a type no longer require a "CORE_" prefix. The schema for the translation keys is "<MODULID>_INSTANCE_TYPE_<VALUE>".

    Affects: BPC Core |

  • Fehler im Data Analysis Datensatz Modifikator BPC-10246

    Affects: BPC Core | Data Analysis |

  • UI: ModuleUpdated Event triggers Exception if Security Cockpit was not opened BPC-10273

    Fixing an exception during configuration update when the Security Cockpit has not yet been opened.

    Affects: BPC Core |

  • Security Checks: Datum wird bei Messung nicht erfasst BPC-10315

    Security check measurements now record a timestamp again.

    Affects: BPC Core |

  • Security Cockpit erfasst nicht alle Checks BPC-10320

    Affects: BPC Core |

  • HttpProxyCheck: Zu viele Checks BPC-10340

    The HttpProxySecurityCheck is executed only once per instance.

    Affects: BPC Core |

  • Applikationsbereich mit ViewMode Tabbed zeigt Navigtionsleiste an BPC-10374

    Affects: BPC Core |

  • Analysis: Default-Instance (BPC Default Reports) - Datenmodifikator-Tab disabled vor Speichern BPC-10419

    The default instances in the Analysis module are now correctly initialized, so that the data modifier is immediately available.

    Affects: Data Analysis |

  • Automatic migration aborts if there is an incorrect plugin configuration. BPC-10480

    A faulty plugin configuration is now ignored during migration and logged as a warning.

    Affects: BPC Core |

Documentation

Dependency Updates

  • Update com.networknt:json-schema-validator BPC-10237

    Affects: BPC Core | Forms |

  • Update froala-editor BPC-10330

    Affects: BPC Core |

  • Update org.quartz-scheduler:quartz BPC-10357

    Affects: BPC Core |

  • Update org.slf4j:slf4j-nop BPC-10358

    Affects: BPC Core |

  • Update apache-poi monorepo BPC-10359

    Affects: Process Monitoring |

  • Update ace-builds BPC-10361

    Affects: BPC Core |

  • Update dompurify BPC-10394

    Affects: BPC Core | Forms |

  • Update org.apache.commons:commons-text BPC-10453

    Affects: BPC Core |

  • Update vaadinWebComponents monorepo BPC-10498

    Affects: BPC Core |

  • Update de.virtimo.bpc:nimbusLib BPC-10500

    Affects: BPC Core |

  • Update ace-diff BPC-10501

    Affects: BPC Core |

  • Update software.amazon.awssdk:s3 BPC-10503

    Affects: BPC Core |

Other

  • HTTP Proxy auf Memory Leak prüfen BPC-10484

    Affects: BPC Core |

BPC 5.0.1

Release date: 2025-11-24

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

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 |

New features

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 |

  • Tail Sync Aufrufe protokollieren BPC-9450

    Tail sync runs can now be logged. When logging is enabled, entries are written to the index bpc-tailsync-log. Additionally, the monitor Tail Sync Log Monitor is created. You can find more information about this under Replication.

    Affects: BPC Core | Dokumentation |

  • Marking of changed settings BPC-9973

    The marking of settings that have values differing from the default has been changed.

    Affects: BPC Core |

  • Standardempfänger in Administrator Notification UI BPC-10191

    In the form for sending notifications, the role bpcuser is preselected as the recipient group. It is no longer possible to send a notification without any recipient group.

    Affects: BPC Core |

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

  • Better testability of comboboxes BPC-10196

    The values of the different options in combo boxes are now no longer generally supplemented with a &nbsp;. This makes automated testing of the interfaces easier.

    Affects: BPC Core |

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

    Affects: BPC Core |

  • Code löschen, der als Deprecated und Marked for Removal gekennzeichnet ist BPC-10243

    Code that was marked as deprecated has been removed from BPC.

    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

  • Prozessstarter mit Parametern "startWithContext" und "hidden" auf true lädt den falschen Prozess BPC-10261

    A bug was fixed where an incorrect process starter was displayed when exactly two process starters were configured, one of which is hidden.

    Affects: Process Monitoring |

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

  • Opensearch Exception, wenn bpcCheckColumn einen anderen Typ als boolean hat BPC-9662

  • Keycloak Admin Implementierung kann nur mit einer oidcDiscoveryUrl umgehen BPC-9727

    Affects: BPC Core | Dokumentation |

  • UI: bpcModuleInstanceSelector - Modulkonfigurations-Routing fehlerhaft für BackendConnection BPC-9975

    Affects: BPC Core |

  • Issue URL: https://virtimo.atlassian.net/browse/BPC-10007 BPC-10007

    Buttons that discard local changes now have a better text description.

    Affects: BPC Core |

  • Validierung des Wertebereichs von Number-Variablen BPC-10117

    Changes to the valid value range have a direct impact on the validation of the default value.

    Affects: Data Analysis |

  • Incorrect default value in `KARAF/etc/de.virtimo.bpc.core.security.checks.cfg` BPC-10267

    In the configuration file, the value for deleteCheckResultsOlderThan must be changed from 10 days to 10 days ago.

    Affects: BPC Core | Dokumentation | Karaf |

  • Backend connections cannot be created BPC-10301

    Affects: BPC Core |

  • Fehler nach Upgrade auf OpenSearch 2.15.0 - StatusConsoleListener - java.lang.RuntimePermission - accessUserInformation BPC-9022

    Affects: OpenSearch |

Dependency Updates

  • Update org.quartz-scheduler:quartz BPC-10230

    Affects: BPC Core |

  • Update vaadinWebComponents monorepo BPC-10233

    Affects: BPC Core |

  • Update software.amazon.awssdk:s3 BPC-10236

    Affects: BPC Core |

  • Update froala-editor BPC-10238

    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

  • Aktion für alle Datensätze BPC-1088

    A new action type "bulkAction" has been added to enable actions to be performed for all records. See Bulk Actions

  • Easy linking of monitor actions with IGUASU processors BPC-6260

    If IGUASU is correctly connected via the Flow module, available processors can easily be selected through the configuration interface of the monitor actions.

  • Konfigurationsoberfläche für Identity Provider BPC-7069

    A configuration interface for identity providers is now available.

    Affects: BPC Core |

  • OpenAPI Spezifikation für REST API BPC-8513

    With this update, it is necessary to update the Karaf.

    The BPC provides OpenApi-compliant specification files for our APIs. These can be found under Downloads and can alternatively also be accessed dynamically via the BPC, provided this option is enabled. You can find more information in the section BPC-API.

    Affects: BPC Core | Dokumentation | Forms | Karaf |

  • Security Cockpit BPC-8528

    A Security Cockpit is now offered in the administration area, providing an overview of application security.

    For details, see Security cockpit

    Affects: BPC Core | Dokumentation | Karaf |

  • Ansicht von Online-Users BPC-8724

    A new API endpoint /cxf/bpc-core/collaboration/online-users provides the ability to retrieve all logged-in users. (See Collaboration API.) A new plugin "List Online Users" makes it possible to display all logged-in users in the frontend. (See Online User List))

    Affects: BPC Core | Dokumentation |

  • Einfacher Chat BPC-8725

    A chat plugin has been added. The chat is stateless, so messages are lost when you log out, reload, or close the page. New messages are only received while you are logged in. See also Chat

    Affects: BPC Core | Dokumentation |

  • BPC Deeplinks über LogService BPC-8798

    You can use the Log Service API to be redirected directly to the Log Service configuration or to connected monitors. There are two new LogService endpoints that redirect the user to the corresponding BPC pages when called:

    See also API documentation: Log Service API

    Affects: BPC Core | Dokumentation |

  • Referenz im Auditlog BPC-8824

    It is now possible to specify references to external resources when writing audit information. For example, it is possible to refer to the IGUASU instance that created the entry.

    Affects: BPC Core | Dokumentation |

  • SQL-Query anstelle von Tabellennamen als Quelle für Replikation BPC-9063

    Replication now also supports, as an alternative to existing database tables/views, the direct entry of an SQL query.

    See also sourceCommonTableExpressionQuery in Replication

    Affects: BPC Core | Dokumentation |

  • JSON Schemas entsprechend der LogService Konfiguration BPC-9072

    A JSON schema can now be requested via the Log Service API, which describes the payload for the Log Service. This can be used to perform a validation in advance.

    Affects: BPC Core | Dokumentation |

  • Neuer Setting Type zur Auswahl von Modulinstanzen aus mehreren Modulen (Flow & Backend Connections) BPC-9289

    A new setting has been added that allows you to select the endpoints or processors of Flow & Backend Connections. The selection generates a BPC URL following the pattern bpc://<flow/backendconnection>/<instanceId>/<endpointOrProcessor>. There are separate settings for process actions, process starters, and change state.

  • Revision of the notification system BPC-9463

    Messages can be sent to individual users. Messages can be time-limited. Messages can set a topic. It is possible to delete all messages of a single topic. The status of whether a message has been read is now persisted in the backend, instead of being stored in the browser’s local storage.

    See also Notifications to users and Notification API for changes to the API.

    Affects: BPC Core | Dokumentation |

  • Backend-Connection für FileStorage (S3-kompatibel) BPC-9806

    The backend connections are being extended by a 'file_storage' type to configure connections to AWS S3 and S3-compatible file storage systems.

    Affects: BPC Core | Dokumentation |

  • BPC File Storage API BPC-9807

    A file storage API is provided that enables uploading, downloading, and managing files. These are stored on a file storage configured via a file storage backend connection.

    Affects: BPC Core | Dokumentation |

  • BPC UI zum File Storage listing + upload BPC-9808

    Under Settings→Overview→File Storage, a UI is provided to display, download, and delete files from the file storage. Additionally, files can be uploaded to the file storage.

    Affects: BPC Core | Dokumentation |

  • LogService: File-Storage-Service Integration BPC-9977

    File Storage Integration in the Log Service

    • A new field type file-storage has been added to reference files.

    • Files can be passed to the Log Service either via an existing reference or as a Base64-encoded file. In the latter case, the file is stored by the Log Service in the File Storage.

    • For uploading via a Base64-encoded file, a new configuration is required in the Log Service instance (activation, connection ID, bucket, read and write restriction).

    Further information can be found in File Storage in the Log Service

    Affects: BPC Core | Dokumentation |

  • Automatischer Redirect nach erfolgreicher Anmeldung BPC-10012

    In the frontend, it is possible to redirect to a BPC URL after the login process using the query parameter redirectPostAuth. This works for all OIDC identity providers.

    Affects: BPC Core | Dokumentation |

  • Validation results in the `state` BPC-8481

    Results from the validation are now stored in the state. This means they can also be used for bindings, for example. See also validate

    Affects: Forms |

Improvements

  • IGUASU (Flow) Instanz am Monitor durch "Action Service" BPC-6413

    A new setting has been added that allows you to select the endpoints or processors of Flow & Backend Connections. The selection generates a BPC URL following the schema bpc://<flow/backendconnection>/<instanceId>/<endpointOrProcessor>. There are separate settings for process actions, process starters, and change state. The URL is always uniformly included in the payload during the POST request and passed to the httpProxy endpoint of the monitor. The monitor endpoint uses the Core Action Service to further process the data and ultimately returns the response.

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

  • API Keys wie PW behandeln BPC-8194

    API keys are now masked in the frontend, just like passwords. When viewing existing API keys in settings, is now displayed instead of the API key.

    When a new API key is created, it is displayed once.

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

  • Replication: Bessere Fehlermeldung bei Timeouts BPC-9064

    Affects: BPC Core |

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

  • Editor mit SQL Support BPC-9351

    The setting Common Table Expression Query in replication can now be edited in an editor that supports SQL syntax.

    Affects: BPC Core |

  • OpenSearch: Jede Minute werden Warnungen in der Konsole ausgegeben: QueryGroup _id can't be null, It should be set before accessing it. BPC-9404

    Affects: OpenSearch |

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

  • Erweiterung der Standardrechte für Rolle `bpcuser` BPC-9505

    The standard mapping (Mapping of organizations, roles and rights) for Identity Provider has been adjusted so that every user (via the standard role bpcuser) receives the right to use all standard modules of the BPC. Additionally, the right to view the list of logged-in users is granted.

    This change does not affect existing configurations.

    Affects: BPC Core |

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

  • Log Service Konfiguration in in einzelne Unter-Settings überführen BPC-9598

    Affects: BPC Core |

  • Behandlung von Primärschlüsseln in der Log Service UI BPC-9599

    The setting of the ID columns in the log service configuration interface is now done via combo boxes. The configuration can only be saved if at least one ID column is defined. Additionally, it is checked whether all ID columns are included in the field configuration. If this is not the case, the form is marked as invalid and saving is prevented.

    Affects: BPC Core |

  • HTTP Proxy: Support for OPTIONS and PATCH BPC-9612

    The HTTP proxies configured in BPC now also forward OPTIONS and PATCH requests.

    Affects: BPC Core | Dokumentation |

  • Überarbeitung von Link-Benachrichtigungen BPC-9624

    For notifications, the type 'link' no longer exists; instead, all notifications can now specify links. The field linkData is used for this purpose (previously typeSpecificData). For references to external websites, the url field is still used; for BPC-internal navigation, the hash component of the BPC URL is now specified in the navigation field. You can read more in Notification Types and in Notification API.

    In the notification interface (BPC → Configuration → Overview → Notifications), a link can now also be configured (see Notifications to Users).

    Affects: BPC Core | Dokumentation |

  • Submit verbessern BPC-9636

    The Submit has been revised. Some changes are now required here. See Migration from BPC 4.* to BPC 5.0. The structure and possible actions of the messages have been adjusted.

    Affects: Dokumentation | Forms |

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

  • Names of groups to settings BPC-9738

    There are now multilingual labels on groups of settings.

  • Log Service setting renamed to "Maintenance mode" BPC-9752

    Log services can now be (de)activated individually. The term maintenance mode was misleading in this 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 |

  • Extension of metadata for compact Configuration API BPC-9937

    The modelVersion is now also displayed when the caller does not have admin rights.

    Affects: BPC Core |

  • Various improvements to the Forms module BPC-9946

    For the Forms module, a migration is required between BPC 4.x and BPC 5. Information about this can be found here.

    Affects: Dokumentation | Forms |

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

  • Design Update BPC-9974

    The appearance of BPC has been updated.

  • ServiceNotFoundException bei Auswahl einer Backend Connection für Prozess Starter BPC-9995

    Affects: BPC Core |

  • Klassen für Menu-Buttons für geringeren Pfeil-Abstand BPC-10060

    Buttons can now use the classes arrow-spacing-sm (small) and arrow-spacing-xs (extra small) to reduce the spacing of the arrow.

    Affects:

  • Backend Bundles sollten keine feature.xml enthalten BPC-10115

    For BPC module developers:

    If a feature/feature.xml is used in the module sources, please remove the following resource block from the pom.xml:

    <resources>
        ...
        <resource>
            <directory>src/main/feature</directory>
            <filtering>true</filtering>
            <targetPath>${project.build.directory}/feature</targetPath>
        </resource>
    </resources>

    This entry defined the feature.xml as a resource and embedded it into the JAR file. This is not necessary.

    However, the maven-resources-plugin still needs to be used to replace placeholders in the feature.xml.

    To do this, add the following plugin call:

    <plugins>
        <!-- Replace the placeholders in the feature.xml file -->
        <!-- Documentation : https://maven.apache.org/plugins/maven-resources-plugin/ [https://maven.apache.org/plugins/maven-resources-plugin/] -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>${maven-resources-plugin.version}</version>
            <executions>
                <execution>
                    <id>copy-feature-file</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/feature</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/feature</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        ...
    </plugins>
  • Tool zur Migration von Indices für OpenSearch 3.2 (BPC 5.0.0) BPC-10120

    For the migration of installations that were already using Elasticsearch, it may be necessary to perform an additional migration step when switching to OpenSearch 3. A corresponding tool is provided for this purpose. For further details, see Migration from BPC 4.* to BPC 5.0

    Affects: OpenSearch |

  • BPC Log Index CleanUp: Nach Start des Karaf läuft die erste Säuberung erst nach 60 Minuten. BPC-10168

    Index cleanups are performed 60 seconds after BPC starts, and then run at the configured interval.

    Affects: BPC Core |

  • 0 Label für CustomRenderer im Monitor BPC-10170

    It is now possible to use the value 0 in the valueMap of a custom renderer and to see it as a label in the monitor. Previously, values of 0 were not displayed.

    Affects: Process Monitoring |

  • Notification icon can be placed as a plugin BPC-8064

    The symbol for accessing notifications and displaying the number of unread notifications is now a plugin. Therefore, like other plugins, it can now be placed in various locations in the interface.

    Affects: BPC Core | Dokumentation |

  • Benachrichtigung nur an eingeloggte Nutzer BPC-8097

    For notifications, there is now an additional option to send the message only to logged-in users. The filters by roles and organizations remain active. See also Notifications. For notifications with the recipient group "Users," the recipients are no longer displayed.

    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 |

  • Setting identityProvider_ussUrl removed BPC-9046

    The unused setting identityProvider_ussUrl has been removed.

    Affects: BPC Core | Dokumentation |

  • LogService - Validierung gegen JSON Schema BPC-9071

    A JSON schema validation of the data to be written can be activated on each Log Service component. The default setting is 'Off'. The JSON schema is automatically generated based on the configured Keys and Fields and can be retrieved if necessary via the Log Service endpoint.

    Affects: BPC Core | Dokumentation |

  • Event Erstellung von der veralteten Dictionary auf Map umstellen BPC-9483

    When handling events, Map should be used instead of Dictionary.

    Affects: BPC Core |

Security

  • Bei den Modul- und Lizenz-Uploads keine Dateinamen mit Pfadangaben annehmen BPC-9362

    Any path specifications are ignored to prevent path traversal attacks.

    Affects: BPC Core |

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

  • Strikte Konfiguration von jdk.tls.disabledAlgorithms in custom.java.security BPC-10167

    If you use the file custom.java.security, you should adjust the property jdk.tls.disabledAlgorithms to make the TLS configuration stricter and therefore more secure.

    jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, DTLSv1.0, RC4, DES, \
        MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
        ECDH, TLS_RSA_*, rsa_pkcs1_sha1 usage HandshakeSignature, \
        ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature, \
        TLSv1.2, X448, secp521r1, SHA1

    Affects: Dokumentation |

Documentation

Dependency Updates

  • Update org.mariadb.jdbc:mariadb-java-client BPC-8738

    Affects: BPC Core |

  • Java JDK 21 BPC-9312

    The use of Java 21 is now necessary.

    Affects:

  • Update vaadinWebComponents monorepo BPC-9558

    Affects: BPC Core |

  • 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 de.virtimo.bpc:nimbusLib BPC-9764

    Affects: BPC Core |

  • Update CXF BPC-9852

    Affects: BPC Core | Karaf |

  • Update software.amazon.awssdk:s3 BPC-9897

    Affects: BPC Core |

  • 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>
  • Update com.networknt:json-schema-validator BPC-10032

    Affects: BPC Core |

  • Update dompurify BPC-10086

    Affects: BPC Core | Forms |

  • Update graaljs.version BPC-10206

    Affects: Data Analysis |

  • Update ace-builds BPC-10213

    Affects: BPC Core |

  • Update ExtJS BPC-9567

    The core is now no longer transpiled into old ECMAScript and no polyfills are added anymore. This enables support for newer language features. This means that ExtJS packages should also have the following content in their packages/local/PACKAGENAME/package.json:

    {
      "...",
      "compressor": {
        "polyfills": "none"
      },
      "language": {
        "js": {
          "output": "ANY"
        }
      }

Other

  • Support for INUBIT Identity Provider removed BPC-9482

    INUBIT is no longer supported as an Identity Provider.

    Affects: BPC Core | Dokumentation |

  • OpenAPI Spezifikation für Monitor Backend Services (Monitor Aktion, Prozess Starter, Change State, …​) BPC-9553

  • Forms Renderer as a separate component BPC-9709

    The renderer of the Forms module is now no longer included in bpc-fe-forms, but is instead provided separately as bpc-forms-renderer. This makes it possible to update the renderer independently. When a BPC update occurs, the URL of the renderer in the Forms module is automatically changed to bpc-forms-renderer/index.html.

    The renderer is now available via Downloads.

    Affects: BPC Core | Dokumentation | Forms | Karaf |

  • Element-Typ taskPanel und Monitor Settings function_interactionColumn und function_interactionFormId entfernen BPC-9961

    The detail view element type "taskPanel" has been removed along with the associated settings function_interactionColumn and function_interactionFormId.

  • LogService backward compatibility BPC-10171

    For a transitional period, the use of childs instead of children is still permitted. This does not affect the data structure when reading data.

    Affects: BPC Core | Dokumentation |