Changelog

This page lists all the changes included in the releases of each version.

There are separate changelogs for administrators and developers (Administration Changelog and Developer Changelog). These are a subset of this changelog, containing entries that are relevant only to those groups.

For some versions, an update to individual system components (Karaf, OpenSearch) or other parts is required. The Update Guide describes how these can be updated.

Explanations of the Changelog

Within each version, changes are grouped into different categories:

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

    Read the notes on the breaking change carefully.

    Entries in this category may also appear in one of the other categories.

  • Recommended Adjustments
    Instructions for the BPC update, as well as the consequences of following or disregarding the instructions.

    Entries in this category may also appear in one of the other categories.

  • New Features
    Features newly added in this version.

  • Improvements
    Improvements to existing features.

  • Security
    Changes that address potential IT security risks in BPC or further enhance the security level.

  • Bugs
    Fixes for various types of bugs.

  • Documentation
    Changes or additions to the product documentation.

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

  • Miscellaneous
    Changes that do not fall into any other category.

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

BPC 5.0.8

Release Date: 2026-06-29

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

New Features

  • Transfer CSS Variables from the BPC Theme to the BPC Form Renderer BPC-7448

    The base colors from the BPC frontend theme are now automatically passed to the form renderer. See Renderer Style.

    Re: Forms |

  • CSS Classes for Forms BPC-10702

    CSS can now be used much more precisely in the Forms context. Components now have standard CSS classes, and additional ones can be defined. See CSS Classes.

    Re: Forms |

  • Make Label bindable BPC-10704

    The Label is now bindable for all components. See Label.

    Re: Forms |

Improvements

  • BPC Analysis: Securing Data Source Endpoints BPC-10313

    Flow / Backend Connection ” has been added as a possible data source in the Data Set Editor. Here, you can select an existing connection from Backend Connections (HTTP Proxy) or Flow (IGUASU / INUBIT). See Dataset Editor

    Affects: Data Analysis |

  • Custom Host Setting for Google Cloud File Storage Connections BPC-10465

    Google Cloud File Storage connections can optionally set a custom host to use a different API-compatible Service.

    Re: BPC Core |

  • Display of Data Management Bundle in module list BPC-10867

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

  • Identity Management UI - Update on Changes BPC-10999

    When creating resources, the corresponding lists and combo box selections are updated

    Re: BPC Core |

  • BPC Operator: Ability to install DB drivers via environment variables BPC-11064

    Subject: BPC Core | Karaf |

  • Automatic AWS Authentication via Environment Variables BPC-11075

    S3 file storage backend Connections can now be configured using the "Automatic AWS Authentication" setting. This automatically reads access credentials from the pod or system.

    In addition, all file storage backend connections now include the "Default Bucket" setting, which is selected when no bucket is specified in API calls or in the log service. Furthermore, this default bucket is selected for connection testing if it is configured.

    Subject: BPC Core |

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

  • WebTSM Status Widget Configuration BPC-11018

    Subject: WebTSM |

  • Monitor Views No Longer Work After BPC 5 Migration BPC-11049

    Monitor views created with a very old version of BPC were not loading correctly. The internal format is now automatically updated to the latest version.

  • OpenSearch does not start on Windows BPC-11105

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

  • Bug fix in the INUBIT workflow for status changes BPC-11118

    The tablePrefix was not read correctly from metadata.

  • Displaying a file in ChildLog does not work BPC-11121

    When using the INUBIT Workflow Package, an error occurred if the user attempted to view a file attachment directly in the monitor. File downloads were not affected.

  • 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 Resource were also affected.

    This issue has been resolved.

    Affects: BPC Core |

  • WebTSM Viewer - Edit value does not work BPC-11165

    Affects: WebTSM |

  • WebTSM Viewer - Start Date Field Not Visible BPC-11174

    Related to: WebTSM |

  • Fix combo box multiselect value in hardcoded case BPC-11177

    Previously, a value for a combobox with multiselect could only be set via binding. Now it is also possible to specify an array directly in the value.

    Re: Forms |

  • Direct Access to User Management BPC-11180

    The page Selective Access to Administrative Interfaces has been added to the documentation with links to the user, organization, role, and permissions overviews.

    An additional alias has been set for the user overview to ensure compatibility with previous versions.

    Subject: BPC Core |

Documentation

Internal Dependencies / Dependency Updates

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 |

  • Textarea autogrow BPC-10703

    The " autoGrow " option is now available for textarea.

    Re: Forms |

Improvements

  • Editing the endpoint in ModuleInstances settings should not deselect the selection BPC-11089

    The issue where the selection is lost when editing the endpoint field (for HTTP proxies or IGUASU processors) has now been resolved.

    Re: BPC Core |

  • Include inubit_dbTablePrefix as a parameter for the download endpoint BPC-11090

    When migrating BPC 4 settings, the inubit_dbTablePrefix is now set httpProxy_referenceEndpoint as a URL parameter.

    This step is only performed when migrating from BPC 4 to BPC >= 5.0.7.

    Affects: BPC Core |

Bugs

  • Monitor actions cannot be executed BPC-11062

    The error occurred when the primary key field on the monitor contained a field name with mixed case. In this case, monitor actions could not be executed because the associated data could not be found.

    Affects: Process Monitoring |

  • Forms cannot be scrolled BPC-10986

    fieldset now automatically insert scroll bars. Previously, scrollbars were automatically set only for container.

    Re: Forms |

  • The "linkedModules" setting should tolerate errors BPC-11065

    An invalid value in the " linkedModules " setting no longer prevents the picker from opening.

    Affects: BPC Core |

  • Query parameters in the Monitor download URL are not set correctly BPC-10903

    Endpoints in the Monitor, as well as HTTP proxy URLs, now support additional query parameters.

    This can be useful, for example, to httpProxy_referenceEndpoint pass additional parameters to the INUBIT workflow.

Documentation

Internal Dependencies / Dependency Updates

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

