Die BPC Version 4.1 wird nicht mehr gewartet.

Sollten Sie diese BPC Version nutzen, empfehlen wir Ihnen eine Migration auf eine aktuelle Version. Die Dokumentation zur neusten BPC Version finden Sie hier. Sollten Sie Fragen haben, wenden Sie sich bitte an unseren Support.

Administration Changelog

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

For a list of all changes, see Changelog.

BPC 4.1.28

Release Date: 2026-01-16

With this update, the following components must be updated: BPC Modules | Karaf

Improvements

  • Faster Karaf startup BPC-9395

    Affects: Karaf |

BPC 4.1.27

Release Date: 2025-11-17

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

Improvements

  • Exceptions occur when uninstalling bundles BPC-10228

    Affects: BPC Core |

Security

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

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

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

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

Bugs

  • Using the local/Karaf IDP as a fallback is not working BPC-9837

    If the configured Identity Provider is unreachable, the system no longer incorrectly logs that the local Karaf Identity Provider is selected as a fallback. Instead, a note is displayed indicating that it could be enabled as a fallback.

    Affects: BPC Core | Documentation |

  • Keycloak: Changed "GET /groups" API Request Starting with Version 26+ BPC-10149

    Retrieving subgroups has been adjusted to accommodate changes in the Keycloak API.

    Re: BPC Core |

  • bpc.env.sh DE_VIRTIMO_BPC_DECANTER_APPENDER_OPENSEARCH_DELETEENTRIESOLDERTHAN does not work BPC-10169

    An error in the commented-out option DE_VIRTIMO_BPC_DECANTER_APPENDER_OPENSEARCH_DELETEENTRIESOLDERTHAN in the central configuration file (bpc.env.sh) has been fixed. Previously, enabling this option did not work because the value must be enclosed in quotation marks. The Windows version was not affected.

    Affects:

  • Replication incorrectly detects an infinite loop BPC-10181

    Affects: BPC Core |

Internal Dependencies / Dependency Updates

  • Karaf Update BPC-9960

    This update upgrades Karaf to version 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 java BPC-10235

    Re:

BPC 4.1.26

Release Date: 2025-10-13

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

Breaking Changes

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

  • 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). Caution: 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.)

Improvements

  • Better display and setting of Boolean values in settings 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 |

Security

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

  • Default for filterSessionCookie set to true BPC-9926

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

Bugs

  • Replication in an Infinite Loop BPC-10121

    Replication could get stuck in a specific time window if that window was adjacent to the present and no records were found.

    Subject: BPC Core |

  • JavaScript modifiers cannot be executed BPC-9993

    For existing Karaf installations, include the following value in KARAF/etc/custom.properties:

    # the base value is from config.properties and has been extended
    # by the packages 'jdk.internal.access' and 'jdk.internal.module'
    org.osgi.framework.bootdelegation = \
        com.sun.*, \
        javax.transaction, \
        javax.transaction.xa, \
        javax.xml.crypto, \
        javax.xml.crypto.*, \
        javax.security.cert, \
        jdk.nashorn.*, \
        sun.*, \
        jdk.internal.reflect, \
        jdk.internal.reflect.*, \
        org.apache.karaf.jaas.boot, \
        org.apache.karaf.jaas.boot.principal, \
        jdk.internal.access, \
        jdk.internal.module

    Subject: Data Analysis | Karaf |

BPC 4.1.25

Release Date: 2025-08-21

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

Improvements

  • Enable grouping by default in the BPC Settings tables. BPC-9737

    The option to group settings is now enabled by default. It is recommended to use this view, as it displays the settings in a shared context.

    Re: BPC Core |

  • Status Change: Automatic Preselection of Target Status BPC-9816

    A preselected value can now be configured for the process status change. The preselection is controlled by the configuration preselectState in the setting function_changeStateConfig.

    "preselectState": "_first": Always selects the first available value from the dropdown. "preselectState": "<Suchwert>": Selects the first entry that contains the specified text (case-sensitive). Both raw values and display names (from Custom Renderer) can be used.

    If exactly one process is loaded and there are exactly two values to choose from, the status field automatically selects the status that does not match the current status.

    Sample configuration
    [
        {
            "dataIndex": "STATUS",
            "useDistinctValues": true,
            "preselectState": "Offen"
        },
        {
            "dataIndex": "VALID",
            "useDistinctValues": true,
            "preselectState": "no"
        },
        {
            "dataIndex": "STATUS2",
            "useRendererValues": true,
            "useDistinctValues": false,
            "preselectState": "_first"
        }
    ]

Bugs

  • Replication stops when gaps > blockDayRange BPC-9606

    Re: BPC Core |

  • Data Modifier Editor does not always save the latest changes when saving BPC-9613

    Affects: BPC Core |

  • Maintenance mode can be enabled via the UI but cannot be disabled again. Error: "Not allowed to set local server properties" BPC-9799

    When BPC is running in a cluster, it may not be possible to disable maintenance mode via the GUI.

    Affects: BPC Core |

BPC 4.1.24

Release Date: 2025-06-02

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

Security

  • Filter session cookie content from log files BPC-9533

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

    with the following: log4j2.maskpasswords.pattern = %replace{${log4j2.pattern}}{(password=[^\\s,]+)|(&quot;password&quot;\\s*:\\s*&quot;\\w+&quot;)}*{}*

    with the following lines:

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

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

Bugs

  • PDFs cannot be made available for download via INUBIT or for the file viewer in the process monitor BPC-9105

    When binary files were uploaded via INUBIT or another backend system, the files might have been corrupted during download or viewing.

    Affects: Process Monitoring |

Internal Dependencies / Dependency Updates

  • Update java BPC-9564

    Affects:

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

    Subject:

BPC 4.1.23

Release Date: 2025-04-08

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

Breaking Changes

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

  • Restriction on the visibility of the gear icon for widget configuration in the dashboard BPC-9087

    Dashboard widgets now only display the configuration icon if the user is authorized to edit the dashboard. To do so, the user needs the " bpcDashboard_editDashboard" permission. Users without this permission can no longer edit dashboard widgets. If editing capabilities (e.g., for custom widgets) are to continue to be offered, either the corresponding permission must be granted or the configuration must be provided through alternative means (e.g., via the widget header).

