Changelog

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

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

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

Explanations of the changelog

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

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

    Read the notes on the Breaking Change carefully.

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

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

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

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

  • Improvements
    Improvements to existing functions.

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

  • Bugs
    Corrections of errors of various kinds.

  • Documentation
    Changes or extensions to the product documentation.

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

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

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

BPC 5.0.4

Release date: 2026-03-16

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

Update of the internal configuration

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

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

Breaking Changes

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

  • Refactoring OIDC/PKCE Handshake: Migration to stateless (encrypted cookie) for DoS prevention BPC-10544

    Data used for login with OIDC providers is stored encrypted in a cookie on the client. This prevents overload from a very large number of login requests.

    For BPC module developers

    If you have developed your own UserFlowIdentityProvider implementation, you need to adapt it. The function URI createAuthenticationRequestURI(String requestUrl) has been replaced with UserFlowLoginContext createAuthenticationRequestContext(String requestUrl) and now, in addition to the redirect URL for the OIDC login, also returns a cookie containing the login state. This cookie is set by the frontend during the 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 necessary. If the BPC is still not available afterwards, please delete the directory karaf/data and restart Karaf again. (You may want to back up your log files beforehand.)

    Affects: BPC Core |

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

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

  • WebTSM: Restrict access to REST endpoints BPC-10655

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

    Affects:

  • Data Management module backend removed BPC-10696

    The Data Management module no longer has its own backend component (bpc-be-vam.jar). It must be removed during the update. To use the module, it is sufficient to use bpc-fe-vam.war.

    The Data Management module has been included in the regular release cycle.

    Affects: Karaf |

  • Remove setting baseUrl BPC-9924

    The setting baseUrl is omitted, as the value (cxf) is a static part of the API URL and does not change.

    Do not confuse this with bpcBaseUrl. This setting remains unchanged.

    Affects: 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 also uses to import and export indices. In the administration interface under Core ServicesIndices, such index export files can be downloaded.

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