New Features

  • Keycloak: Creating and Assigning Roles BPC-10719

    If Keycloak is configured as an identity provider, users can now be assigned and removed from new and existing roles in the BPC frontend. When creating new roles, they are created as realm or client roles, depending on the configuration. When managing users, the required Keycloak roles must be taken into account .

    Subject: BPC Core |

  • File Storage API: Creating File Storage Entries with Cloud Files That Have Not Yet Been Uploaded BPC-10857

    The File Storage API can now create entries by passing a cloud reference, even if the referenced file does not yet exist. To do this, the query parameter ` check-file ` must be passed with the value ` false ` to the endpoint POST /cxf/bpc-core/file-storage/existing-file. This flag can also be included when passing files as a cloud reference in the Log Service.

    This can be useful if you plan to upload the file to the cloud provider at a later time or asynchronously.

    Further information can be found under “POST in the Log Service with Cloud Storage Reference” and at File Storage API.

    Subject: BPC Core |

Improvements

  • Cell Enlargement with Smart Space Allocation in the Dashboard BPC-9733

    New window for resolving conflicts when enlarging cells in the table layout, where decisions can be made regarding the removal, movement, and resizing of widgets.

  • Follow-Up: 400 Bad Request response in non-be-core APIs BPC-10015

    Similar to BPC-9821, in addition to the BPC core, a Bad Request (400)error is now returned in the REST endpoints of the corresponding modules if the HTTP body cannot be successfully deserialized.

  • Replication Jobs Frontend: Update enabled/disabled widget icons when updating jobs/records BPC-10299

    The state of the action buttons on replication jobs has been corrected. In some cases, changes to replication jobs did not affect the availability of functions.

    Affects: BPC Core |

  • Incorrect cache configuration entry removed BPC-10597

    The cache configuration was accessing Services that no longer exist, which was causing errors. These references have been removed.

    Re: WebTSM |

  • Incorrectly Displayed Navigation When Jumping Between Modules BPC-10733

    In some cases, the navigation display was not updated correctly when modules were called up.

    Re: BPC Core |

  • Monitor Export: Include Filters and Views in Child Export BPC-10744

    When exporting child data via the monitor, only those children of the parent entries that are visible according to the configured filters and views are exported.

  • Manage View Menu with empty entry BPC-10791

    The menu for Monitor Views no longer displays an empty placeholder when no view is selected.

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

  • Monitor API no longer adds the internal _id field to the data BPC-10810

    Previously, the OpenSearch internal field _id was always added to the Monitor data. This is an unexpected extension of the actual document.

    If this field is used in the monitor configuration, it should be changed to the correct primary key of the data. When using the Log Service, it can be found at https://docs.Virtimo.net/de/BPC-docs/5.0/core/admin/modules/log_service.html#parentKeyFields. When using replication, see https://docs.Virtimo.net/de/BPC-docs/5.0/core/admin/modules/replication.html#idColumns.

    Subject: Process Monitoring |

  • Karaf startup made more robust BPC-10853

    Under certain circumstances, an error Failed to process event could occur when starting Karaf.

    Subject: BPC Core |

  • Update OpenSearch BPC-10859

    Update OpenSearch according to the update instructions

  • Monitor Export: Warnings and errors can overload the log BPC-10899

    During export, duplicate warnings and errors are logged only once and not for each exported entry

  • Revision of User Interface Texts BPC-10913

    In WebTSM, the user interface texts were revised to ensure consistent, uniform support for multiple languages.

    Re: WebTSM |

  • Performance optimization in WebTSM Manager BPC-10941

    Re: WebTSM |

  • Karaf startup optimized BPC-10952

    Affects: Karaf |

  • Backup jobs may not start under certain circumstances BPC-10980

    Under certain circumstances, the Backup Manager might fail to start when Karaf is launched due to an error.

    Subject: BPC Core |

  • Aligned the look and feel of tables in WebTSM with the BPC standard BPC-11015

    Subject: WebTSM |

  • Web TSM: Truncated Field Labels BPC-11016

    The display of text in the user interface has been revised so that text is fully visible.

    Re: WebTSM |

  • Web TSM: Remove the interface for translation texts BPC-11019

    Subject: WebTSM |

  • Preventing Incorrect Login State Due to Asset Fallback to Root Path (/) BPC-11045

    If, when loading the BPC Web GUI, the browser accessed the index page due to incorrect URLs for resources (images, scripts, stylesheets, etc.), the browser would load the index page, which could lead to problems verifying the login. This could only occur with OIDC-based identity providers.

    A possible cause could be, for example, a faulty theme.

    Affects: BPC Core |

Security

  • Hardening the SSH interface (Port 8101) to secure the Karaf console BPC-10927

    The configuration org.apache.karaf.shell.cfg in Karaf has been revised.

    Host Key & Signatures: Switch to RSA 4096 and modern SHA-2 algorithms (rsa-sha2-512/256); Disabling insecure NIST curves (ECDSA).

    Protocol hardening: Restriction to secure key exchange schemes (Curve25519), AES-GCM encryption, and Encrypt-then-MAC (EtM).

    Important —If Karaf is not fully updated, but only the configuration file is applied, then the file etc/host.key must be deleted.

    Affects: Karaf |