Improvements

  • CustomRenderer and the translate formatter are applied in the monitor export BPC-9100

    Subject: Process Monitoring |

  • Inclusion of all renderers in the filter selection list BPC-8112

    Subject: Process Monitoring |

  • Display the number of selected rows during status changes BPC-8673

  • Displaying the number of selected processes/rows BPC-8722

    In the moduleHeaderContent setting, the Parameter showSelectionCounter in the metablock can be used to control whether the number of selected records is displayed.

    [
        {
          "id": "metadata",
          "config": {
            "showFilter": false,
            "showSorter": false,
            "showSelectionCounter" : true
            }
        }
    ]
  • Restriction on the visibility of the gear icon for widget configuration in the dashboard BPC-9087

    Dashboard widgets now only display the configuration icon if the user is allowed to edit the dashboard. To do so, the user needs the " bpcDashboard_editDashboard" permission. Users without this permission can no longer edit dashboard widgets. If editing capabilities (e.g., for custom widgets) are to continue to be offered, either the corresponding permission must be granted or the configuration must be provided through alternative means (e.g., via the widget header).

  • The BPC startup script should not wait 30 seconds each time (after OpenSearch starts and after Karaf starts) BPC-9332

    The startup script no longer waits 30 seconds after OpenSearch and Karaf start. If problems arise where OpenSearch is not available in a timely manner, the watchdog should be used.

    Re:

  • Separate the BPC startup script from setup functions BPC-9372

    The startup script no longer makes any changes to the environment. Directories must be configured according to the installation instructions, and JAVA_HOME must also be configured correctly.

    Affects:

Bugs

  • ProcessStarter: "windowWidth" and "windowHeight" do not affect the window BPC-9042

    The ProcessStarter configuration for windowWidth and windowHeight now correctly affects the window.

  • Invalid operators for numeric column filters BPC-9082

    The selection of an operator for "number" filters has been restricted to the operator list. "=" is defined as the default operator, and the default operator can also be changed in the filter configuration within the column configuration. See also Configuring the Monitor Columns

  • The bpcMonitor_editMonitorViews permission cannot be restricted to individual module IDs BPC-9329

    The bpcMonitor_editMonitorViews permission can be set for specific instances to create and modify views in certain monitors by appending the module ID at the end.

  • Changes in karaf/etc/de.Virtimo.BPC.core.cfg are not applied at runtime BPC-9413

    Re: BPC Core |

Documentation

BPC 4.1.22

Release Date: 2025-03-10

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

You should read the descriptions in this section carefully. These are recommended steps to take when performing an update*.*

New Features

Improvements

  • Optimized use of OpenSearch to avoid misleading warnings BPC-9175

    The OpenSearch log contains many entries such as "QueryGroup _id can’t be null, It should be set before accessing it." This is a known OpenSearch bug that was introduced in version 2.18.0. We have reduced the number of these messages as much as we could on our end.

    Re: BPC Core |

  • Make default charts in the Analysis module compatible with the dark theme BPC-9293

    To display existing charts using a dark theme without a white background, the background color of the charts should be set to full transparency (RGBA alpha value set to 0) under Chart Configuration → Settings → Background Color.

    Subject: Data Analysis |

Bugs

  • OpenSearch backups are not running BPC-9334

    Snapshots whose names do not conform to the current naming scheme have blocked the execution of backups.

    Affects: BPC Core |

  • HTTP Proxy Sets Invalid Headers When Using HTTP/2 BPC-9337

    When the HTTP proxy used an HTTP/2 connection, the pseudo-header ":status" was passed on to the client. Under a strict interpretation, this results in an error. For example, in this case, nginx reported a 502 Bad Gateway error to the client.

    Subject:

  • Deployment Error BPC-9221

    If a deployment was performed from a BPC with existing monitor views to a BPC that did not yet have any views, an error occurred.

    This error has been fixed.

    Re: BPC Core |

  • Instance-Specific Permissions for Editing HTML Content BPC-9365

    A bug was fixed that prevented instance-specific HTML content editing permissions from being granted by the role htmlcontent_editor_<MODUL-ID>.

    Re: BPC Core |

Internal Dependencies / Dependency Updates

BPC 4.1.21

Release Date: 2025-02-10

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

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

  • Updating TLS Hardening BPC-9256

    Properties have been set in the custom.java.security

    If you are not yet using a ` custom.java.security ` file via Central configuration file, you should do so.

    Existing ` custom.java.security ` files should be updated with the following entry:

    jdk.tls.disabledAlgorithms=X448, secp521r1, SHA1, include jdk.disabled.namedCurves

    Subject:

  • Custom Java Security Settings via BPC.env for OpenSearch BPC-9259

    The bpc.env files now also apply the security.properties settings from the file custom.java.security to OpenSearch. As a result, changes made to this file affect both Karaf and OpenSearch.

    If you are using a BPC.env file, it is recommended that you update it. If it does not already exist, the file custom.java.security be added. To do so, the following must be added.

    bpc.env.sh
    export OPENSEARCH_JAVA_OPTS="$OPENSEARCH_JAVA_OPTS -Djava.security.properties=../custom.java.security"
    bpc.env.cmd
    SET OPENSEARCH_JAVA_OPTS=%OPENSEARCH_JAVA_OPTS% -Djava.security.properties=..\custom.java.security

Improvements

  • Static Settings BPC-8614

    Settings can now be protected from changes via the BPC license. This will primarily be used in our cloud installations (K8s). For example, using the core setting 'backupRepository', we define the configuration for OpenSearch backups in an Amazon S3 bucket, and we do not want this to be changeable via the BPC frontend.

    To achieve this, when creating the license, the XML can be extended with the list element ` NON_WRITEABLE_SETTINGS `, which contains the IDs of the non-editable settings.

    Excerpt from a sample license:

    <?xml version="1.0" encoding="UTF-8" ?>
    <license>
        <bpc>
            <licenseKeys>
            ...
            </licenseKeys>
            <licenseMaps>
            ...
            </licenseMaps>
            <licenseLists>
                <NON_WRITEABLE_SETTINGS>
                    <_core_noinstance_backupRepository/>
                    <_core_noinstance_identityProviderBackendConnection/>
                </NON_WRITEABLE_SETTINGS>
            </licenseLists>
        </bpc>
    </license>

    The settings (example: _core_noinstance_backupRepository) are the same as those used in the OpenSearch index ‘BPC-configuration’.

    The structure is as follows: <ModuleId>_<InstancId>_<SettingName>

    If the setting pertains to a module and not to an instance or component, then the value noinstance must be used for the <InstanceId>. You can access the <SettingName> by displaying the "ID" column in the Settings grid in the BPC frontend.

    Example: _core_noinstance_backupRepository

    • <ModuleId> = _core

    • <InstanceId> = noinstance

    • <SettingName> = backupRepository

    Affects: BPC Core |

  • Reduce the number of shards for newly created OpenSearch indices BPC-9049

    We have reduced the number of shards to 1 in the Core_IndexTemplates setting. This is also the default setting that Elasticsearch/OpenSearch has been using for new indices for a few years now. This only affects newly created indices. Existing indices are not affected.

    Re: BPC Core |

  • Reduction in Accesses to the OpenSearch Backup API BPC-9189

    By optimizing accesses to the OpenSearch Backup API, fewer accesses are made to the data storage. This reduces the associated costs, for example, when using Amazon S3.

  • JSON data should not be sorted automatically BPC-9227

    When saving JSON settings, attributes within objects were automatically sorted. This behavior has been disabled. This makes it possible to arrange the order according to your own criteria.

    Re: BPC Core |

  • Custom Java Security Settings via BPC.env for OpenSearch BPC-9259

    The bpc.env files now also set the security.properties for OpenSearch from the file custom.java.security. As a result, changes made to this file affect both Karaf and OpenSearch.

    If you are using a BPC.env file, it is recommended that you update it. If it does not already exist, the file custom.java.security To do this, add the following:

    bpc.env.sh
    export OPENSEARCH_JAVA_OPTS="$OPENSEARCH_JAVA_OPTS -Djava.security.properties=../custom.java.security"
    bpc.env.cmd
    SET OPENSEARCH_JAVA_OPTS=%OPENSEARCH_JAVA_OPTS% -Djava.security.properties=..\custom.java.security
  • The BPC license filename should allow an additional .Virtimo file extension for joining BPC & INUBIT licenses. BPC-7813

    The license filename may now also be license.xml.virtimo. Previously, it had to be license.xml.bpc. This makes it possible to use a license that is also a valid INUBIT license file.

    Subject: BPC Core |

  • Speed up generation of the config JSON for the BPC frontend BPC-9263

    This change speeds up the loading of the BPC configuration in the client.