New features

  • Display JSON files in a formatted way in child logs BPC-10378

    Affects: Process Monitoring |

  • Hakom Cloud connection BPC-10476

    • Basic Authentication
      Please enable Basic Auth support according to the HAKOM PowerTSM documentation. In the "module_apis" setting of the Timeseries Management module, the username (username) and password (password) are stored (see example). Additionally, 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": "<a_very_secure_password>"
              },
              ...
          }
      }
    • API Keys Authentication
      Please first enable API Key support and generate an API Key according to the HAKOM PowerTSM documentation. Then store this generated API Key (apiKey) in the "module_apis" setting of the Timeseries Management module (see example). Additionally, the authentication method (authenticationMethod) must be switched to ApiKey Auth.

      API Key Auth Example
      {
          "webtsm01": {
              "application": "TSM",
              ...
              "authenticationMethod": "ApiKey",
              "apiKeyAuth": {
                  "apiKey": "<the_api_key_generated_by_webtsm>"
              },
              ...
          }
      }
    • Token Authentication
      Please enable token authentication according to the HAKOM PowerTSM documentation. Currently, only the grant type "client_credentials" is supported, which requires the client ID and client secret. Store these together with the scope and the access token URL of the identity provider used in the "module_apis" setting of the Timeseries Management module. Additionally, the authentication method (authenticationMethod) must be switched 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": "<the_associated_client_secret>",
                  "scope": "openid profile email"
              },
              ...
          }
      }

    Affects: BPC Core |

  • File Storage: Creating a file reference via reference to the cloud service BPC-10506

    Files in File Storage can now be created not only via direct upload but also through a reference to a file in the cloud storage provider. For this purpose, a new endpoint is offered in the File Storage API. In the Log Service, files (for fields of type file-storage) can also be transmitted as a file reference to the cloud storage provider.

    Additionally, when uploading and downloading with all supported cloud providers, the content type is set.

    Affects: BPC Core | Dokumentation |

  • File storage backend connections: Option to route downloads via the BPC BPC-10541

    File storage backend connections can now be configured so that downloads are routed 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 | Dokumentation |

  • 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: For fields of type file-storage, the Log Service now creates two additional fields with the suffix _filename and _contentType when logging in OpenSearch and relational databases.

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

    • If you want to display files from the File Storage in the Monitor and do not want to route these downloads through the BPC, you must adjust the CSP and CORS settings. More details can be found in File attachments.

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

  • 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 also uses to import and export indices. In the administration interface under Core ServicesIndices, such index export files can be downloaded.

    Note: If you use 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

    Via the WebTSM setting module_apis, additional HTTP headers can be defined, which are then set for every WebTSM API call. To do this, include the field additionalHttpHeaders with the HTTP headers to be set (see example). Variables, such as the one below ${config.de.virtimo.bpc.core.karaf.uuid}, can be set in the same way as 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": "Example text - ${config.de.virtimo.bpc.core.karaf.uuid}"
        }
      }
    }

    Affects: BPC Core |

  • Monitor file download BPC-5775

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

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

    • The setting (column_file) for the column that contains the file content or file reference is no longer required. Instead, a file attachment is configured in the column configuration of the parent data (column_config) or child data (column_historyConfig). For this purpose, an entry fileConfig is created there, which specifies the file name column and the content type column:

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

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

    • Existing monitor instances are adapted to the new configuration through a migration.

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

    Further information can be found here: Configuration of the monitor columns and File attachments.

    Attention: Monitor instances had provided the setting column_mimetype to specify the column name that refers to the content type of the files. However, in the backend, the column name contentType was used inconsistently. Therefore, during the migration of the instances, the column_mimetype setting was ignored. If this was used, please check the corresponding monitor instance and adjust it if necessary.

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

    Affects: 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, the filters, and the sorter.

    Affects: Process Monitoring |

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

    Affects: Process Monitoring |

  • Be able to delete a form in the Forms repo BPC-10298

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

    Affects: Forms |

  • "disabled": true make 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.

    Affects: Dokumentation | Forms |

  • Texts in the interface adapted for multilingualism BPC-10436

    Affects: Data Analysis |

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

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

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

    1. Incremental Update
      The interval at which new, updated, or deleted time series are searched for is defined via the module_apis setting cache_refresh (specified in minutes; 60 minutes is the default setting). Only the data that falls into the result set since the date of the last synchronization is considered.

    2. Time of Full Update
      The full update of the time series cache was previously performed via the module_apis setting cache_refresh_full. By default, this was done every 24 hours from the time the WebTSM module was started. This option has been replaced by cache_refresh_full_cron_expression. Here, a cron expression can be specified according to the format used by the Quartz Scheduler. For example, the time series cache can be rebuilt every Sunday at 9:00 p.m. (“0 0 21 ? * Sun”). If this option is not set, then no full update will be performed.

    3. Execution of the Full Update
      Previously, during the full update, all time series were read out via ONE request to the WebTSM and stored locally in the BPC (cache). This option remains the default for the full update. However, it can now also be switched to a paged or block-wise reading of the time series. To do this, set the mode via the module_apis setting cache_refresh_full_default_mode: Full or FullPaginated. To find out which full update mode puts less load on the WebTSM, both can be manually started for testing purposes via the following WebTSM endpoints:

    4. The following module_apis settings can also influence synchronization:

      • cache_refresh_paginated_fetch_block_size (5000) = Paged reading of time series. This number of time series is requested from WebTSM per request until all existing time series have been processed. Only used if FullPaginated is used as the mode.

      • timeout (60) = Already existed before. This is the query timeout, which is only used for the full update for the ONE request to WebTSM.

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

      • cache_refresh_opensearch_bulk_block_size_deleted (2500) = During incremental synchronization, delete instructions are passed 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 are sent to OpenSearch. This can negatively affect performance.

      • cache_refresh_opensearch_bulk_block_size_changed (2500) = Time series data is passed 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 are sent to OpenSearch. This can negatively affect performance.

        The values in parentheses are the default settings

    Affects: BPC Core |

  • Refactoring OIDC/PKCE Handshake: Migration to stateless (encrypted cookie) for DoS prevention BPC-10544

    Data used for login with OIDC providers is stored encrypted in a cookie on the client. This prevents overload from a very large number of login requests.

    For BPC module developers

    If you have developed your own UserFlowIdentityProvider implementation, you need to adapt it. The function URI createAuthenticationRequestURI(String requestUrl) has been replaced with UserFlowLoginContext createAuthenticationRequestContext(String requestUrl) and now, in addition to the redirect URL for the OIDC login, also returns a cookie containing the login state. This cookie is set by the frontend during the 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 necessary. If the BPC is still not available afterwards, please delete the directory karaf/data and restart Karaf again. (You may want to back up your log files beforehand.)

    Affects: BPC Core |

  • Change the 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 frontend now only communicates with the WebTSM backend. This means that a backend connection of the type "HTTP Proxy" is no longer necessary and the setting "tsm_backendConnectionId" has been removed from the WebTSM Viewer components.

    Affects:

  • Filter fallback values from status combobox during process status change BPC-10559

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

    Affects: Process Monitoring |

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

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

  • Multilingualism in Forms BPC-10598

    Multilingualism has been improved. The languages cs, da, de, en, es, fi, fr, it, js, ko, nl, pt, ru according to the ISO 639-1 language codes are now available. If a language is not available or incomplete, English will be used as a fallback.

    Affects: Forms |

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

  • Monitor export: Start download immediately for streamable format BPC-10631

    Affects: Process Monitoring |

  • Better 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" in the Timeseries Management JSON setting under General → module_apis. This value contains the username and password in plain text (Base64 encoded) and is no longer needed.

    Affects:

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

    Affects: 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. A Timeseries Management administrator could also be assigned the "WEBTSM_ADMIN" role instead of the specific permission. This would also be more future-proof, for example, if in subsequent versions more fine-grained permissions are defined for the endpoints instead of the "webtsm_edit" permission.

    Affects:

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

    Through this change, tables in the GUI can be tested more effectively in an automated manner.

    Affects: BPC Core |

  • Typo in the replication editor BPC-10664

    Affects: BPC Core |

  • Missing language keys in en.json BPC-10695

    Affects: BPC Core |

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

    Affects: BPC Core |

  • Suppress the browser's Basic Auth popup for flow requests BPC-10727

    Affects: BPC Core | Dokumentation |

  • Improve theming of selection options in the calendar BPC-9516

    Affects:

  • Remove setting baseUrl BPC-9924

    The setting baseUrl is omitted, as the value (cxf) is a static part of the API URL and does not change.

    Do not confuse this with bpcBaseUrl. This setting remains unchanged.

    Affects: BPC Core |

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

    Affects: BPC Core |

  • Core-enforced setting groups are not merged with setting groups from the module BPC-10409

    Duplicate setting groups are merged into one group

    Affects: BPC Core |