Bugs

  • Regression: Process action ID is no longer transmitted when a form is submitted BPC-10907

    The form submission payload now once again contains the actionConfig and thus also the process action ID

    Re: Forms |

  • Forms Renderer URL 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 |

  • Monitor widget: Filter is lost when switching pages BPC-10579

    Subject: Process Monitoring |

  • Connection Issues in HttpProxy BPC-10666

    An issue has been resolved where large amounts of data were only partially transferred in HttpProxy.

    Re: BPC Core |

  • Updating bpc-fe-core.war does not result in an update to index.jsp BPC-10706

    After a BPC update to version 5.0.4 or 5.0.5, the error " HTTP ERROR 500 javax.servlet.ServletException: javax servlet.ServletException: java lang.NoSuchMethodError: 'java lang.String de.virtimo.bpc.api.service.CoreBundleService.getUserFlowIdentityProviderLoginRedirectUrl(javax.servlet.http.HttpServletRequest)' " could occur when accessing the BPC interface. This error has now been fixed.

    The error occurred when a part of the interface (index.jsp) was not directly updated by the update and an OIDC/Karaf Identity Provider was being used.

    If an update to this version is not possible, the error can be resolved by deleting the directory <BPC-INSTALL-DIR>/karaf/data/pax-web/ and restarting Apache Karaf.

    Affects: BPC Core |

  • Demo module code preview not working BPC-10743

    Subject:

  • Flow: IGUASU service URL with HTML response prevents processors from being displayed (Ext.decode error) BPC-10788

    Fix: Secure decoding prevents the loading of processors in monitor settings from failing

    Subject: BPC Core |

  • FileStorage - File upload is not scrollable BPC-10815

    Affects: BPC Core |

  • Radiogroup with hard-coded preselection crashes the application BPC-10835

    Radiogroups caused the application to crash on startup if a hard-coded value was used instead of data binding. This issue has been resolved.

    Re: Forms |

  • "dataLoadInitial" in a process starter causes the BPC interface to crash BPC-10847

  • The filterRespectOtherColumns function does not pass timezoneName/Offset—resulting in incorrect results when filtering on a date field BPC-10854

  • Fixed licensing error for licenses without flow instances BPC-10896

    Affects: BPC Core |

  • OpenSearch exception in the WebTSM module: too_many_buckets_exception BPC-10930

    Affects: WebTSM |

  • Forms in inline detail view disappear upon reload BPC-10988

    Re: Forms |

  • Forms does not populate the detail view BPC-10989

    Affects: Forms |

  • JSON Picker - Tooltip not working when filter list is empty BPC-10995

    Affects: Process Monitoring |

  • Failure Response messages are not displayed in Process Starter BPC-11010

    Error messages are now displayed correctly again when starting processes. File downloads via Action Responses are working again. The issue with loading value lists for Process Starter combo boxes has been resolved. The " success`" field in the response now supports regular Booleans (`true/false) as well as strings ("true"/"false")

  • Storage API: GET endpoint filter/query cannot search by value and additionalProperties BPC-9846

    The Storage API’s GET endpoint can now also filter by value and customFields using the parameters query and filter. To filter by subfields, use dot-separated syntax: value.name:Alicia filters entries where the name field in value has the value Alicia.

    Since Storage indexes do not contain timestamp fields, the parameters timezoneOffset and timezoneName have been removed from the GET endpoint.

    For BPC Module Developers If you use the ` StorageService class and its ` `getItems functions in your BPC modules, please note that these have been marked as deprecated and have been replaced with a variant that does not include the ` `timeZoneId` Parameter.

    Affects: BPC Core |

Documentation

  • Developer Documentation: Structuring Navigation BPC-9041

    The developer documentation has been restructured: Developer Documentation

  • Documenting the Monitor’s Caching Mechanism BPC-10082

    The monitor’s caching mechanism (state in local storage) and its interaction with the monitor settings have been described in detail.

    Subject: Documentation |

  • Documentation: No BPC version case distinction for old versions in BPC5 documentation BPC-10263

  • Revise documentation for adjustUpperDateLimitInSeconds BPC-10490

    Correction to the Replication documentation regarding the Replication_AdjustUpperDateLimitInSeconds setting, which is not limited to specific database management systems.

  • Update documentation on monitor views BPC-10792

    The documentation on monitor views has been updated. See Manage Process Views

    Subject: Documentation |

Internal Dependencies / Dependency Updates

Miscellaneous

  • WebTSM Manager: Possible optimization due to volume limits BPC-10519

    • Performance improved: Detail aggregation for time series is now loaded only on the first page

    • Evaluation of setting search_searchWithCommit (trigger search only by pressing Enter)

    • New setting attributes_maxInlineValues (limiting inline values, moving them to a separate search window)

    • Attribute values displayed as a collapsible tree

    • Note moved to the header when there are too many attributes

    • Faster processing through optimized access to attribute and value names

    Affects: WebTSM |

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 need to 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 OR as a link and did not set a base filter, all records were displayed despite the filter rules.

    In the case of 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 data record is visible if it meets 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

New Features

  • Update OpenSearch User/Role for scraping Prometheus metrics and the keystore/truststore BPC-10736

    • The virtimo_keystore.jks and virtimo_truststore.jks have been regenerated.

    • The key size has been increased from 2048 bits to 4096 bits.

    • The certificates contained in the keystore (karaf, opensearch_bpc, opensearch_node, prometheus_scraper) now also include the root CA in their certificate chain.

    • The prometheus_scraper certificate has been added (for accessing OpenSearch Prometheus metrics via mTLS).

    • The prometheus_scraper certificate sets the CN to prometheus-scraper

    • OpenSearch is now configured so that the user prometheus-scraper is assigned the 'prometheus_metrics' role.

    • The new OpenSearch role 'prometheus_metrics' has only the necessary permissions to access the https://example.com:9200/_prometheus/metrics endpoint.

Improvements

  • JSON Schema for function_gridMultipleViewsConfig BPC-7547

    A JSON schema has been defined for the function_gridMultipleViewsConfig monitor setting. This provides guidance during configuration and helps prevent incorrect configurations.

  • Simultaneous import of multiple deployment files BPC-10585

    Re: BPC Core |

  • Replication: Endless loop detected due to exception BPC-10725

    Subject: BPC Core |

  • WebTSM bundle startup with an exception indicating that the time series jobs could not be started BPC-10731

    Affects: BPC Core |

Bugs

  • Tailsync causes connection issues BPC-10765

    The database connection was not closed correctly during Tailsync. This causes all connections in the connection pool to become blocked over time.

    Re: BPC Core |

  • Process Actions Response does not return an error message on parse errors. BPC-8443

  • Monitor CSS rule changes the layout of all column headers BPC-10670

    Column headers and, in some cases, content were unintentionally centered. The background of the filters on checkbox columns was sometimes not displayed correctly.

  • 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 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 data record is visible if it meets 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

  • Missing translations for "MONITOR_ERROR_RETRIEVING_DATA" BPC-10766

    Subject: Process Monitoring |

Documentation

Internal Dependencies / Dependency Updates

BPC 5.0.4

Release Date: 2026-03-16

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

Update to the internal configuration

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 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 to perform an update.

  • Refactoring OIDC/PKCE Handshake: Switchover to stateless (encrypted cookie) to prevent DoS attacks 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, subsequent versions were to define finely granular permissions 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 recreated.

New Features

  • Display JSON files formatted in child logs BPC-10378

    Affects: Process Monitoring |

  • Hakom Cloud integration BPC-10476

    • Basic Authentication
      Please enable Basic Authentication support according to the HAKOM PowerTSM documentation. The username (username) and password (password) are stored in the "module_apis" setting of the Time Series Management module (see example). In addition, the authentication method (authenticationMethod) should be set to Basic Auth. This is also the default if the " authenticationMethod " field does not exist.

      Basic Auth Example
      {
          "webtsm01": {
              "application": "TSM",
              ...
              "authenticationMethod": "Basic",
              "basicAuth": {
                  "username": "virtimo",
                  "password": "<ein_sehr_sicheres_passwort>"
              },
              ...
          }
      }
    • API Keys Authentication
      Please first enable API key support and generate an API key according to the HAKOM PowerTSM documentation. Then enter this generated API key (apiKey) in the "module_apis" setting of the Time Series Management module (see example). In addition, the authentication method (authenticationMethod) must be changed to ApiKey Auth.

      API Key Auth Example
      {
          "webtsm01": {
              "application": "TSM",
              ...
              "authenticationMethod": "ApiKey",
              "apiKeyAuth": {
                  "apiKey": "<der_vom_webtsm_erzeugte_api_key>"
              },
              ...
          }
      }
    • Token Authentication
      Please enable token authentication according to the HAKOM PowerTSM documentation. Currently, only the "client_credentials" grant type is supported, which requires the client ID and client secret. Enter these, along with the scope and access token URL of the identity provider you are using, in the "module_apis" setting of the Time Series Management module. In addition, the authentication method (authenticationMethod) must be changed to Token Auth.

      Token Auth example
      {
          "webtsm01": {
              "application": "TSM",
              ...
              "authenticationMethod": "Token",
              "tokenAuth": {
                  "accessTokenUrl": "https://xyz.virtimo.cloud/auth/realms/tsm/protocol/openid-connect/token",
                  "clientID": "webtsm",
                  "clientSecret": "<das_zugehoerige_client_secret>",
                  "scope": "openid profile email"
              },
              ...
          }
      }

    Affects: BPC Core | WebTSM |

  • File Storage: Creating a File Reference via a Reference to the Cloud Service BPC-10506

    In addition to direct uploads, files in File Storage can now also be created via a reference to a file in the cloud storage provider. A new endpoint is provided for this purpose in the File Storage API. In the Log Service, files (for fields of type file-storage) can also be transmitted as file references to the cloud storage provider.

    In addition, the content type is set during upload and download for all supported cloud providers.

    Subject: BPC Core | Documentation |

  • File Storage Backend Connections: Option to Route Downloads Through the BPC BPC-10541

    File Storage Backend Connections can now be configured to route downloads through the BPC. See core:/admin/modules/backend_connections.adoc#file_storage. Downloads via the File Storage Service are now documented in the audit log.

    Affects: BPC Core | Documentation |

  • 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. For more details, see 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 Feature 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 recreated.

Improvements

  • Additional HTTP Header "X-Correlation-ID" BPC-10509

    Using the WebTSM setting module_apis, you can define additional HTTP headers that will then be set with every WebTSM API call. To do this, enter the HTTP headers to be set in the field additionalHttpHeaders (see example). Variables, such as the one shown below ${config.de.virtimo.bpc.core.karaf.uuid}, can be set to the same values as those used with the BPC HTTP Proxy.

    {
      "testserver": {
        "cache_refresh_full_cron_expression": "0 0/4 * * * ?",
        "doNotDeleteId": "116428970808333",
        "password": "******",
        "application": "TSM",
        "cache_refresh": 5,
        "url": "http://xyz:8050/",
        "username": "virtimo",
        "additionalHttpHeaders": {
          "X-Correlation-ID": "Beispieltext - ${config.de.virtimo.bpc.core.karaf.uuid}"
        }
      }
    }

    Re: BPC Core | WebTSM |

  • File Download Monitor 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 named “ fileConfig ” is created there, which defines the filename column and the content-type column:

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

    • Columns of the “Attachment Column” type 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 had provided the setting column_mimetype to specify the column name, which refers to the content type of the files. 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.

  • Window resizes in the dashboard should not display unsaved changes BPC-8057

    Subject: Process Dashboard |

  • Sharing links too long BPC-10262

    Sharing links for Monitor processes have been shortened. The link now only contains information about the active view, filters, and sorters.

  • Include process context when the process starter is called via an action BPC-10275

  • Ability to delete forms in the Forms Repo BPC-10298

    Form versions and forms can now be deleted in the Forms Repository.

    Re: Forms |

  • "disabled": Make "true" functional for all Forms components (including table columns/cells) BPC-10300

    "disabled " and "readOnly " are available for table columns. "disabled," " readOnly," and "required " are now only inherited for configuration in group components. Attributes are not overwritten in this process.

    Subject: Documentation | Forms |

  • Text in the user interface adapted for multilingual support BPC-10436

    Subject: Data Analysis |

  • Add default value for sorting groups in the process monitor BPC-10485

    You can now configure the initial sort order for groups in the monitor settings. See setting column_groupDirection

  • 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 has been added to the result set since the date of the last synchronization is taken into account.

    2. Time of Full Update
      Until now, the full update of the time series cache was 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, you can enter a cron expression in the format used by the Quartz scheduler. For example, the time series cache can be rebuilt every Sunday at 9:00 PM (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, all time series were read via a SINGLE request to WebTSM and stored locally in BPC (cache). This option remains the default for the full update. However, this can now be switched to a page-by-page or block-by-block read of the time series. To do this, set the mode via the module_apis setting cache_refresh_full_default_mode: 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 selected as the mode.

      • timeout (60) = This value was already in use. It is the query timeout used only for the full update during the SINGLE 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 have a negative impact on performance.

        The values in parentheses are the default settings

    Affects: BPC Core |

  • Refactoring OIDC/PKCE Handshake: Switch to Stateless (Encrypted Cookie) to Prevent DoS 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 |

  • Modify WebTSM code so that the HTTP proxy is no longer called from the frontend BPC-10557

    Only the WebTSM backend communicates directly with Hakom.

    The WebTSM front end now works exclusively with the WebTSM back end. This means that a "HTTP Proxy" type backend Connection is no longer required, and the "tsm_backendConnectionId" setting for the WebTSM Viewer components has been removed.

    Re: WebTSM |

  • Filter fallback values from the status combo box during a process status change BPC-10559

    If "useRendererValues" is true during a process status change, the fallback values "" and "*" are no longer displayed in the status combo box.

  • 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 have been consolidated for download via an HTTP proxy 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.

  • Multilingual Support in Forms BPC-10598

    Multilingual support has been improved. The languages cs, da, de, en, es, fi, fr, it, js, ko, nl, pt, ru—in accordance with the ISO 639-1 language codes—are now available. If a language is unavailable or incomplete, English is used instead.

    Re: Forms |

  • "Show Module" does not always work in the WebTSM frontend BPC-10606

  • Monitor Export: Start download immediately for streamable formats BPC-10631

  • Improved validation of index names BPC-10633

    Affects: BPC Core |

  • WebTSM: Predefined Basic Auth header value can be removed BPC-10651

    Please remove the values with the key "authorization". This value contains the username and password in plain text (Base64-encoded) and is no longer needed.

    Re: WebTSM |

  • Fallback for instance type translations in the InstanceGrid BPC-10654

    Subject: BPC Core |

  • 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" 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, future versions were to define finely granular permissions at the endpoints instead of the “webtsm_edit” permission.

    Subject: WebTSM |

  • Record ID as data-testid in the DOM BPC-10662

    This change allows for better automated testing of tables in the GUI.

    Re: BPC Core |

  • Typo in the replication editor BPC-10664

    Subject: BPC Core |

  • Missing language keys in en.json BPC-10695

    Subject: BPC Core |

  • BpcCommon.Api.getCsrfToken should only return a copy of the object BPC-10717

    Affects: BPC Core |

  • Suppress the browser’s Basic Auth pop-up for Flow requests BPC-10727

    Subject: BPC Core | Documentation |

  • Improve theming of calendar options BPC-9516

    Affects:

  • Remove baseUrl setting BPC-9924

    The setting baseUrl is no longer used, 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 |

  • "Non-default" marker in bpcConfigSettings is too large BPC-10307

    Re: BPC Core |

  • Setting groups forced by the Core are not merged with setting groups from the module BPC-10409

    Duplicate setting groups are merged into a single group

    Affects: BPC Core |

Security

  • TSM login credentials visible to all WebTSM users BPC-10545

  • HTTP Proxy API: Error responses do not include the target system’s URL. BPC-10607

    Affects: BPC Core |

  • Findings in: opensearch-common:3.2.0 BPC-10352

Bugs

  • "tabbed" view mode does not display tabs BPC-10624

    Affects: BPC Core |

  • Process Actions Response does not display an error message when a parse error occurs. BPC-8443

  • Monitor Export: Columns with the same dataIndex but different renderers are exported correctly BPC-9725

    If multiple columns are configured in a monitor instance that use the same dataIndex but are displayed differently by custom renderers, this is now correctly handled during export. In addition, mappings for empty values and fallback values in custom renderers are taken into account during export. (Entries "!" and "*")

  • OpenAPI schema documentation incorrect BPC-9803

    An error in schema generation for some DTO classes has been fixed.

    Affects: BPC Core |

  • Process Monitor - Data filters are automatically applied to child data during export BPC-10018

    When exporting child data via a monitor, the " `data_filter`" setting is applied to the corresponding parent entries.

    Subject: Process Monitoring |

  • New installation: Indexes missing BPC-10045

  • BPC DetailView pop-up process details are rendered empty if the header was hidden beforehand BPC-10180

    Subject: Process Monitoring |

  • Dynamiclist filters with template columns do not work BPC-10241

    Filtering by column is now possible again. An additional option has also been added to set a different template for the filter. This may be necessary if the column template accesses fields other than the one specified in dataIndex.

  • Process Monitor / FlexTable: Plugin assignment fails if the monitor ID is configured as a string instead of a numeric value BPC-10276

    targetModule is automatically converted to a string in the viewConfiguration

    Re: BPC Core |

  • Form in the Process Monitor pop-up view does not scale to fill the window BPC-10326

  • Number filter is not applied when jumping between modules BPC-10381

    Subject: Process Monitoring |

  • Default settings - group name - "config" BPC-10402

    Safeguard for BPCCommon.Api.getTranslation: If a translation incorrectly returns an object (e.g., for "config"), the system now falls back to the key string to avoid [object Object].

    Re: BPC Core |

  • preselectState "_first" if "useDistinctValues" is false BPC-10417

    When the process status changes, "preselectState": "_first" is now also possible if "useDistinctValues" is false and custom states are used. See also Process Status Change Configuration

  • Fixed an error retrieving roles, permissions, and organizations during login in the BPC frontend BPC-10443

    Re: BPC Core |

  • Bug fix in the Process Monitor: DynamicList filters in integer fields (Integer, Long) are working again BPC-10596

  • Layout error in checkbox group BPC-10600

    The spacing issue with checkboxes within a checkbox group has been resolved.

    Affects: Forms |

  • Monitor: Fixed an issue retrieving all distinct values for filtering in fields with numeric values BPC-10612

    Affects: Process Monitoring |

  • Monitor: Exporting Child Data Exports All Child Columns BPC-10628

    Previously, only columns in the child data were exported for which there were corresponding columns in the parent monitor using a dataIndex with the same name.

  • Process Monitor: Column filters correctly account for global filter BPC-10647

  • Monitor Export: Export fails if instance_data_view_limit < scroll-batch-size BPC-10665

    An export in the Process Monitor now works even if instance_data_view_limit or monitor_data_view_limit is less than 2500.

  • Monitor configuration panel hangs due to missing Column_Configs BPC-8191

Documentation

Internal Dependencies / Dependency Updates

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

  • Implementation of a "Copy to Clipboard" feature for Flow URLs in Forms BPC-10295

    The URL to Flowendpoints can be copied directly from the Flow Manager to the clipboard and reused, for example, for Forms submit URLs.

  • 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 also optionally use the OIDC provider’s introspection endpoint, which additionally 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 Frontend: Custom modules should be able to interrupt routing in BPC BPC-10507

    In the frontend, the global event beforeShowModule is fired before switching to a new view (module or module component). The following parameters are passed: the module ID of the current view, the module ID of the new view to be displayed, and additional options. If an event listener returns ` false `, the transition to the new view is canceled. If this behavior is implemented, the user should also receive feedback explaining why the transition was canceled.

    Affects: BPC Core |

Bugs

  • gridActionColumn buttons remained incorrectly disabled in inline detail views BPC-10518

    Since BPC 4.2.13 and 4.1.25, process actions were no longer displayed in child grids. This has been fixed, and process starters are no longer incorrectly displayed in the child grid.

    Related: Process Monitoring |

  • Closing the WebClient from the HttpProxy causes errors BPC-10523

    The behavior introduced in BPC 4.2.16 and 5.0.2, where the connection is explicitly closed in the backend connection, sometimes led to issues where responses from the server were not transmitted at all or were transmitted incompletely.

    Affects: BPC Core |

  • Optimization of the breadcrumb logic BPC-10375

    BPC Breadcrumb Plugin is displayed again

    Re: BPC Core |

  • Error when creating a new component BPC-10403

    Re: BPC Core |

Internal Dependencies / Dependency Updates

BPC 5.0.2

Release Date: 2026-01-15

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

New Features

  • BPC Forms AI Generation BPC-8640

    The Forms Live Editor now offers AI support for creating forms. This support will be extended to additional areas in future releases.

  • AI Assistant BPC-9724

    To use the AI Assistant, please add the plugin to your application toolbar, for example.

    Subject: BPC Core | Documentation |

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

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

    To use the file storage functionality, the corresponding module for the respective cloud provider must be installed; 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 | Documentation | Karaf |

  • Base-URL HTTPS Check BPC-10323

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

    Re: BPC Core |

  • Additional HTTP headers for using HTTP proxy connections BPC-10339

    It is now possible to set additional headers on the HTTP proxy that are sent along with the request to the server.

    Re: BPC Core |

  • Import Function for OpenSearch Indexes BPC-10382

    Similar to importing module settings, we now offer the option to import preconfigured OpenSearch indexes; see Installation with a preconfigured BPC.

Improvements

  • Faster Karaf startup BPC-9395

    Re: Karaf |

  • Scripts and tools for exporting and importing BPC indices BPC-9518

    A command-line tool is available for listing, deleting, and exporting/import of indexes. It is called “ bpc-opensearch-tool.jar ” and can be downloaded from the file server (https://files.Virtimo.net/BPC/). The help documentation can be accessed via java -jar bpc-opensearch-tool.jar --help.

    Subject: BPC Core |

  • "External Reference" data field included by default in Log Service configuration BPC-10172

    When creating a Log Service instance, the "External Reference" field is now included in the default configuration. Additionally, the field types " object " and " flat_object " have been added.

    Affects: BPC Core | Documentation |

  • Extension of the TLS Security Check BPC-10193

    Affects: BPC Core | Karaf |

  • HTTP Security Check BPC-10194

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

    Subject: BPC Core |

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

    Subject: BPC Core |

  • Update Security Check Configuration BPC-10308

    The delivered configuration file de.virtimo.bpc.core.security.checks.cfg contains corrected default settings that have been adapted to the current checks.

  • The tooltip containing the link to the Quartz Scheduler documentation cannot be clicked BPC-10312

    Tooltips containing URL links can be hovered over with the cursor without them disappearing.

    Re: BPC Core |

  • Replication does not replicate records if the source table contains only future records BPC-10318

    Subject: BPC Core |

  • Deployment: Bundles Differ incorrectly detects a difference BPC-10388

    Subject: BPC Core |

  • Enable Monitor JSON Export by Default BPC-10444

    When creating a monitor instance, export in JSON format is now enabled by default and is therefore available as an option in the Monitor Export window

Security

  • DoS Attack When PKCE Is Enabled on the Identity Provider BPC-10311

    Fix for a potential DoS attack that leads to high memory consumption when there are a very large number of concurrent login requests.

    Affects: BPC Core |

Bugs

  • Configurable monitor export limits are unclear and are ignored during export BPC-9840

    The configured limit (max. number of records) for XLSX is now taken into account again when exporting data via the monitor. For CSV and JSON, a limit can now also be configured in the export dialog. An upper limit applies only to XLSX, not to other file formats.
    See also Configuring Monitor Data Export
    Exporting Processes

  • Monitor Export: CustomRenderer configuration is applied only to string data, and when CustomRenderer is set to "true," defaultRenderer is always used. BPC-9964

    The following issues have been resolved when exporting monitor data with configured custom renderers: - Custom renderers were only applied to string-type data. Now, custom renderers are also applied to integer, long, and boolean types during export. - For a column, you can set the custom renderer to the value true. In this case, a custom renderer with the same name as the one at dataIndex is used. If this does not exist, the "defaultRenderer" custom renderer is used. During export, only "defaultRenderer" was used in this case. This has been fixed.

  • The module types displayField and displayValue do not exist; instances cannot be created BPC-10005

    For GUI modules that offer types, components with types can now be created again. Translations for a type’s name no longer require the "CORE_" prefix. The schema for the translation keys is "<MODULID>_INSTANCE_TYPE_<WERT>".

    Re: BPC Core |

  • Error in Data Analysis Data Set Modifier BPC-10246

    Subject: BPC Core | Data Analysis |

  • UI: ModuleUpdated event triggers an exception if the Security Cockpit was not open BPC-10273

    Fix for an exception during a configuration update if the Security Cockpit was not yet open.

    Subject: BPC Core |

  • Security Checks: Date Not Recorded During Measurement BPC-10315

    Security check measurements now record a timestamp again.

    Affects: BPC Core |

  • Security Cockpit does not record all checks BPC-10320

    Affects: BPC Core |

  • HttpProxyCheck: Too many checks BPC-10340

    The HttpProxySecurityCheck is executed only once per instance.

    Affects: BPC Core |

  • Application scope with ViewMode Tabbed displays navigation bar BPC-10374

    Subject: BPC Core |

  • Analysis: Default Instance (BPC Default Reports) - Data Modifier Tab Disabled Before Saving BPC-10419

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

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

    An incorrect plugin configuration is now ignored during migration and logged as a warning.

    Re: BPC Core |

Documentation

Internal dependencies / Dependency updates

Miscellaneous

BPC 5.0.1

Release Date: 2025-11-24

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

Breaking Changes

You should read the descriptions in this section carefully. They may contain instructions that you must follow to perform an 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.

    Subject: BPC Core |

New Features

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 |

  • Logging of Tail Sync Calls 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 be found under Replication.

    Subject: BPC Core | Documentation |

  • Marking of Changed Settings BPC-9973

    The way settings with values different from the default are marked has been changed.

    Re: BPC Core |

  • Default Recipients in Administrator Notification UI BPC-10191

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

    Re: BPC Core |

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

  • Improved testability of combo boxes BPC-10196

    The values of the various options in combo boxes are no longer uniformly appended with " &nbsp;." This makes it easier to automate UI testing.

    Affects: BPC Core |

  • Exceptions occur when uninstalling bundles BPC-10228

    Affects: BPC Core |

  • Remove code marked as deprecated and marked for removal 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 included in the release.

    Ensure 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 a current driver (without the feature pax-jdbc-mssql). See also: Databases

    Subject: Documentation | Karaf |

Bugs

  • Process starters with the "startWithContext" and "hidden" parameters set to true load the wrong process BPC-10261

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

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

    Subject: 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.

    Affects: BPC Core |

  • OpenSearch exception when bpcCheckColumn has a type other than boolean BPC-9662

  • Keycloak Admin implementation can only handle a single oidcDiscoveryUrl BPC-9727

    Subject: BPC Core | Documentation |

  • Process Starter with parametersEndpoint is no longer displayed in the panel BPC-9810

  • UI: bpcModuleInstanceSelector - Module configuration routing is incorrect for BackendConnection BPC-9975

    Affects: BPC Core |

  • Misleading button text for discarding changes BPC-10007

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

    Subject: BPC Core |

  • Validation of the Value Range for Number Variables BPC-10117

    Changes to the valid value range directly affect 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.

  • Backend Connections cannot be created BPC-10301

    Subject: BPC Core |

  • Error after upgrading to OpenSearch 2.15.0 - StatusConsoleListener - java.lang.RuntimePermission - accessUserInformation BPC-9022

    Re: OpenSearch |

Internal Dependencies / Dependency Updates

BPC 5.0.0

Release Date: 2025-10-24

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

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, visit Versioning of the Internal BPC Configuration.

Breaking Changes

You should read the descriptions in this section carefully. They may contain instructions you need to 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 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 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_plugin

    Affects: 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

    Until now, a large portion of the Identity Provider (Backend Connections) configuration was handled 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.

  • 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. key has been uniformly renamed to id. Additional context or configuration information can be reliably included 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, is migrated to metadata. Additional information can be passed to the "metadata" object in the Change State configuration, additional information can be passed.

    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 used. Instead, the new setting “ sendSessionId ” allows the user’s session ID to be included, which can be verified at the endpoint GET /cxf/bpc-core/authentication/session/{sessionid}. When the “ injectUserSessionJWT ” setting 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.

    Subject: BPC Core | Documentation |

  • HTTP proxy filters the 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.)

    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 may still be used for incoming requests. This backward compatibility will be removed in a future release. Also, please 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 when performing 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, 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.

New Features

  • Action for All Records BPC-1088

    A new action type, "bulkAction," has been added to allow actions to be performed on all records. See Multiple Actions

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

    If IGUASU is correctly connected via the Flowmodule, available processors can be easily selected via the Monitor Actions configuration interface.

  • Configuration Interface for Identity Providers BPC-7069

    A configuration interface for identity providers is now available.

    Re: BPC Core |

  • OpenAPI Specification for REST API BPC-8513

    This update requires you to update Karaf.

    The BPC provides OpenAPI-compliant specification files for our APIs. These are available under Downloads and can also be retrieved dynamically via the BPC, provided this option is enabled. For more information, see the BPC-API section.

    Affects: BPC Core | Documentation | Forms | Karaf |

  • Security Cockpit BPC-8528

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

    For details, see Security Cockpit

    Subject: BPC Core | Documentation | Karaf |

  • View of Online Users BPC-8724

    A new API endpoint /cxf/bpc-core/collaboration/online-users allows you to retrieve all logged-in users. (See Collaboration API). A new plugin, "List Online Users," allows you to display all logged-in users in the frontend. (See Online User List))

  • Simple 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. You can only receive new messages while you are logged in. See also Chat

  • BPC Deep Links via 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 for this purpose, which redirect the user to the corresponding BPC pages when called:

    See also API documentation: Log Service API

    Applies to: BPC Core | Documentation |

  • Reference in the audit log BPC-8824

    It is now possible to include references to external resources when writing audit information. For example, you can reference the IGUASU instance that generated the entry.

    Subject: BPC Core | Documentation |

  • SQL Query Instead of Table Names as a Source for Replication BPC-9063

    Replication now supports entering an SQL query directly as an alternative to existing database tables/views.

    See also sourceCommonTableExpressionQuery in Replication

    Subject: BPC Core | Documentation |

  • JSON Schemas Based on the Log Service Configuration BPC-9072

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

  • New setting type for selecting module instances from multiple modules (Flow & Backend Connections) BPC-9289

    A new setting has been added that allows you to select the endpoints or processors for 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.

  • Revision of the Notification System BPC-9463

    Messages can be sent to individual users. Messages can be time-limited. Messages can have a topic. It is possible to delete all messages for a single topic. The status indicating 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.

  • Backend Connection for FileStorage (S3-Compatible) BPC-9806

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

  • BPC File Storage API BPC-9807

    A File Storage API is provided that enables the uploading, downloading, and management of files. These are stored in a file storage system configured via a file storage backend connection.

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

    Under Settings→Overview→File Storage, a UI is provided to view, download, and delete files from File Storage. In addition, files can be uploaded to File Storage.

    Affects: BPC Core | Documentation |

  • LogService: File Storage Service Integration BPC-9977

    File Storage Integration into the Log Service

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

    • Files can be transferred to the Log Service via an existing reference or as a Base64-encoded file. In the latter case, the Log Service stores the file in File Storage.

    • Uploading via a Base64-encoded file requires a new configuration in the Log Service instance (activation, connection ID, bucket, read and write restrictions).

    Further details can be found in the File Storage section of the Log Service.

    Subject: BPC Core | Documentation |

  • Automatic Redirect After Successful Login BPC-10012

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

    Subject: BPC Core | Documentation |

  • Validation results in state BPC-8481

    Validation results are now stored in state. This means they can also be used for binding, for example. See also validate

    Re: Forms |

Improvements

  • IGUASU (Flow) instance on the monitor via "Action Service" BPC-6413

    A new setting has been added that allows you to select the endpoints or processors for 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. During a POST request, the URL is always included in the payload and passed to the monitor’s httpProxy endpoint. The monitor endpoint uses the Core Action Service to process the data and ultimately returns the response.

  • 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 login, the user is redirected to the original API endpoint.

    Affects: BPC Core |

  • Treat API keys like passwords 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.

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

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

  • 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. It may 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.

    Re: OpenSearch |

  • Replication: Improved error message for timeouts BPC-9064

    Re: BPC Core |

  • 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. This prevents you from overwriting it 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 |

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

  • Editor with SQL Support BPC-9351

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

    Subject: BPC Core |

  • OpenSearch: Warnings are displayed in the console every minute: QueryGroup _id cannot be null; it must be set before accessing it. BPC-9404

    Subject: OpenSearch |

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

  • Extension of default permissions for role bpcuser BPC-9505

    The default mapping (Mapping of Organizations, Roles, and Permissions) for identity providers has been adjusted so that every user (via the default role bpcuser) is granted the right to use all standard BPC modules. In addition, the right to view the list of logged-in users is granted.

    This change does not affect existing configurations.

    Re: BPC Core |

  • 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 in use, it is best to recreate them.

    Affects: BPC Core | Documentation |

  • Move Log Service Configuration to Individual Sub-Settings BPC-9598

    Subject: BPC Core |

  • Handling of Primary Keys in the Log Service UI BPC-9599

    ID columns are now set via combo boxes in the Log Service configuration interface. The configuration can only be saved if at least one ID column is defined. Additionally, the system checks 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.

    Re: 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 | Documentation |

  • Revision of Link Notifications BPC-9624

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

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

  • Submit Improvement BPC-9636

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

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

  • Names of Settings Groups BPC-9738

    Settings groups now have multilingual Labels.

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

    Log Services can now be enabled or disabled individually. The term “maintenance mode” was misleading in this 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 are 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 |

  • Informative 400 Bad Request response if JSON body cannot be serialized BPC-9821

    An invalid JSON payload in an HTTP request body is now responded to by API endpoints with the error " 400 Bad Request."

    Affects: BPC Core |

  • Extension of metadata for the Compact Configuration API BPC-9937

    The " modelVersion " is now also displayed if the user does not have admin rights.

    Re: BPC Core |

  • Various improvements to the Forms module BPC-9946

    A migration is required for the Forms module when moving from BPC 4.x to BPC 5. Information on this can be found here.

    Subject: Documentation | Forms |

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

    Re: BPC Core |

  • Design Update BPC-9974

    The appearance of the BPC has been updated.

  • ServiceNotFoundException when selecting a backend Connection for the process starter BPC-9995

    Subject: BPC Core |

  • Flexible arrow spacing for menu buttons BPC-10060

    The classes arrow-spacing-sm (small) and arrow-spacing-xs (extra small) can now be used on buttons to reduce the arrow spacing.

    Re:

  • Backend bundles should not contain a feature.xml file BPC-10115

    For BPC module developers:

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

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

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

    However, ` maven-resources-plugin ` must still be used to replace placeholders in ` 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/ -->
        <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 for migrating indices for OpenSearch 3.2 (BPC 5.0.0) BPC-10120

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

    Re: OpenSearch |

  • BPC Log Index CleanUp: After starting Karaf, the first cleanup does not run until 60 minutes later. BPC-10168

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

    Re: BPC Core |

  • 0 Label for CustomRenderer in the monitor BPC-10170

    It is now possible to use the value 0 in the valueMap of a CustomRenderer and to see this value as a Label in the monitor. Previously, 0 values were not displayed.

  • Notification Icon Can Be Placed as a Plugin BPC-8064

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

  • Notifications Only to Logged-In Users BPC-8097

    Notifications now include 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 "Users" recipient group, the recipients are no longer displayed.

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

    Subject: BPC Core |

  • The identityProvider_ussUrl setting has been removed BPC-9046

    The unused identityProvider_ussUrl setting has been removed.

  • LogService - Validation against JSON Schema BPC-9071

    JSON Schema validation of the data to be written can be enabled for 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 via the Log Service endpoint if needed.

    Affects: BPC Core | Documentation |

  • Switch event creation from the outdated dictionary to Map BPC-9483

    For event handling, use Map instead of Dictionary.

    Subject: BPC Core |

Security

  • Do not accept filenames containing paths for module and license uploads BPC-9362

    Any path information is ignored to prevent path traversal attacks.

    Subject: BPC Core |

  • Restriction of SSH Access BPC-8253

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

    Subject: Documentation | Karaf |

  • Filter session cookie content from log file 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 here:

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

    with the 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 |

  • Strict Configuration of 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 thus 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

    Subject: Documentation |

Bugs

  • Jump from "Setting" in audit log does not filter correctly BPC-10341

Documentation

Internal Dependencies / Dependency Updates

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

    Subject: BPC Core |

  • Java JDK 21 BPC-9312

    The use of Java 21 is now required.

    Re:

  • Update vaadinWebComponents monorepo BPC-9558

    Re: BPC Core |

  • Update OpenSearch to 3.2 BPC-9609

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

    If not, the indices must be migrated first.

  • Update de.Virtimo.BPC:nimbusLib BPC-9764

    Subject: BPC Core |

  • Update CXF BPC-9852

    Subject: BPC Core | Karaf |

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

    Subject: BPC Core |

  • Update Karaf 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 adjusted if you use Jackson functions 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

    Subject: BPC Core |

  • Update dompurify BPC-10086

    Subject: BPC Core | Forms |

  • Update graaljs.version BPC-10206

    Subject: Data Analysis |

  • Update ace-builds BPC-10213

    Subject: BPC Core |

  • Update ExtJS BPC-9567

    The Core is no longer transpiled to legacy ECMAScript, and polyfills are no longer added. 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 ` file:

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

Miscellaneous