Security

  • Updating TLS Hardening BPC-9256

    Properties have been set in the custom.java.security

    If you are not yet using a custom.java.security file via Central configuration file, you should do so.

    Existing custom.java.security files should be updated with the following entry:

    jdk.tls.disabledAlgorithms=X448, secp521r1, SHA1, include jdk.disabled.namedCurves

    Re:

Bugs

  • Data_Filter: No placeholder replacement for roles and use of "#" BPC-9110

    The placeholder #user.loginName# is now correctly replaced in the Data_Filter when the dynamic filter # is used.

    Subject: Process Monitoring |

  • Handling Multiple Session Cookies BPC-9164

    If the client sends multiple session cookies—possibly because multiple BPC instances are installed on the server—the appropriate session cookie is now taken into account.

    Re: BPC Core |

  • Detail View Update Problem BPC-9252

    In cases involving frequent data changes, errors could occur in the monitor when displaying detail views. As a result, the entire rendering of the application was disrupted, and the page had to be reloaded manually.

    Affects: Process Monitoring |

  • Module upload causes an OOM exception BPC-9266

    Uploaded files are no longer kept entirely in memory. This reduces memory usage and prevents "OutOfMemoryException".

    Affects: BPC Core |

Internal Dependencies / Dependency Updates

  • Update Karaf, CXF, and Jackson BPC-9264

    This update requires updating Karaf and the modules bpc-be-core, bpc-be-analysis, bpc-be-forms, and bpc-be-monitor.

    For BPC module developers:

    In our earlier Karaf versions, we used CXF version 3.5.4. This CXF version includes Jackson version 2.14.3. We now ship Karaf with CXF 3.6.5, which includes Jackson version 2.17.2.

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

    Replace

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

    with

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

BPC 4.1.20

Release Date: 2025-01-13

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

You should read the descriptions in this section carefully. These are recommended steps to take when performing an update.

Improvements

  • Reduced Log Level BPC-8660

    The log level for the BPC plugin in OpenSearch has been reduced from trace to info. This setting can be found in the file opensearch/config/log4j2.properties.

    Re: OpenSearch |

  • Commit Date Instead of Build Date in Bundle Info BPC-9174

    The bundle info, which can be accessed via the Karaf console, no longer displays the build date but rather the date of the last change to the underlying source code.

Bugs

Internal Dependencies / Dependency Updates

BPC 4.1.19

Release Date: 2024-12-16

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

New Features

  • Update to settings for IGUASU instance type in Flow BPC-8863

    Starting with IGUASU version 3.0.6, you can now jump directly from the BPC Flow Processor overview to the IGUASU processor. “Frontend URL” and “System ID” are now available in the Flow Manager. “URL” has been renamed to “Service URL.” Username and password are no longer required. Long descriptions of the processors are displayed in abbreviated form, with the full text available in a tooltip.

    Re: BPC Core |

Improvements

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

  • Fields of type "object" and "flat_object" should be displayed correctly in the monitor using the default configuration BPC-9144

    Fields containing nested JSON objects are assigned the value "formatter" : "jsonStringify" in the initial column configuration. This converts the contents to text and displays them in the monitor.

    Affects: Process Monitoring |

Bugs

  • New: Replication distribution within the cluster is not always triggered BPC-8504

    A bug has been fixed that caused individual replication jobs to not be distributed correctly across all available nodes when changes were made to the nodes in the BPC cluster.

    Re: OpenSearch |

  • OpenSearch cannot be accessed via HTTP BPC-8800

    Although the OpenSearch connection was configured to use HTTP, the system attempted to establish the TLS context based on the configuration. However, if this configuration was incorrect, an error occurred.

    The configuration is now ignored, as it is not relevant for HTTP connections.

    Nevertheless, it is recommended to use secure connections in this context.

    Affects: BPC Core |

  • Replication and Tail Sync cause data inconsistencies BPC-9088

    There were various issues when the time zone of the "Last Updated" column in the database table was set to UTC: - Tail Sync did not always delete all records. - Instead, it updated all records on every run. - Interaction with replication was also disrupted.

    Re: BPC Core |

  • BPC Prometheus metric bpc_module exports incorrect version information BPC-9119

    Re: BPC Core |

Documentation

BPC 4.1.18

Release Date: 2024-11-18

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

Update to the internal configuration

Changes were made to the internal configuration of the BPC in this version. 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.

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

New Features

Improvements

  • Unnecessary error logs with MaintenanceModeEnabledException BPC-8784

    Re: BPC Core |

Bugs

  • When impersonating, the language of the impersonating user is saved in the impersonated user’s account BPC-8864

    When impersonating other users, the language can no longer be changed in the impersonated user’s Keycloak profile. For this to work, Keycloak must be configured correctly so that Impersonator information is provided via an active scope.

    Re: BPC Core |

  • Remove obsolete grid_showHeader configuration BPC-8912

    The configuration grid_showHeader is obsolete because it causes errors. The behavior of the header has been controlled for some time now using the parameter moduleHeader_enabled. This setting is automatically removed during the BPC update.

Documentation

Internal Dependencies / Dependency Updates

Miscellaneous

  • Update Java BPC-9016

    Re:

BPC 4.1.17

Release Date: 2024-10-18

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

New Features

  • LocalStorage should be automatically cleared during the BPC update BPC-6268

    When the BPC is loaded, the version number of the Core Common Package (Fe-Core) is determined and stored in Local Storage. If this version number differs from the one saved during the previous load, the local storage is reset.

    Subject: BPC Core |

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

Miscellaneous

  • Java Update BPC-8962

    Subject:

BPC 4.1.16

Release Date: 2024-09-23

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

Improvements

Bugs

  • Opensearch: BpcPlugin - ConcurrentModificationException BPC-8852

    Subject: OpenSearch |

BPC 4.1.15