Security

  • TSM access data visible to all WebTSM users BPC-10545

  • HTTP Proxy API: Error responses do not contain the URL of the target system. BPC-10607

    Affects: BPC Core |

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

Bugs

  • viewmode "tabbed" does not display any tabs BPC-10624

    Affects: BPC Core |

  • Process Actions Response does not return an error message in case of a parse error. 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 taken into account during export. Additionally, during export, mappings for empty values and fallback values in custom renderers are considered (entries "!" and "*").

  • OpenAPI schema documentation incorrect BPC-9803

    The error in the schema generation of some DTO classes has been fixed.

    Affects: BPC Core |

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

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

    Affects: Process Monitoring |

  • New installation: Indexes are missing BPC-10045

  • BPC DetailView PopUp process details are rendered empty if header was hidden before BPC-10180

    Affects: Process Monitoring |

  • Dynamic list filters with template columns do not work BPC-10241

    Filtering on the 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 those specified in dataIndex.

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

    targetModule is automatically converted to a string in the viewConfiguration

    Affects: BPC Core |

  • Form in the Process Monitor popup view does not scale to fill the space BPC-10326

    Affects: Process Monitoring | Forms |

  • Number filter is not applied when switching modules BPC-10381

    Affects: Process Monitoring |

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

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

    Affects: BPC Core |

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

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

    Affects: Process Monitoring |

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

    Affects: BPC Core |

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

  • Layout error checkbox group BPC-10600

    The spacing issues of checkboxes within a checkbox group have been fixed.

    Affects: Forms |

  • Monitor: Troubleshooting when retrieving all different values for filtering in fields with numeric values BPC-10612

    Affects: Process Monitoring |

  • Monitor: Export of child data exports all child columns BPC-10628

    Previously, only columns in the child data were exported for which there are also columns in the parent monitor that use a dataIndex with the same name.

    Affects: Process Monitoring |

  • Process Monitor: Column filters correctly take the global filter into account BPC-10647

    Affects: Process Monitoring |

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

    Affects: Process Monitoring |

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

    Affects: Process Monitoring |

Documentation

Dependency Updates

  • Update OpenSearch BPC-10342

    Update OpenSearch according to the update guide

  • Update ace-builds BPC-10550

    Affects: BPC Core |

  • Update com.azure:azure-storage-blob BPC-10588

    Affects: BPC Core |

  • Update com.nimbusds:oauth2-oidc-sdk BPC-10592

    Affects: BPC Core |

  • Update Karaf BPC-10608

    With this update, the version of Apache Karaf is raised to 4.4.10. In this context, it is necessary to update the following modules: bpc-be-core, bpc-be-analysis, bpc-be-forms, and bpc-be-monitor.

    Please update Karaf according to the update guide.

    Adjustment of the logging configuration

    The configuration file etc/org.ops4j.pax.logging.cfg was adjusted as part of a Log4J update. Important: Do not simply copy this file unchanged from an existing (old) Karaf installation. If you have made individual adjustments, please transfer them manually to the new configuration file.

    Note for BPC module developers

    If your BPC backend module uses the dependency jackson-annotations and has so far used the variable ${jackson.version} (to reference the same version as in the BPC core modules), this needs to be adjusted. Instead, use ${jackson.annotations.version}.

  • Update ajv BPC-10618

    Affects: BPC Core | Forms |

  • Update froala-editor BPC-10640

    Affects: BPC Core |

  • Update marked BPC-10642

    Affects: BPC Core |

  • Update com.google.cloud.google-cloud-storage.version BPC-10712

    Affects: BPC Core |

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

    Affects: BPC Core |

Other

  • Support for Postgres JSONB columns in replication BPC-10555

    Affects: BPC Core |

  • Data Management module backend removed BPC-10696

    The Data Management module no longer has its own backend component (bpc-be-vam.jar). It must be removed during the update. To use the module, it is sufficient to use bpc-fe-vam.war.

    The Data Management module has been included in the regular release cycle.

    Affects: Karaf |

BPC 5.0.3

Release date: 2026-01-23

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

New features

Improvements

  • OIDC Token als Alternative für API-Key BPC-9610

    Affects: BPC Core | Dokumentation |

  • BPC Frontend: Custom Module sollen das Routing im BPC unterbrechen können BPC-10507

    Affects: BPC Core |

Bugs

  • Button für Prozessaktionen in der Detailview ist immer deaktiviert BPC-10518

    Affects: Process Monitoring |

  • Schliessen des WebClient vom HttpProxy führt zu Fehlern BPC-10523

    Affects: BPC Core |

  • BreadCrumb Plugin wird nicht angezeigt BPC-10375

    Affects: BPC Core |

  • Errors during component creation BPC-10403

    Affects: BPC Core |