Release Date: 2024-08-26

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

Security

Internal Dependencies / Dependency Updates

BPC 4.1.14

Release Date: 2024-07-02

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

Improvements

  • Enable re-login in case of IP pinning issues BPC-8179

    If an IP pinning error occurs, you can now log in normally after reloading the page in your browser. The error will not reappear (unless the IP address changes again).

    Affects: BPC Core |

BPC 4.1.13

Release Date: 2024-06-04

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

Breaking Changes

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

  • The maximum memory for Karaf is configured differently BPC-8542

    In current Karaf versions, Karaf-specific environment variables for setting JVM memory have been removed and must be replaced with an alternative.

    Linux

    Please replace `

    # Karaf
    export EXTRA_JAVA_OPTS="$EXTRA_JAVA_OPTS -Xms128m -Xmx512m"

    ` with ` bpc.env.sh

    # Karaf
    export JAVA_MIN_MEM=128M
    export JAVA_MAX_MEM=512M

    ` and adjust the values accordingly.

    Windows

    Please replace bpc.env.cmd

    rem *** Karaf ***
    SET JAVA_MIN_MEM=128M
    SET JAVA_MAX_MEM=512M

    with

    rem *** Karaf ***
    SET EXTRA_JAVA_OPTS=%EXTRA_JAVA_OPTS% -Xms128m -Xmx512m

    and adjust the values accordingly.

Improvements

  • Maximum memory for Karaf is configured differently BPC-8542

    In current Karaf versions, Karaf-specific environment variables for setting JVM memory have been removed and must be replaced with an alternative.

    Linux

    Please replace `

    # Karaf
    export EXTRA_JAVA_OPTS="$EXTRA_JAVA_OPTS -Xms128m -Xmx512m"

    ` with ` bpc.env.sh

    # Karaf
    export JAVA_MIN_MEM=128M
    export JAVA_MAX_MEM=512M

    ` and adjust the values accordingly.

    Windows

    Please replace bpc.env.cmd

    rem *** Karaf ***
    SET JAVA_MIN_MEM=128M
    SET JAVA_MAX_MEM=512M

    with

    rem *** Karaf ***
    SET EXTRA_JAVA_OPTS=%EXTRA_JAVA_OPTS% -Xms128m -Xmx512m

    and adjust the values accordingly.

    Subject: Documentation |

BPC 4.1.12

Release Date: 2024-05-06

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

Bugs

  • Discrepancies in replication consistency checks BPC-8494

    Affects: BPC Core |

Documentation

  • Typo during setup as Windows services BPC-8452

BPC 4.1.11

Release Date: 2024-04-08

The following components must be updated with this update: BPC Module | OpenSearch | 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.

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

Bugs

Internal Dependencies / Dependency Updates

BPC 4.1.10

Release Date: 2024-03-11

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

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 for an update.

  • Karaf Log Monitor BPC-7550

    Karaf logs are now made available via a monitor (see also Karaf Log).

    The additional component 'Decanter' is used to write the Karaf logs to the OpenSearch index bpc-logs. In a new Karaf installation, this component is already preinstalled, and no action is required. If an existing Karaf installation cannot or should not be replaced, it can also be installed later via the Karaf console (internet connection required).

    virtimo@bpc [virtimo@bpc]()> feature:repo-add decanter
    virtimo@bpc [virtimo@bpc]()> feature:install decanter-collector-log

    For configuration instructions, see Karaf Log.

    Subject: BPC Core | ** Documentation | Karaf |

  • Compilation with Java 17 BPC-8333

    As a result of this change, the use of Java 17 is now mandatory, and support for Java 11 has ended.

  • Karaf Update BPC-8353

    Karaf must be updated with this update.

    Re: BPC Core | Karaf |

New Features

  • Karaf Log Monitor BPC-7550

    Karaf logs are now made available via a monitor (see also Karaf Log).

    The additional component 'Decanter' is used to write the Karaf logs to the OpenSearch index bpc-logs. In a new Karaf installation, this component is already pre-installed, and no action is required. If an existing Karaf installation cannot or should not be replaced, it can also be installed later via the Karaf console (internet connection required).

    virtimo@bpc [virtimo@bpc]()> feature:repo-add decanter
    virtimo@bpc [virtimo@bpc]()> feature:install decanter-collector-log

    For configuration instructions, see Karaf Log.

  • Health endpoint for cluster Leader BPC-7915

    New status endpoint for querying the role of individual nodes in cluster mode. This endpoint can now be used to check whether a node has the "Leader" role or not. See also BPC API /cxf/bpc-core/status/clustermaster

Improvements

Internal Dependencies / Dependency Updates

  • Karaf Update BPC-8353

    Karaf must be updated with this update.

    Subject: BPC Core | Karaf |

BPC 4.1.9

Release Date: 2023-12-15

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

  • Display Karaf version on status page BPC-8260

    An update to the OpenSearch plugin (os-BPC-plugin) is required.

    Subject: BPC Core | OpenSearch |

Improvements

  • Display Karaf version on the status page BPC-8260

    An update to the OpenSearch plugin (os-BPC-plugin) is required.

  • Dashboard module reduced to frontend BPC-8279

    For existing installations, the file bpc-be-dashboard.jar can be omitted without replacement and deleted from the KARAF/deploy directory. The Dashboard module now consists solely of the file bpc-fe-dashboard.war.

BPC 4.1.8

Release Date: 2023-11-21

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

BPC 4.1.7

Release Date: 2023-10-23

The following components must be updated with this update: BPC Modules | OpenSearch | 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.

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

Internal Dependencies / Dependency Updates

BPC 4.1.6

Release Date: 2023-09-25

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

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

  • Update Karaf BPC-8077

    Karaf must be updated with this update.

    By default, users from the users.properties are no longer allowed to log in to the Karaf console via SSH. To allow users to log in via SSH, add the role ssh to the individual user’s entry in the file KARAF/etc/users.properties, or add the role from admingroup.

    Subject: BPC Core | Karaf |

  • Remove from the BPC default public key in keys.properties BPC-8210

    Entries in the file KARAF/etc/keys.properties that you do not use for logging in with a public/private key can be removed.

    Subject: Karaf |

Security

  • Remove the BPC default public key from keys.properties BPC-8210

    Entries in the file KARAF/etc/keys.properties that you do not use for logging in with a public/private key can be removed.

    Re: Karaf |

Internal Dependencies / Dependency Updates

  • Karaf Update BPC-8077

    Karaf must be updated with this update.

    By default, users from the users.properties are no longer allowed to log in to the Karaf console via SSH. To allow users to log in via SSH, add the role ssh to the individual user’s file at KARAF/etc/users.properties or add the role from admingroup.

    Re: BPC Core | Karaf |

BPC 4.1.5

Release Date: 2023-08-28

With this update, the following components must be updated: BPC Module

BPC 4.1.4

Release Date: 2023-08-14