Dependency Updates

  • Update graaljs.version BPC-10524

    Affects: Data Analysis |

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

    Affects: BPC Core |

  • Update froala-editor BPC-10526

    Affects: BPC Core |

  • Update com.azure:azure-storage-blob BPC-10527

    Affects: BPC Core |

  • Update com.github.freva:ascii-table BPC-10528

    Affects: BPC Core |

  • Update com.google.cloud.google-cloud-storage.version BPC-10529

    Affects: BPC Core |

  • Update marked BPC-10531

    Affects: BPC Core |

BPC 5.0.2

Release date: 2026-01-15

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

New features

  • BPC Forms AI Generation BPC-8640

    Affects: BPC Core | Dokumentation | Forms |

  • AI Assistant BPC-9724

    Affects: BPC Core | Dokumentation |

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

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

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

    Affects: BPC Core | Dokumentation | Karaf |

  • Base-URL HTTPS Check BPC-10323

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

    Affects: BPC Core |

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

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

    Affects: BPC Core |

  • Index-Import BPC-10382

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

    Affects: BPC Core | Dokumentation |

Improvements

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

    Affects: Karaf |

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

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

    Affects: BPC Core |

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

    Affects: BPC Core | Dokumentation |

  • Erweiterung des TLS Security Checks BPC-10193

    Affects: BPC Core | Karaf |

  • Security Check HTTP BPC-10194

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

    Affects: BPC Core |

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

    Affects: BPC Core |

  • Update Security Check Configuration BPC-10308

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

    Affects: BPC Core | Dokumentation | Karaf |

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

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

    Affects: BPC Core |

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

    Affects: BPC Core |

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

    Affects: BPC Core |

  • Monitor JSON Export per Default aktivieren BPC-10444

Security

  • DoS attack with PKCE enabled on the Identity Provider BPC-10311

    Fix for a potential DoS attack that leads to high memory consumption when there are a large number of parallel log-in requests.

    Affects: BPC Core |

Bugs

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

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

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

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

    Affects: Process Monitoring |

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

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

    Affects: BPC Core |

  • Fehler im Data Analysis Datensatz Modifikator BPC-10246

    Affects: BPC Core | Data Analysis |

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

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

    Affects: BPC Core |

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

    Security check measurements now record a timestamp again.

    Affects: BPC Core |

  • Security Cockpit erfasst nicht alle Checks BPC-10320

    Affects: BPC Core |

  • HttpProxyCheck: Zu viele Checks BPC-10340

    The HttpProxySecurityCheck is executed only once per instance.

    Affects: BPC Core |

  • Applikationsbereich mit ViewMode Tabbed zeigt Navigationsleiste an BPC-10374

    Affects: BPC Core |

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

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

    Affects: Data Analysis |

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

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

    Affects: BPC Core |

Documentation

Dependency Updates

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

    Affects: BPC Core | Forms |

  • Update froala-editor BPC-10330

    Affects: BPC Core |

  • OpenSearch 3.3.0 BPC-10353

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

    Affects: BPC Core |

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

    Affects: BPC Core |

  • Update apache-poi monorepo BPC-10359

    Affects: Process Monitoring |

  • Update ace-builds BPC-10361

    Affects: BPC Core |

  • Update dompurify BPC-10394

    Affects: BPC Core | Forms |

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

    Affects: BPC Core |

  • Update vaadinWebComponents monorepo BPC-10498

    Affects: BPC Core |

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

    Affects: BPC Core |

  • Update ace-diff BPC-10501

    Affects: BPC Core |

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

    Affects: BPC Core |

Other

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

    Affects: BPC Core |

BPC 5.0.1

Release date: 2025-11-24

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

Breaking Changes

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

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

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

    Affects: BPC Core |

New features

Improvements

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

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

    Affects: BPC Core | Dokumentation |

  • Tail Sync Aufrufe protokollieren BPC-9450

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

    Affects: BPC Core | Dokumentation |

  • Marking of changed settings BPC-9973

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

    Affects: BPC Core |

  • Standardempfänger in Administrator Notification UI BPC-10191

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

    Affects: BPC Core |

  • Reindizieren hinterlässt keine alten Indices BPC-10192

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

    Affects: BPC Core | Dokumentation |

  • Better testability of comboboxes BPC-10196

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

    Affects: BPC Core |

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

    Affects: BPC Core |

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

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

    Affects: BPC Core |

Security

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

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

    Please ensure that the MSSQL driver used has at least one of the following versions: 10.2.4, 11.2.4, 12.2.1, 12.6.5, 12.8.2, 12.10.2, 13.2.1

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

    Affects: Dokumentation | Karaf |

Bugs

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

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

    Affects: Process Monitoring |

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

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

    Affects: BPC Core |

  • Error during index migration BPC-8989

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

    Affects: BPC Core |

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

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

    Affects: BPC Core | Dokumentation |

  • Prozess Starter mit parametersEndpoint wird im Panel nicht mehr angezeigt BPC-9810

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

    Affects: BPC Core |

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

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

    Affects: BPC Core |

  • Validierung des Wertebereichs von Number-Variablen BPC-10117

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

    Affects: Data Analysis |

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

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

    Affects: BPC Core | Dokumentation | Karaf |

  • Backend connections cannot be created BPC-10301

    Affects: BPC Core |

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

    Affects: OpenSearch |

Dependency Updates

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

    Affects: BPC Core |

  • Update vaadinWebComponents monorepo BPC-10233

    Affects: BPC Core |

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

    Affects: BPC Core |

  • Update froala-editor BPC-10238

    Affects: BPC Core |

BPC 5.0.0

Release date: 2025-10-24

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

Update of the internal configuration

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

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

Breaking Changes

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

  • Restriction of SSH access BPC-8253

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

    Affects: Dokumentation | Karaf |

  • OpenSearch access only via de.virtimo.bpc.core.opensearch.hosts BPC-9246

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

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

    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%

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

    Affects: BPC Core | Dokumentation |

  • Java JDK 21 BPC-9312

    The use of Java 21 is now necessary.

    Affects:

  • Adjustment of metrics BPC-9440

    These metrics have been renamed:

    • bpc_es_bpc_plugin_status_websocket → bpc_os_bpc_plugin_status_websocket

    • bpc_es_bpc_plugin_status_plugin → bpc_os_bpc_plugin_status_plugin

    Affects: BPC Core | Dokumentation |

  • Support for INUBIT Identity Provider removed BPC-9482

    INUBIT is no longer supported as an Identity Provider.

    Affects: BPC Core | Dokumentation |

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

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

    Affects: BPC Core | Dokumentation |

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

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

    Affects: BPC Core | Dokumentation |

  • Harmonization of interfaces for various monitor functions BPC-9770

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

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

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

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

  • Restricted forwarding of session information BPC-9925

    HTTP proxy backend connections and flow connections now always filter the session cookie so that a recipient cannot make calls in the BPC in the context of the user. The setting filterSessionCookie is therefore no longer required. Instead, with the new setting sendSessionId, it is possible to send the user’s session ID, which can be verified at the endpoint GET /cxf/bpc-core/authentication/session/{sessionid}. When the injectUserSessionJWT setting is enabled, a self-created JWT is no longer sent, but rather the signed ID token from the OpenID Connect provider is sent. You can find more details in Backend Connections - HTTP-Proxy.

    Affects: BPC Core | Dokumentation |

  • HTTP proxy filters X-APIKey header BPC-10011

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

    Affects: BPC Core | Dokumentation |

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

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

    Affects: BPC Core |

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

  • OpenSearch Konfiguration auslagern BPC-9106

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

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

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

    Affects: Dokumentation | OpenSearch |