The following components must be updated with this update: BPC Modules | 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.

  • OpenSearch Cluster Operation: Socket Timeouts in the os-BPC-plugin BPC-8059

    If set, remove the following os-bpc-plugin -specific settings that are no longer needed from the conf/opensearch.yml.

    • os-BPC-plugin.opensearch.basicauth.username

    • os-BPC-plugin.opensearch.basicauth.password

    • os-BPC-plugin.trust_certificates

    • os-BPC-plugin.verify_hostnames

    • os-BPC-plugin.truststore.path

    • os-BPC-plugin.truststore.type

    • os-BPC-plugin.truststore.password

    If this is not done, OpenSearch will not start and will return the error "please check that any required plugins are installed, or check the breaking changes documentation for removed settings".

  • Load JSON schema from the backend and use it to validate JSON settings BPC-6607

    Affects only module developers When using the BPC JsonEditor (xtype bpcJsonField or bpcCodeEditorWindow.json), the optional JSON schema is now passed via schema and no longer via jsonSchema.

    Re: BPC Core |

  • unintended trimming during jump BPC-7961

    Previously, the content of the monitor jump column was trimmed (removal of leading and trailing spaces) when filtering in the target monitor. This is no longer done so that you can filter specifically for values with spaces at the beginning or end.
    If you use values with additional spaces in your monitor jump column (e.g., in connection with the separator) that do not match the target values in the target monitor, these may need to be removed.

New Features

  • Load JSON schema from the backend and use it to validate JSON settings BPC-6607

    Applies only to module developers When using the BPC JsonEditor (xtype bpcJsonField or bpcCodeEditorWindow.json), the optional JSON schema is now passed via schema and no longer via jsonSchema.

    Re: BPC Core |

Bugs

  • OpenSearch Cluster Operation: Socket Timeouts in the os-BPC-plugin BPC-8059

    If set, remove the following os-bpc-plugin -specific settings that are no longer needed from the conf/opensearch.yml.

    • os-BPC-plugin.opensearch.basicauth.username

    • os-BPC-plugin.opensearch.basicauth.password

    • os-BPC-plugin.trust_certificates

    • os-BPC-plugin.verify_hostnames

    • os-BPC-plugin.truststore.path

    • os-BPC-plugin.truststore.type

    • os-BPC-plugin.truststore.password

    If this is not done, OpenSearch will not start and will return the error "please check that any required plugins are installed, or check the breaking changes documentation for removed settings".

  • Unintended trimming on jump BPC-7961

    Previously, the content of the Monitor Jump column was trimmed (removal of leading and trailing spaces) when filtering in the target monitor. This is no longer done so that you can specifically filter for values with spaces at the beginning or end.
    If you use values with additional spaces in your monitor jump column (e.g., in connection with the separator) that do not match the target values in the target monitor, these may need to be removed.

    Subject: Process Monitoring |

BPC 4.1.3

Release Date: 2023-07-03

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

BPC 4.1.2

Release Date: 2023-06-05

With this update, the following components must be updated: BPC Modules | OpenSearch Plugin

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

  • In the OpenSearch cluster, data from the os-BPC-plugin is not reliably synchronized between nodes BPC-7768

    An update to OpenSearch or the os-BPC-plugin is required.

Bugs

  • In the OpenSearch cluster, data from the os-BPC-plugin is not reliably synchronized between nodes BPC-7768

    An update to OpenSearch or the os-BPC-plugin is required.

BPC 4.1.1

Release Date: 2023-05-08

The following components must be updated with this release: BPC Modules | 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.

  • Renaming of the function BpcCommon.Api.getInstanceUrl to BpcCommon.Api.getModuleUrl BPC-7902

    The name of the Common function "getInstanceUrl" (introduced with BPC 4.1.0) is being replaced by "getModuleUrl."

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

Improvements

  • Renaming of the BpcCommon.Api.getInstanceUrl to BpcCommon.Api.getModuleUrl BPC-7902

    The name of the Common function "getInstanceUrl" (introduced with BPC 4.1.0) is replaced by "getModuleUrl".

Internal Dependencies / Dependency Updates

BPC 4.1.0

Release Date: 2023-03-27

The following components must be updated with this update: 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 at Versioning of the Internal BPC Configuration.