New features

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

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

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

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

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

    A configuration interface for identity providers is now available.

    Affects: BPC Core |

  • OpenAPI Spezifikation für REST API BPC-8513

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

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

    Affects: BPC Core | Dokumentation | Forms | Karaf |

  • Security Cockpit BPC-8528

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

    For details, see Security cockpit

    Affects: BPC Core | Dokumentation | Karaf |

  • Ansicht von Online-Users BPC-8724

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

    Affects: BPC Core | Dokumentation |

  • Einfacher Chat BPC-8725

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

    Affects: BPC Core | Dokumentation |

  • BPC Deeplinks über LogService BPC-8798

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

    See also API documentation: Log Service API

    Affects: BPC Core | Dokumentation |

  • Referenz im Auditlog BPC-8824

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

    Affects: BPC Core | Dokumentation |

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

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

    See also sourceCommonTableExpressionQuery in Replication

    Affects: BPC Core | Dokumentation |

  • JSON Schemas entsprechend der LogService Konfiguration BPC-9072

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

    Affects: BPC Core | Dokumentation |

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

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

  • Revision of the notification system BPC-9463

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

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

    Affects: BPC Core | Dokumentation |

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

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

    Affects: BPC Core | Dokumentation |

  • BPC File Storage API BPC-9807

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

    Affects: BPC Core | Dokumentation |

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

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

    Affects: BPC Core | Dokumentation |

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

    File Storage Integration in the Log Service

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

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

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

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

    Affects: BPC Core | Dokumentation |

  • Automatischer Redirect nach erfolgreicher Anmeldung BPC-10012

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

    Affects: BPC Core | Dokumentation |

  • Validation results in the `state` BPC-8481

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

    Affects: Forms |

Improvements

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

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

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

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

    Affects: BPC Core |

  • API Keys wie PW behandeln BPC-8194

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

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

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

    Affects: BPC Core | Dokumentation |

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

    If the available disk space falls below defined thresholds, shards are redistributed to other nodes. It can also happen that indices are set to read-only to prevent the disk from filling up.

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

    Affects: OpenSearch |

  • Replication: Bessere Fehlermeldung bei Timeouts BPC-9064

    Affects: BPC Core |

  • OpenSearch Konfiguration auslagern BPC-9106

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

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

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

    Affects: Dokumentation | OpenSearch |

  • OpenSearch access only via de.virtimo.bpc.core.opensearch.hosts BPC-9246

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

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

    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%

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

    Affects: BPC Core | Dokumentation |

  • Editor mit SQL Support BPC-9351

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

    Affects: BPC Core |

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

    Affects: OpenSearch |

  • Adjustment of metrics BPC-9440

    These metrics have been renamed:

    • bpc_es_bpc_plugin_status_websocket → bpc_os_bpc_plugin_status_websocket

    • bpc_es_bpc_plugin_status_plugin → bpc_os_bpc_plugin_status_plugin

    Affects: BPC Core | Dokumentation |

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

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

    This change does not affect existing configurations.

    Affects: BPC Core |

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

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

    Affects: BPC Core | Dokumentation |

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

    Affects: BPC Core |

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

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

    Affects: BPC Core |

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

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

    Affects: BPC Core | Dokumentation |

  • Überarbeitung von Link-Benachrichtigungen BPC-9624

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

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

    Affects: BPC Core | Dokumentation |

  • Submit verbessern BPC-9636

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

    Affects: Dokumentation | Forms |

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

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

    Affects: BPC Core | Dokumentation |

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

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

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

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

    Affects: BPC Core |

  • Names of groups to settings BPC-9738

    There are now multilingual labels on groups of settings.

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

    Log services can now be (de)activated individually. The term maintenance mode was misleading in this context.

    Affects: BPC Core |

  • Harmonization of interfaces for various monitor functions BPC-9770

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

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

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

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

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

    Affects: BPC Core |

  • Aufschlussreiche 400 Bad Request-Response, falls JSON-Body nicht serialisiert werden kann 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 compact Configuration API BPC-9937

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

    Affects: BPC Core |

  • Various improvements to the Forms module BPC-9946

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

    Affects: Dokumentation | Forms |

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

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

    Affects: BPC Core |

  • Design Update BPC-9974

    The appearance of BPC has been updated.

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

    Affects: BPC Core |

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

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

    Affects:

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

    For BPC module developers:

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

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

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

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

    To do this, add the following plugin call:

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

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

    Affects: OpenSearch |

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

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

    Affects: BPC Core |

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

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

    Affects: Process Monitoring |

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

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

    Affects: BPC Core | Dokumentation |

  • Benachrichtigung nur an eingeloggte Nutzer BPC-8097

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

    Affects: BPC Core | Dokumentation |

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

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

    Affects: BPC Core |

  • Setting identityProvider_ussUrl removed BPC-9046

    The unused setting identityProvider_ussUrl has been removed.

    Affects: BPC Core | Dokumentation |

  • LogService - Validierung gegen JSON Schema BPC-9071

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

    Affects: BPC Core | Dokumentation |

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

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

    Affects: BPC Core |