Breaking Changes

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

  • ChildLog should not use "eval" for filters and renderers BPC-5375

    To prevent scripting attacks, renderers can no longer be defined as plain text JavaScript in the columns. Custom renderer functions can be referenced as described here. Formatting functions from Ext.util.Format can be used by specifying the formatter. See also: Column configuration

  • Migration to OpenSearch BPC-5819

  • Karaf Update BPC-6709

    A Karaf update is required for this BPC update.

    Customer themes and custom BPC modules must be adapted so that the Web-ContextPath and Webapp-Context in the manifest file must begin with /. To achieve this, you can usually modify the file build.gradle. An example can be found at https://bitbucket.org/Virtimo/BPC-theme-template/commits/469a13171aa82655b6f0475b38a561d2ebceee52 [can be viewedhttps://bitbucket.org/virtimo/bpc-theme-template/commits/469a13171aa82655b6f0475b38a561d2ebceee52][here].

    In the configuration file [karaf]/etc/org.ops4j.pax.web.cfg, Parameters have been renamed:

    org.ops4j.pax.web.ssl.password -> org.ops4j.pax.web.ssl.keystore.password
    org.ops4j.pax.web.ssl.keypassword -> org.ops4j.pax.web.ssl.key.password
  • Our Backend API as a Maven module BPC-6872

    We had to move some interfaces/classes from the package de.virtimo.bpc.core to the package de.virtimo.bpc.api.

    If you compile your code for 4.0.8 or 4.1 and receive errors, please update your Java imports. In most cases, you only need to replace .core. with .api.. Otherwise, delete the import and let the IDE find it for you.

    And please make sure you do not have any <Import-Package> statements in your pom.xml for the following packages:

    • de.virtimo.bpc.core.exception

    • de.virtimo.bpc.auth.*

    • de.virtimo.bpc.core.es.querybuilder

  • Adjust the package of the util classes from the 'util' module BPC-6886

    If BPC Core util classes were used.

    Please update the Java import statements

    • OLD: de.virtimo.bpc.core.utils.*

    • NEW: de.virtimo.bpc.util.*

    And the pom.xml (<Import-Package>)

    • OLD: de.virtimo.bpc.core.utils;version="[4.0,5.0)",

    • NEW: de.virtimo.bpc.util;version="[4.0,5.0)",

  • Move BpcTrustStoreUtil to the util module BPC-6924

    If the following was used

    de.virtimo.bpc.core.utils.BpcTrustStoreUtil.setTo(…​)

    please replace it with

    de.virtimo.bpc.util.BpcTrustStore.getInstance().setTo(…​)

    Subject: BPC Core |

  • Renaming of attributes in the context of plugin hooks BPC-7379

    For BPC developers

    Plugins are passed a context when they are called. Two attributes in the context object have been renamed. moduleId has been changed to baseModuleId, and instanceId has been changed to moduleId.

  • Required adjustments to the backend modules when using BPC annotations: @BpcUserSessionRequired, …​ BPC-7384

    Relevant for BPC module developers / Important for BPC Developers

    This is only necessary when you use one of the following annotations in your backend modules/bundles:

    • @BpcUserSessionRequired

    • @BpcRoleRequired

    • @BpcRightRequired

    • @BpcRoleOrRightRequired

    • @BpcHardcodedBasicAuthentication

    If this is the case, please update your resources/OSGI-INF/blueprint/context.xml

    and replace

    <bean id="bpcJAXRSInvoker" class="de.Virtimo.BPC.jaxrs.BpcJAXRSInvoker"/>

    with

    <bean id="bpcJAXRSInvoker" class="de.Virtimo.BPC.jaxrs.BpcJAXRSInvoker" init-method="onStartup" destroy-method="onShutdown"> <argument ref="blueprintBundleContext"/> </bean>

  • Strong Password Encryption BPC-7390

    With the Karaf update, a stronger algorithm is now used for hashing passwords. This affects all JAAS-based https://docs.Virtimo.net/BPC-docs/latest/core/admin/identity_provider/idp_config.html [https://docs.virtimo.net/bpc-docs/latest/core/admin/identity_provider/idp_config.html][Identity Provider] and the login to the Karaf console. All existing user passwords will no longer be valid and must be recreated!

    If you wish to continue using the old user passwords, you must continue to use the old password hashing algorithm. This is described below. If you wish to use the new algorithm, you do not need to follow the steps below.

    Using weak algorithms poses a potential security risk.

    Add the following values to the bpc.env to retain the old algorithm.

    export ORG_APACHE_KARAF_JAAS_ENCRYPTION_ENABLED=true
    export ORG_APACHE_KARAF_JAAS_ENCRYPTION_NAME=basic
    export ORG_APACHE_KARAF_JAAS_ENCRYPTION_ALGORITHM=SHA-512
    export ORG_APACHE_KARAF_JAAS_ENCRYPTION_ENCODING=hexadecimal

    Configuration via Karaf configuration files

    Change the following values in the configuration file [karaf]/etc/org.apache.karaf.jaas.cfg. This will revert to the previous (weak) encryption.

    encryption.name = basic
    encryption.algorithm = SHA-512

    Existing JAAS JDBC

    The Virtimo JAAS JDBC implementation now uses the password encryption settings from the file: [karaf]/etc/org.apache.karaf.jaas.cfg. These do not match the ones used previously.

    Therefore, if JAAS JDBC was already in use and you wish to continue using the existing (weak) hashes, please create the following file: [karaf]/etc/de.virtimo.bpc.core.auth.jaas.jdbc.cfg

    The following content restores the previous (weak) configuration:

    • up to BPC 4.0.15

       encryption.enabled = true
       encryption.name = basic
       encryption.algorithm = SHA-512
       encryption.encoding = hexadecimal
       encryption.prefix = {CRYPT}
       encryption.suffix = {CRYPT}

      Unfortunately, all password hashes in the database table must then be updated to include the prefix and suffix. Example: PasswortHash{CRYPT}PasswortHash{CRYPT}. Starting with BPC version 4.0.15, this adjustment is no longer necessary.

    • starting with BPC 4.0.15

       encryption.enabled = true
       encryption.name = basic
       encryption.algorithm = SHA-512
       encryption.encoding = hexadecimal
       encryption.prefix =
       encryption.suffix =

      This means that, as before, passwords are stored in the database table without a prefix or suffix.

    To use a more secure hash algorithm such as argon2, all passwords must be regenerated and thus reset.

    After adjusting these settings, Karaf must be restarted.

    Subject: BPC Core | ** Documentation | Karaf |

  • Content Security Policy BPC-7443

    A Content Security Policy (CSP) is set via an HTTP header. This may affect your own modules, INUBIT WebApps, or integrated third-party applications. To customize the CSP, see Content Security Policy

  • Apache CXF BPC-7546

    We used CXF version 3.5.4 in our previous Karaf releases. This CXF version provides Jackson version 2.13.4. We now ship Karaf with CXF 3.5.5, which includes Jackson version 2.14.1.

    Please update the CXF version (3.5.4 → 3.5.5) in your pom.xml. It is also important to update the version of Jackson being used. To do this, check if you have an Import-Package statement for it. This must be added or adjusted when you use Jackson functionality such as the ` ObjectMapper ` class.

    Replace

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

    with

    <Import-Package>
      ...
      com.fasterxml.jackson.*;version="[2.13.4,2.15.0)",
      ...
    </Import-Package>
  • Additional dashboard (widget) states should be stored locally BPC-7809

    Dashboard settings Dashboard_Responsive(ID: module_isResponsive) and Dashboard_Layout(ID: layout_config) have been removed. Dashboards are now "responsive" by default and utilize the available space within their column. Users can now adjust the height and width of widgets. These changes are stored in the browser but can also be saved to the dashboard by authorized users. Resetting local changes is no longer possible directly on the widget; instead, it is done via a button in one of the toolbars. To display this button, the value ` "resetUserState" ` must be added to one of the settings: ModuleHeader_Content, Toolbar_LeftContent, or Toolbar_RightContent.

  • Replace ReplicationInfoService with an endpoint BPC-7822

    Replication status information is no longer displayed on the monitor. This status information will be provided in a future release via a plugin.

  • Our 'Checker' and 'BpcService' interfaces are being moved BPC-6864

    If you have been using the following

    de.virtimo.bpc.core.utils.ServiceUtil.unregisterService(bundleContext, ServiceRegistration, Class);

    please use

    de.virtimo.bpc.api.BpcService.unregister(bundleContext, ServiceRegistration, Class);

    instead.

    Re: BPC Core |

  • Core modules such as user management do not work in navigation submenus BPC-7784

    For BPC module developers

    There was an undocumented function that responded globally to the " click" event on all components with the " targetModule" attribute. In this process, the value of " targetModule " was passed to the " BpcCommon.Api.showModule " method, thereby triggering navigation to that module. This function has now been removed. If you have used the targetModule attribute—for example, on buttons—for navigation, you must set this up using your own handler that applies only to your components.

    Affects: BPC Core |

You should read the descriptions in this section carefully. These are recommended steps to take when performing an update.

  • "Extract" relevant Karaf configurations from the Karaf folder BPC-6681

    A big request: when updating Karaf, do not simply copy all etc files from the old installation to the new one. This may result in new Karaf options not being set, and in the worst case, Karaf may not start.

    And if at all possible, do not manually edit [karaf]/etc files; instead, make the adjustments via bpc.env.sh (Linux/macOS) or bpc.env.cmd (Windows). This makes Karaf updates much easier and can be used in BPC versions >= 3.4. See Central configuration file for more information.

    Most customizations can be made by overriding values in etc files without having to edit an etc file.

    For example, if you want to set different paths for the keystore and truststore files: The paths are defined in the configuration file [karaf]/etc/org.ops4j.pax.web.cfg under the options org.ops4j.pax.web.ssl.keystore and org.ops4j.pax.web.ssl.truststore.

    To set different paths for these two options, you can add two environment variables to bpc.env.sh:

     export ORG_OPS4J_PAX_WEB_ORG_OPS4J_PAX_WEB_SSL_KEYSTORE=/opt/bpc.env/ssl/virtimo_keystore.jks  export ORG_OPS4J_PAX_WEB_ORG_OPS4J_PAX_WEB_SSL_TRUSTSTORE=/opt/bpc.env/ssl/virtimo_truststore.jks

    Here’s another example of how to set the ` de.virtimo.bpc.core.maintenancemode.fileSystemLimitInMB ` option in the ` [karaf]/etc/de.virtimo.bpc.core.cfg `:

    export DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_MAINTENANCEMODE_FILESYSTEMLIMITINMB=4096

    A limitation will be resolved with the next Karaf update. The deployment directory ([karaf]/deploy) cannot currently be set via an environment variable due to a "bug." This affects the option felix.fileinstall.dir in the configuration file [karaf]/etc/org.apache.felix.fileinstall-deploy.cfg.

    Depending on usage, three files should be copied or replaced with symbolic links:

    • [karaf]/etc/users.properties

    • [karaf]/etc/org.ops4j.pax.logging.cfg

    • [karaf]/etc/de.virtimo.bpc.core.auth.jaas.jdbc.queries.cfg

    Of course, this is only necessary if these files have been modified at all. The options in the two cfg files could also be set via environment variables, but that would require setting several environment variables.

    _
    _Subject:
    **Documentation |

  • Karaf Update BPC-7374

    An update to Karaf is strongly recommended for security reasons.

    Subject: BPC Core | Karaf |

New Features

  • Customized Monitor Views BPC-5331

    Monitor views created with a BPC version < 2.1.6 are no longer supported. To preserve these views, they must be opened once in the "Manage Views" dialog and saved. This process saves the views in the correct format.

Improvements

  • API Key ID BPC-6666

  • "Drag" relevant Karaf configurations from the Karaf folder BPC-6681

    A big request: when updating Karaf, please do not simply copy all etc files from the old installation to the new one. This may result in new Karaf options not being set, and in the worst case, Karaf may fail to start.

    And if at all possible, do not manually edit [karaf]/etc files; instead, make adjustments via bpc.env.sh (Linux/macOS) or bpc.env.cmd (Windows). This makes Karaf updates much easier and can be used in BPC versions >= 3.4. See Central configuration file for more information.

    Most customizations can be made by overriding values in etc files without having to edit an etc file.

    For example, if you want to set different paths for the keystore and truststore files: The paths are defined in the configuration file [karaf]/etc/org.ops4j.pax.web.cfg under the options org.ops4j.pax.web.ssl.keystore and org.ops4j.pax.web.ssl.truststore.

    To set different paths for these two options, you can add two environment variables to bpc.env.sh:

     export ORG_OPS4J_PAX_WEB_ORG_OPS4J_PAX_WEB_SSL_KEYSTORE=/opt/bpc.env/ssl/virtimo_keystore.jks  export ORG_OPS4J_PAX_WEB_ORG_OPS4J_PAX_WEB_SSL_TRUSTSTORE=/opt/bpc.env/ssl/virtimo_truststore.jks

    Here’s another example of how to set the ` de.virtimo.bpc.core.maintenancemode.fileSystemLimitInMB ` option in the ` [karaf]/etc/de.virtimo.bpc.core.cfg `:

    export DE_VIRTIMO_BPC_CORE_DE_VIRTIMO_BPC_CORE_MAINTENANCEMODE_FILESYSTEMLIMITINMB=4096

    A limitation will be resolved with the next Karaf update. The deployment directory ([karaf]/deploy) currently cannot be set via an environment variable due to a "bug." This affects the option felix.fileinstall.dir in the configuration file [karaf]/etc/org.apache.felix.fileinstall-deploy.cfg.

    Depending on usage, three files should be copied or replaced with symbolic links:

    • [karaf]/etc/users.properties

    • [karaf]/etc/org.ops4j.pax.logging.cfg

    • [karaf]/etc/de.virtimo.bpc.core.auth.jaas.jdbc.queries.cfg

    Of course, this is only necessary if these files have been modified at all. The options in the two cfg files could also be set via environment variables, but that would require setting several environment variables.

  • Our Backend API as a Maven Module BPC-6872

    We had to move some interfaces/classes from the de.virtimo.bpc.core package to the de.virtimo.bpc.api package.

    If you’re compiling your code for 4.0.8 or 4.1 and encounter errors, please update your Java imports accordingly. In most cases, you only need to replace .core. with .api.. Otherwise, delete the import and let the IDE find it for you.

    And please make sure you don’t have any <Import-Package> statements in your pom.xml for the following packages:

    • de.virtimo.bpc.core.exception

    • de.virtimo.bpc.auth.*

    • de.virtimo.bpc.core.es.querybuilder

  • Adjust the package of the util classes from the 'util' module BPC-6886

    If BPC Core util classes were used.

    Please update the Java import statements

    • OLD: de.virtimo.bpc.core.utils.*

    • NEW: de.virtimo.bpc.util.*

    And the pom.xml (<Import-Package>)

    • OLD: de.virtimo.bpc.core.utils;version="[4.0,5.0)",

    • NEW: de.virtimo.bpc.util;version="[4.0,5.0)",

  • Move BpcTrustStoreUtil to the util module BPC-6924

    If the following was used

    de.virtimo.bpc.core.utils.BpcTrustStoreUtil.setTo(…​)

    please replace it with

    de.virtimo.bpc.util.BpcTrustStore.getInstance().setTo(…​)

    Subject: BPC Core |

  • Renaming Attributes in the Context of Plugin Hooks BPC-7379

    For BPC developers

    Plugins are passed a context when called. Two attributes in the object context have been renamed. moduleId has been changed to baseModuleId, and instanceId has been changed to moduleId.

  • Additional dashboard (widget) states should be stored locally BPC-7809

    Dashboard settings Dashboard_Responsive(ID: module_isResponsive) and Dashboard_Layout(ID: layout_config) have been removed. Dashboards are now "responsive" by default and utilize the available space within their column. Users can now adjust the height and width of widgets. These changes are stored in the browser but can also be saved to the dashboard by authorized users. Resetting local changes is no longer possible directly on the widget; instead, it is done via a button in one of the toolbars. To display this button, the value ` "resetUserState" ` must be added to one of the settings: ModuleHeader_Content, Toolbar_LeftContent, or Toolbar_RightContent.

  • Replace ReplicationInfoService with an endpoint BPC-7822

    Replication status information is no longer displayed on the monitor. This status information will be provided via a plugin in a future release.

  • Moving our 'Checker' and 'BpcService' interfaces BPC-6864

    If you have been using the following:

    de.virtimo.bpc.core.utils.ServiceUtil.unregisterService(bundleContext, ServiceRegistration, Class);

    please use

    de.virtimo.bpc.api.BpcService.unregister(bundleContext, ServiceRegistration, Class);

    instead.

    Re: BPC Core |