Security

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

    Any path specifications are ignored to prevent path traversal attacks.

    Affects: BPC Core |

  • Restriction of SSH access BPC-8253

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

    Affects: Dokumentation | Karaf |

  • Filter session cookie content from log file BPC-9533

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

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

    with the following lines

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

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

    Affects: BPC Core | Dokumentation | Karaf |

  • Restricted forwarding of session information BPC-9925

    HTTP proxy backend connections and flow connections now always filter the session cookie so that a recipient cannot make calls in the BPC in the context of the user. The setting filterSessionCookie is therefore no longer required. Instead, with the new setting sendSessionId, it is possible to send the user’s session ID, which can be verified at the endpoint GET /cxf/bpc-core/authentication/session/{sessionid}. When the injectUserSessionJWT setting is enabled, a self-created JWT is no longer sent, but rather the signed ID token from the OpenID Connect provider is sent. You can find more details in Backend Connections - HTTP-Proxy.

    Affects: BPC Core | Dokumentation |

  • HTTP proxy filters X-APIKey header BPC-10011

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

    Affects: BPC Core | Dokumentation |

  • Default für filterSessionCookie auf true BPC-9926

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

    Affects: BPC Core | Dokumentation |

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

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

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

    Affects: Dokumentation |

Bugs

  • Sprung von Setting in Auditlog filtert nicht korrekt BPC-10341

Documentation

Dependency Updates

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

    Affects: BPC Core |

  • Java JDK 21 BPC-9312

    The use of Java 21 is now necessary.

    Affects:

  • Update vaadinWebComponents monorepo BPC-9558

    Affects: BPC Core |

  • Update OpenSearch to 3.2 BPC-9609

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

    If not, indices must first be migrated.

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

    Affects: BPC Core |

  • Update CXF BPC-9852

    Affects: BPC Core | Karaf |

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

    Affects: BPC Core |

  • Update Karaf BPC-9960

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

    For BPC module developers

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

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

    <Import-Package>
    ...
    com.fasterxml.jackson.*;version="[2.17.2,3.0.0)",
    ...
    </Import-Package>
  • Update com.networknt:json-schema-validator BPC-10032

    Affects: BPC Core |

  • Update dompurify BPC-10086

    Affects: BPC Core | Forms |

  • Update graaljs.version BPC-10206

    Affects: Data Analysis |

  • Update ace-builds BPC-10213

    Affects: BPC Core |

  • Update ExtJS BPC-9567

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

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

Other

  • Support for INUBIT Identity Provider removed BPC-9482

    INUBIT is no longer supported as an Identity Provider.

    Affects: BPC Core | Dokumentation |

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

  • Forms Renderer as a separate component BPC-9709

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

    The renderer is now available via Downloads.

    Affects: BPC Core | Dokumentation | Forms | Karaf |

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

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

  • LogService backward compatibility BPC-10171

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

    Affects: BPC Core | Dokumentation |