Security

  • ChildLog should not use "eval" for filters and renderers BPC-5375

    To prevent scripting attacks, renderers can no longer be defined as plain text JavaScript in the columns. Custom renderer functions can be referenced as described here. Formatting functions from Ext.util.Format can be used by specifying the formatter. See also: Column configuration

  • Strong Password Encryption BPC-7390

    The Karaf update now uses a stronger algorithm for hashing passwords. This affects all JAAS-based https://docs.Virtimo.net/BPC-docs/latest/core/admin/identity_provider/idp_config.html [https://docs.virtimo.net/bpc-docs/latest/core/admin/identity_provider/idp_config.html][Identity Providers] and login to the Karaf console. All existing user passwords will no longer be valid and must be recreated!

    If you wish to continue using the old user passwords, you must continue to use the old password hashing algorithm. This is described below. If you wish to use the new algorithm, you do not need to follow the steps below.

    Using weak algorithms poses a potential security risk.

    Add the following values to ` bpc.env ` to retain the old algorithm.

    export ORG_APACHE_KARAF_JAAS_ENCRYPTION_ENABLED=true
    export ORG_APACHE_KARAF_JAAS_ENCRYPTION_NAME=basic
    export ORG_APACHE_KARAF_JAAS_ENCRYPTION_ALGORITHM=SHA-512
    export ORG_APACHE_KARAF_JAAS_ENCRYPTION_ENCODING=hexadecimal

    Configuration via Karaf configuration files

    Change the following values in the configuration file ` [karaf]/etc/org.apache.karaf.jaas.cfg `. This will revert to the previous (weak) encryption.

    encryption.name = basic
    encryption.algorithm = SHA-512

    Existing JAAS JDBC

    The Virtimo JAAS JDBC implementation now uses the password encryption settings from the file: [karaf]/etc/org.apache.karaf.jaas.cfg. These do not match the ones used previously.

    Therefore, if JAAS JDBC was already in use and you wish to continue using the existing (weak) hashes, please create the following file: [karaf]/etc/de.virtimo.bpc.core.auth.jaas.jdbc.cfg

    The following content restores the previous (weak) configuration:

    • up to BPC 4.0.15

       encryption.enabled = true
       encryption.name = basic
       encryption.algorithm = SHA-512
       encryption.encoding = hexadecimal
       encryption.prefix = {CRYPT}
       encryption.suffix = {CRYPT}

      Unfortunately, all password hashes in the database table must then be updated with the prefix and suffix. Example: PasswortHash{CRYPT}PasswortHash{CRYPT}. Starting with BPC version 4.0.15, this adjustment is no longer necessary.

    • starting with BPC 4.0.15

       encryption.enabled = true
       encryption.name = basic
       encryption.algorithm = SHA-512
       encryption.encoding = hexadecimal
       encryption.prefix =
       encryption.suffix =

      This means that, as before, passwords are stored in the database table without a prefix or suffix.

    To use a more secure hash algorithm such as argon2, all passwords must be regenerated and thus reset.

    After adjusting these settings, Karaf must be restarted.
  • Content Security Policy BPC-7443

    A Content Security Policy (CSP) is set via an HTTP header. This may affect your own modules, INUBIT WebApps, or integrated third-party applications. To customize the CSP, see Content Security Policy

Bugs

  • Core modules such as user management do not work in submenus of the navigation BPC-7784

    For BPC module developers

    There was an undocumented function that reacted globally, on all components with the attribute targetModule, to the event click. In this case, the value of ` targetModule ` was passed to the method ` BpcCommon.Api.showModule , thereby triggering navigation to that module. This function has now been removed. If you have used the ` `targetModule` attribute—for example, on buttons—for navigation, you must implement your own handler that applies only to your components.

    Re: BPC Core |

Internal Dependencies / Dependency Updates

  • Karaf Update BPC-6709

    An update to Karaf is required for this BPC update.

    Customer themes and custom BPC modules must be adapted so that the Web-ContextPath and Webapp-Context in the manifest file must begin with /. To achieve this, the file build.gradle can usually be modified. An example can be https://bitbucket.org/Virtimo/BPC-theme-template/commits/469a13171aa82655b6f0475b38a561d2ebceee52 [be viewedhttps://bitbucket.org/virtimo/bpc-theme-template/commits/469a13171aa82655b6f0475b38a561d2ebceee52][here].

    In the configuration file [karaf]/etc/org.ops4j.pax.web.cfg, parameters have been renamed:

    org.ops4j.pax.web.ssl.password -> org.ops4j.pax.web.ssl.keystore.password
    org.ops4j.pax.web.ssl.keypassword -> org.ops4j.pax.web.ssl.key.password
  • Karaf Update BPC-7374

    An update to Karaf is strongly recommended for security reasons.

    Re: BPC Core | Karaf |

  • Apache CXF BPC-7546

    We used CXF version 3.5.4 in our previous Karaf releases. This CXF version includes Jackson version 2.13.4. We now ship Karaf with CXF 3.5.5, which includes Jackson version 2.14.1.

    Please update the CXF version (3.5.4 → 3.5.5) in your pom.xml. It is even more important to update the version of Jackson being used as well. To do this, check if you have an Import-Package statement for it. This must be added or adjusted if you use Jackson functionality such as the ` ObjectMapper ` class.

    Replace

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

    with

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

Miscellaneous

  • Migration to OpenSearch BPC-5819

  • Required adjustments to backend modules when using BPC annotations: @BpcUserSessionRequired, …​ BPC-7384

    Relevant for BPC module developers / Important for BPC Developers

    This is only necessary when you use one of the following annotations in your backend modules/bundles:

    • @BpcUserSessionRequired

    • @BpcRoleRequired

    • @BpcRightRequired

    • @BpcRoleOrRightRequired

    • @BpcHardcodedBasicAuthentication

    If this is the case, please update your resources/OSGI-INF/blueprint/context.xml

    and replace

    <bean id="bpcJAXRSInvoker" class="de.Virtimo.BPC.jaxrs.BpcJAXRSInvoker"/>

    with

    <bean id="bpcJAXRSInvoker" class="de.Virtimo.BPC.jaxrs.BpcJAXRSInvoker" init-method="onStartup" destroy-method="onShutdown">     <argument ref="blueprintBundleContext"/>  </bean>

  • Analysis: Replace Elasticsearch with OpenSearch BPC-7454

    Subject: BPC Core | Data Analysis |

Overview of Karaf Updates

Overview of OpenSearch Updates

Overview of Updates to the Internal BPC Configuration

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