Administrations-Changelog

Diese Seite zeigt Änderungen, die in den Releases der einzelnen Versionen enthalten sind und explizit für Administratoren relevant sind. Als Administrator werden Personen angesehen, die Updates am BPC durchführen und administrative Konfiguration im BPC durchführen.

Für die Auflistung aller Änderungen siehe Changelog.

BPC 5.0.4

Release Datum: 2026-03-16

Mit diesem Update müssen folgende Komponenten aktualisiert werden: BPC Module

Update der internen Konfiguration

In dieser Version gab es Änderungen an der internen Konfiguration des BPC. Dies hat Auswirkungen auf Deployments zwischen BPC mit unterschiedlichen Versionen. Außerdem sind zusätzliche Schritte erforderlich, wenn ein Downgrade des BPC durchgeführt wird.

Weitere Informationen finden Sie auf der Seite Versionierung der internen BPC Konfiguration.

Breaking Changes

Sie sollten die Beschreibungen in diesem Abschnitt genau lesen. Es können Handlungsanweisungen enthalten sein, die Sie für ein Update befolgen müssen.

  • Refactoring OIDC/PKCE Handshake: Umstellung auf Stateless (Encrypted Cookie) zur DoS-Prävention BPC-10544

    Daten, die bei OIDC-Providern für den Login verwendet werden, werden in einem Cookie verschlüsselt beim Client hinterlegt. Dadurch wird eine Auslastung durch sehr viele Login-Anfragen verhindert.

    Für BPC-Modulentwickler

    Sollten Sie eine eigene UserFlowIdentityProvider-Implementierung entwickelt haben, müssen Sie diese anpassen. Die Funktion URI createAuthenticationRequestURI(String requestUrl) wurde mit UserFlowLoginContext createAuthenticationRequestContext(String requestUrl) ersetzt und gibt neben der Redirect-URL zum OIDC-Login nun auch einen Cookie, welcher den Login-State enthält, zurück. Dieser Cookie wird beim Login-Versuch vom Frontend gesetzt.

    Für BPC-Administratoren

    Installieren Sie die neuen Module bpc-be-core.jar und bpc-fe-core.war. Ein Neustart des BPCs/Karaf ist notwendig. Sollte das BPC dann immer noch nicht zur Verfügung stehen, löschen Sie bitte das Verzeichnis karaf/data und starten sie den Karaf erneut. (Evtl. machen Sie davor ein Backup Ihrer Log-Files)

    Betrifft: BPC Core |

  • Umbenennung und Zusammenführen von Monitor-Settings zum Download über HTTP-Proxy-Verbindungen BPC-10572

    Im Process-Monitoring wurden die Einstellungen inubit_referenceEndpoint, inubit_proxyId, inutbit_baseUrl zum Download über einen HTTP-Proxy zusammengeführt und in httpProxy_referenceEndpoint umbenannt, so dass die Möglichkeit eines Downloads über eine generische HTTP-Proxy-Verbindung verdeutlicht wird. Die Einstellung inubit_dbTablePrefix wurde entfernt, da sie nur für Legacy-Szenarien verwendet wurde.

  • WebTSM: Zugriff auf REST Endpunkte einschränken BPC-10655

    Timeseries Management Administratoren brauchen, wenn sie nicht der Rolle "bpcadmin" angehören und bisher nur das Recht "webtsm_admin" hatten, nun statt dessen das Recht "webtsm_edit". Einem Timeseries Management Administrator könnte - anstatt dem spezifischen Recht - auch die Rolle "WEBTSM_ADMIN" zugewiesen werden. Dies wäre auch gleich Zukunftssicherer, wenn z.B. in Folgeversionen bei den Endpunkten - anstatt dem Recht "webtsm_edit" fein granulare Rechte festgelegt werden.

    Betrifft:

  • Data Management Modul Backend entfernt BPC-10696

    Das Data Management Modul hat keine eigenständige Backend-Komponente (bpc-be-vam.jar) mehr. Die muss beim Update entfernt werden. Für die Verwendung des Moduls reicht die Verwendung von bpc-fe-vam.war aus.

    Das Data Management Modul wurde in den regulären Releasezyklus mit aufgenommen.

    Betrifft: Karaf |

  • Setting baseUrl entfernen BPC-9924

    Das Setting baseUrl entfällt, da der Wert (cxf) ein statischer Teil der API URL ist und nicht geändert wird.

    Nicht zu verwechseln, mit bpcBaseUrl. Dieses Setting bleibt unverändert bestehen.

    Betrifft: BPC Core |

  • Index-Export für neue Import-Funktion BPC-10386

    Das Format für Index-Imports wurde auf ein ZIP-basiertes Format geändert. Dies ist dasselbe Format das auch unser opensearch-tool zum Importieren und Exportieren von Indizes erzeugt. In der Administrationsoberfläche unter Core ServicesIndizes können solche Index-Export-Dateien heruntergeladen werden.

    Achtung: Sollten Sie die Index-Import-Funktionalität für eine Installation mit vorkonfiguriertem BPC verwenden, muss die Export-Datei neu erstellt werden.

Neue Funktionen

  • File-Storage Download im Process Montitor BPC-10560

    Die File-Storage Log-Service-Integration wurde für den Process-Monitor angepasst, sodass dieser diese Dateien als Download und zur Ansicht anbieten kann: Dafür wird im Log-Service für Felder vom Typ file-storage beim Logging in OpenSearch und relationale Datenbanken zwei weitere Felder mit dem suffix _filename und _contentType erstellt.

    Im Process-Monitor können jetzt auch Dateien aus dem File-Storage bezogen werden.

    • Sollten Sie Dateien aus dem File-Storage im Monitor anzeigen wollen, und diese Downloads nicht über das BPC leiten, müssen CSP und CORS Einstellungen angepasst werden. Genaueres kann in Dateianhänge nachgelesen werden.

    • Wenn Sie Log-Service-Instanzen konfiguriert haben, die Felder vom Typ file-storage verwenden, dann sollte der entsprechende Index reindiziert werden.

  • Index-Export für neue Import-Funktion BPC-10386

    Das Format für Index-Imports wurde auf ein ZIP-basiertes Format geändert. Dies ist dasselbe Format das auch unser opensearch-tool zum Importieren und Exportieren von Indizes erzeugt. In der Administrationsoberfläche unter Core ServicesIndizes können solche Index-Export-Dateien heruntergeladen werden.

    Achtung: Sollten Sie die Index-Import-Funktionalität für eine Installation mit vorkonfiguriertem BPC verwenden, muss die Export-Datei neu erstellt werden.

Verbesserungen

  • Monitor Dateidownload BPC-5775

    Die Konfiguration von Dateianhängen und Download im BPC-Monitor wurde umstrukturiert:

    • In einem Monitor (sowohl in den Parent- als auch in den Childdaten) ist es nun möglich, mehrere Spalten zu definieren, die Dateianhänge enthalten.

    • Die Einstellung (column_file) der Spalte, die den Dateiinhalt bzw. die Dateireferenz enthält, entfällt damit. Stattdessen wird ein Dateianhang in der Spaltenkonfiguration der Parentdaten (column_config) bzw. Childdaten (column_historyConfig) konfiguriert. Dafür wird dort ein Eintrag fileConfig angelegt, welches die Dateinamenspalte und die Content-Type-Spalte bestimmt:

    {
        ...
        "dataIndex": "datei",
        "text": "Datei",
        ...
        "fileConfig": {
            "columnFileName": "filename",
            "columnContentType": "contentType"
        }
    }
    • In dem Einstellungsobjekt fileConfig kann optional mit dem Feld dataSource bestimmt werden, aus welcher Quelle (OpenSearch, HTTP-Proxy) die Dateien bezogen werden sollen.

    • Spalten vom Typ Attachment Column können nun auch in Child-Grids verwendet werden.

    • Bestehende Monitorinstanzen werden durch eine Migration an die neue Konfiguration angepasst.

    • In der im Installer ausgelieferten Jetty-Konfiguration wurde der CSP-Header so angepasst, dass Bilder im Monitor angezeigt werden können.

    Weitere Informationen können hier nachgelesen werden: Konfiguration der Monitor-Spalten und Dateianhänge.

    Achtung: Monitorinstanzen hatten die Einstellung column_mimetype zum Festlegen des Spaltennamens bereitgestellt, welcher auf den Content-Typ der Dateien verweist. Im Backend wurde jedoch inkonsistent der Spaltenname contentType verwendet. Deshalb wurde bei der Migration der Instanzen die Einstellung column_mimetype ignoriert. Falls diese verwendet wurde, überprüfen Sie bitte die entsprechende Monitor-Instanz und passen Sie diese ggf. an.

  • WebTSM Cache Optimierung BPC-10517

    1. Inkrementelle Aktualisierung
      Über die module_apis Einstellung cache_refresh (Angabe in Minuten; 60 Minuten ist die Voreinstellung) wird festgelegt, in welchen Abständen nach neuen, aktualisierten oder gelöschten Zeitreihen gesucht wird. Dabei werden nur die Daten berücksichtigt, welche seit dem Datum der letzten Synchronisation in die Ergebnismenge fallen.

    2. Zeitpunkt der vollständigen Aktualisierung
      Die vollständige Aktualisierung des Zeitreihen-Caches wurde bisher über die module_apis Einstellung cache_refresh_full durchgeführt. In der Voreinstellung wurde dies alle 24 Stunden, ab dem Zeitpunkt, an dem das WebTSM Modul gestartet wurde, durchgeführt. Diese Option wurde durch cache_refresh_full_cron_expression ersetzt. Hier kann eine Cron-Expression nach dem Format des verwendeten Quartz-Schedulers hinterlegt werden. So kann z.B. jeden Sonntag um 21:00 Uhr der Zeitreihen-Cache neu aufgebaut werden (0 0 21 ? * Sun). Ist diese Option nicht gesetzt, dann wird auch keine vollständige Aktualisierung durchgeführt.

    3. Durchführung der Vollständigen Aktualisierung
      Bisher wurden bei der vollständigen Aktualisierung, über EINEN Request an das WebTSM, alle Zeitreihen ausgelesen und lokal im BPC vorghalten (Cache). Diese Option ist auch weiterhin der Default für die vollständige Aktualisierung. Allerdings kann dies nun auch auf ein Seiten- bzw. Blockweises Auslesen der Zeitreihen umgestellt werden. Dazu über die module_apis Einstellung cache_refresh_full_default_mode den Modus einstellen: Full oder FullPaginated. Um herauszufinden, welcher vollständige Aktualisierungsmodus das WebTSM weniger belastet, können beide mal zu Testzwecken manuell über folgende WebTSM-Endpunkte gestartet werden:

    4. Folgende module_apis Einstellungen können außerdem die Synchronisation beeinflussen:

      • cache_refresh_paginated_fetch_block_size (5000) = Seitenweises Auslesen der Zeitreihen. Je Request wird diese Anzahl Zeitreihen vom WebTSM abgefragt, bis alle existierenden Zeitreihen verarbeitet wurden. Kommt nur zum Einsatz falls FullPaginated als Modus verwendet wird.

      • timeout (60) = Gab es schon zuvor. Es ist das Abfrage-Timeout, welches nur bei der vollständigen Aktualisierung für den EINEN Request an das WebTSM verwendet wird.

      • timeout_general (2) = Das Abfrage-Timeout, welches bei allen anderen Zugriffen auf das WebTSM verwendet wird.

      • cache_refresh_opensearch_bulk_block_size_deleted (2500) = Bei der inkrementellen Synchronisation werden die Lösch-Anweisungen in diesen Bulk-Größen an OpenSearch übergeben. Ist der Wert zu hoch, dann kann es zu OutOfMemory Fehlern kommen. Ist der Wert zu klein, dann werden zu viele HTTP-Requests an OpenSearch gesendet. Das sich negativ auf die Performance auswirken kann.

      • cache_refresh_opensearch_bulk_block_size_changed (2500) = In diesen Bulk-Größen werden die Zeitreihen-Daten an OpenSearch übergeben. Ist der Wert zu hoch, dann kann es zu OutOfMemory Fehlern kommen. Ist der Wert zu klein, dann werden zu viele HTTP-Requests an OpenSearch gesendet. Das sich negativ auf die Performance auswirken kann.

        Die Werte in Klammern sind dabei die Voreinstellung

    Betrifft: BPC Core |

  • Refactoring OIDC/PKCE Handshake: Umstellung auf Stateless (Encrypted Cookie) zur DoS-Prävention BPC-10544

    Daten, die bei OIDC-Providern für den Login verwendet werden, werden in einem Cookie verschlüsselt beim Client hinterlegt. Dadurch wird eine Auslastung durch sehr viele Login-Anfragen verhindert.

    Für BPC-Modulentwickler

    Sollten Sie eine eigene UserFlowIdentityProvider-Implementierung entwickelt haben, müssen Sie diese anpassen. Die Funktion URI createAuthenticationRequestURI(String requestUrl) wurde mit UserFlowLoginContext createAuthenticationRequestContext(String requestUrl) ersetzt und gibt neben der Redirect-URL zum OIDC-Login nun auch einen Cookie, welcher den Login-State enthält, zurück. Dieser Cookie wird beim Login-Versuch vom Frontend gesetzt.

    Für BPC-Administratoren

    Installieren Sie die neuen Module bpc-be-core.jar und bpc-fe-core.war. Ein Neustart des BPCs/Karaf ist notwendig. Sollte das BPC dann immer noch nicht zur Verfügung stehen, löschen Sie bitte das Verzeichnis karaf/data und starten sie den Karaf erneut. (Evtl. machen Sie davor ein Backup Ihrer Log-Files)

    Betrifft: BPC Core |

  • Umbenennung und Zusammenführen von Monitor-Settings zum Download über HTTP-Proxy-Verbindungen BPC-10572

    Im Process-Monitoring wurden die Einstellungen inubit_referenceEndpoint, inubit_proxyId, inutbit_baseUrl zum Download über einen HTTP-Proxy zusammengeführt und in httpProxy_referenceEndpoint umbenannt, so dass die Möglichkeit eines Downloads über eine generische HTTP-Proxy-Verbindung verdeutlicht wird. Die Einstellung inubit_dbTablePrefix wurde entfernt, da sie nur für Legacy-Szenarien verwendet wurde.

  • WebTSM: Zugriff auf REST Endpunkte einschränken BPC-10655

    Timeseries Management Administratoren brauchen, wenn sie nicht der Rolle "bpcadmin" angehören und bisher nur das Recht "webtsm_admin" hatten, nun statt dessen das Recht "webtsm_edit". Einem Timeseries Management Administrator könnte - anstatt dem spezifischen Recht - auch die Rolle "WEBTSM_ADMIN" zugewiesen werden. Dies wäre auch gleich Zukunftssicherer, wenn z.B. in Folgeversionen bei den Endpunkten - anstatt dem Recht "webtsm_edit" fein granulare Rechte festgelegt werden.

    Betrifft:

  • Setting baseUrl entfernen BPC-9924

    Das Setting baseUrl entfällt, da der Wert (cxf) ein statischer Teil der API URL ist und nicht geändert wird.

    Nicht zu verwechseln, mit bpcBaseUrl. Dieses Setting bleibt unverändert bestehen.

    Betrifft: BPC Core |

Sonstiges

  • Unterstützung von Postgres JSONB-Spalten in Replikation BPC-10555

    Betrifft: BPC Core |

  • Data Management Modul Backend entfernt BPC-10696

    Das Data Management Modul hat keine eigenständige Backend-Komponente (bpc-be-vam.jar) mehr. Die muss beim Update entfernt werden. Für die Verwendung des Moduls reicht die Verwendung von bpc-fe-vam.war aus.

    Das Data Management Modul wurde in den regulären Releasezyklus mit aufgenommen.

    Betrifft: Karaf |

BPC 5.0.3

Release Datum: 2026-01-23

Mit diesem Update müssen folgende Komponenten aktualisiert werden: BPC Module

Neue Funktionen

  • OpenSearch Metriken BPC-10297

    Das Plugin prometheus-exporter wird nun standardmäßig mit OpenSearch ausgeliefert.

    Betrifft: OpenSearch |

Verbesserungen

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

    Die BPC-API bietet nun auch eine Authentifizierung über Access-Tokens an, welche vom konfigurierten OIDC-Provider ausgestellt wurden. Die Authentifizierung über Access-Token muss explizit in der Identity Provider Konfiguration aktiviert sein. Wahlweise kann neben der Validierung der Signatur und Gültigkeit des Access-Tokens auch der Introspection-Endpunkt des OIDC-Providers verwendet werden, der zusätzlich überprüft, ob die Session beendet wurde (Token Revocation). Weitere Informationen können hier nachgelesen werden: Access-Tokens und Keycloak als Identity Provider.

    Betrifft: BPC Core | Dokumentation |

BPC 5.0.2

Release Datum: 2026-01-15

Mit diesem Update müssen folgende Komponenten aktualisiert werden: BPC Module | Karaf

Verbesserungen

  • Beschleunigter Karaf Start BPC-9395

    Betrifft: Karaf |

BPC 5.0.1

Release Datum: 2025-11-24

Mit diesem Update müssen folgende Komponenten aktualisiert werden: BPC Module

Breaking Changes

Sie sollten die Beschreibungen in diesem Abschnitt genau lesen. Es können Handlungsanweisungen enthalten sein, die Sie für ein Update befolgen müssen.

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

    Die HTTP Proxy Konfigurationen überprüfen und ggf. anpassen. Bisher wurde an die konfigurierte Verbindungs-URL immer ein '/' angehängt. Dies ist nun nicht mehr der Fall. Falls ihr HTTP Proxy Ziel dies benötigt und die URL derzeit ohne '/' am Ende konfiguriert ist, dann passen Sie dieses bitte an.

    Betrifft: BPC Core |

Verbesserungen

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

    BPC unterstützt nun PKCE (Proof Key for Code Exchange) für OpenID-Connect und Keycloak Identity Provider um einen gehärteten Login-Flow zu ermöglichen. Um dies zu aktivieren, müssen Sie an der Identity-Provider Backend-Connection die PKCE-Methode einstellen und dies ggf. in Ihrem Keycloak-Client konfigurieren.

    Betrifft: BPC Core | Dokumentation |

  • Reindizieren hinterlässt keine alten Indices BPC-10192

    Beim Reindizieren wird der alte Index gelöscht, anstatt wie bisher geschlossen. Dem Nutzer wird angeboten, vor dem Reindizieren ein Backup zu erstellen.

    Betrifft: BPC Core | Dokumentation |

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

    Betrifft: BPC Core |

Security

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

    Der über pax-jdbc-mssql bereitgestellt Treiber wird nicht mehr mit ausgeliefert.

    Es ist darauf zu achten, dass der verwendete MSSQL Treiber mindestens folgende Version hat: 10.2.4, 11.2.4, 12.2.1, 12.6.5, 12.8.2, 12.10.2, 13.2.1

    Falls ein älterer Treiber verwendet wird, dann sollte dieser ersetzt werden. Entfernen Sie den alten Treiber durch Entfernen aus dem Deploy-Verzeichnis oder Deinstallieren von pax-jdbc-mssql bzw. des Treibers. Anschließend einen aktuellen Treiber installieren (ohne das Feature pax-jdbc-mssql). Siehe dazu: Datenbanken

    Betrifft: Dokumentation | Karaf |

Bugs

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

    Die HTTP Proxy Konfigurationen überprüfen und ggf. anpassen. Bisher wurde an die konfigurierte Verbindungs-URL immer ein '/' angehängt. Dies ist nun nicht mehr der Fall. Falls ihr HTTP Proxy Ziel dies benötigt und die URL derzeit ohne '/' am Ende konfiguriert ist, dann passen Sie dieses bitte an.

    Betrifft: BPC Core |

  • Fehler bei der Index Migration BPC-8989

    Tritt bei der Migration eines Index ein Fehler auf, so wird der für die Migration neu angelegte Index wieder entfernt, um Folgefehler zu vermeiden bzw. wieder auf einen stabilen Stand zurückzufallen.

    Betrifft: BPC Core |

BPC 5.0.0

Release Datum: 2025-10-24

Mit diesem Update müssen folgende Komponenten aktualisiert werden: BPC Module | Karaf | OpenSearch | Java

Update der internen Konfiguration

In dieser Version gab es Änderungen an der internen Konfiguration des BPC. Dies hat Auswirkungen auf Deployments zwischen BPC mit unterschiedlichen Versionen. Außerdem sind zusätzliche Schritte erforderlich, wenn ein Downgrade des BPC durchgeführt wird.

Weitere Informationen finden Sie auf der Seite Versionierung der internen BPC Konfiguration.

Breaking Changes

Sie sollten die Beschreibungen in diesem Abschnitt genau lesen. Es können Handlungsanweisungen enthalten sein, die Sie für ein Update befolgen müssen.

  • Restriktion des SSH-Zugangs BPC-8253

    Standardmäßig wird ab sofort die Erreichbarkeit des Karafs über SSH-Verbindungen auf den Host localhost eingeschränkt. Um eine Erreichbarkeit über externe Verbindungen zu ermöglichen, nutzen Sie die zentrale Konfigurationsdatei. Siehe Karaf SSH Zugriff.

    Betrifft: Dokumentation | Karaf |

  • OpenSearch-Zugriff nur noch über de.virtimo.bpc.core.opensearch.hosts BPC-9246

    Die Verbindungen zu OpenSearch werden nun ausschließlich über de.virtimo.bpc.core.opensearch.hosts konfiguriert. Bei einem Update von einer älteren Version müssen Sie in der Konfigurationsdatei karaf/etc/de.virtimo.bpc.core.cfg den Eintrag de.virtimo.bpc.core.opensearch.hosts ergänzen. Zusätzlich empfiehlt es sich, die zentrale Konfigurationsdatei mit den Zeilen

    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"

    bzw.

    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%

    zu ergänzen (hier am Beispiel https://localhost:9200). Sie können sich hier an den Dateien aus dem Download-File-Server orientieren.

    Betrifft: BPC Core | Dokumentation |

  • Java JDK 21 BPC-9312

    Der Einsatz von Java 21 ist nun notwendig.

    Betrifft:

  • Anpassung von Metriken BPC-9440

    Diese Metriken wurden umbenannt:

    • bpc_es_bpc_plugin_status_websocket → bpc_os_bpc_plugin_status_websocket

    • bpc_es_bpc_plugin_status_plugin → bpc_os_bpc_plugin_status_plugin

    Betrifft: BPC Core | Dokumentation |

  • Unterstützung für INUBIT Identity Provider entfernt BPC-9482

    INUBIT wird nicht mehr als Identity Provider unterstützt.

    Betrifft: BPC Core | Dokumentation |

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

    Bei den Identity Provider (Backend Connections) wurde bisher einer großer Teil über ein JSON Setting konfiguriert. Dieses wurde in einzelne Settings aufgesplittet. Bestehende Konfigurationen werden automatisch migriert. Kommen ältere Deployment Exporte von Identity Provider Komponenten zum Einsatz, dann sind diese am besten neu zu erstellen.

    Betrifft: BPC Core | Dokumentation |

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

    Der Endpunkt /cxf/bpc-core/status/server/{serverUUID} der Status-API, der den Status eines remote-BPCs abfragte, wurde entfernt.

    Betrifft: BPC Core | Dokumentation |

  • Harmonisierung der Schnittstellen für verschiedene Monitor Funktionen BPC-9770

    Die Query String Parameter gridId, gridExtId, multiRecords, buttonId und der Form Parameter tablePrefix wurden aus den Prozess Aktion Anfragen entfernt. Um zusätzliche Kontext- oder Konfigurationsinformationen mitzusenden, kann "Prozessaktions-Metadaten" in den Monitor-Einstellungen konfiguriert werden.

    In Prozessstartern wurde das mitgesendete XML durch JSON ersetzt. Dadurch wurden portletArchiveName, operation, mandant, gridID, key, bpcModule, bpcModuleInstanceId und custom entfernt. key wurde einheitlich zu id umbenannt. Zusätzliche Kontext- oder Konfigurationsinformationen können durch die "metadata" Konfiguration in der Prozessstarter-Konfiguration in den Monitor-Einstellungen zuverlässig mitgesendet werden. Die Prozessparameter sind gebündelt unter config.parameters im Request Payload zu finden. Fileuploads enthalten filename, type und data. Grids enthalten eine Liste mit ihren Records.

    Bei Change State wurden tablePrefix, mandant und changeStatusBox_<Spaltenname> entfernt. command wurde einheitlich umbenannt zu type und erhält den Wert "statusChange". columnsstring wurde umbenannt zu column. newStatusCombo_<Spaltenname> wurde umbenannt zu newStatus. commentfield wurde umbenannt zu comment. childStatus wird nicht mehr per Default in der Change State Konfiguration auf "Info" gesetzt und wird, falls konfiguriert, nach metadata migriert. Im "metadata" Objekt in der Change State Konfiguration können zusätzliche Informationen übergeben werden.

    Die ungenutzten Einstellungen inubit_aperakEndPoint, inubit_dbGridId und inubit_pmMandant wurden entfernt. Die Einstellungen inubit_actionEndpoint, inubit_changeStateEndpoint und inubit_VpsEndpoint wurden durch actionEndpointProcessor, changeStateEndpointProcessor und vpsEndpointProcessor ersetzt.

  • Eingeschränkte Weiterleitung von Session-Informationen BPC-9925

    HTTP-Proxy Backend-Connections und Flow-Verbindungen filtern jetzt stets den Session-Cookie, damit ein Empfänger nicht im Kontext des Benutzers Aufrufe im BPC tätigen kann. Die Einstellung filterSessionCookie entfällt somit. Stattdessen gibt es mit der neuen Einstellung sendSessionId die Möglichkeit, die Session-ID des Benutzers mitzuschicken, welche am Endpunkt GET /cxf/bpc-core/authentication/session/{sessionid} überprüft werden kann. Bei aktivierter Einstellung injectUserSessionJWT wird nun nicht mehr ein selbst-erstellter JWT mitgeschickt, sondern der signierte ID-Token des OpenID Connect Providers gesendet. Genaueres können Sie in Backend Connections - HTTP-Proxy nachlesen.

    Betrifft: BPC Core | Dokumentation |

  • HTTP-Proxy filtert X-APIKey Header BPC-10011

    Http-Calls über eine Http-Proxy oder Flow Verbindung filtern den BPC Api-Key-Header (X-APIKey) heraus. Achtung: Dies könnte Einfluss auf bestehende BPC Konfigurationen haben, wenn zum Beispiel ein INUBIT-Prozess angestoßen wird, der mit dem mitgesandten API-Key wiederum Aufrufe in der BPC-Api macht. (Hier wäre es besser, einen festen BPC-API-Key im INUBIT-Prozess zu hinterlegen.)

    Betrifft: BPC Core | Dokumentation |

  • Umbenennung von childs zu children im Log Service Payload BPC-8478

    Benutzer der Log Service API müssen in ihren POST-Daten alle Vorkommen von childs durch children ersetzen. Innerhalb einer Übergangszeit kann childs eingehend noch verwendet werden. Diese Rückwärtskompatibilität wird in einem folgenden Release entfernt. Auch ist darauf zu achten, dass in den Rückantworten der Log Service Endpunkte nun children anstatt childs enthalten ist.

    Betrifft: BPC Core |

Sie sollten die Beschreibungen in diesem Abschnitt genau lesen. Es handelt sich um empfohlene Handlungsanweisungen, die bei einem Update angeraten werden.

  • OpenSearch Konfiguration auslagern BPC-9106

    Das OpenSearch-Konfigurationsverzeichnis lässt sich über OPENSEARCH_PATH_CONF konfigurieren. Damit können Sie das Konfigurationsverzeichnis aus dem OpenSearch-Verzeichnis auslagern. Dadurch überschreiben Sie dieses nicht mehr bei einem OpenSearch-Update. Siehe auch OpenSearch-Konfiguration auslagern.

    In der Bundle-Installationsdatei wird BPC jetzt mit einem nach INSTALLATIONSVERZEICHNIS/opensearch_config ausgelagertem Konfigurationsverzeichnis ausgeliefert.

    Es wird empfohlen OPENSEARCH_PATH_CONF in der bpc.env zu setzen.

    Betrifft: Dokumentation | OpenSearch |

Neue Funktionen

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

    Es wurde ein neuer Aktions-Typ "bulkAction" hinzugefügt, um Aktionen für alle Datensätze ausführen zu können. Siehe Mehrfach-Aktionen

  • Einfach Verknüpfung von Monitor Aktionen mit IGUASU Prozessoren BPC-6260

    Wird IGUASU korrekt über das Flow-Modul angebunden, können verfügbare Prozessoren einfach über die Konfigurations-Oberfläche der Monitor Aktionen ausgewählt werden.

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

    Es steht nun eine Konfigurationsoberfläche für Identity Provider zur Verfügung.

    Betrifft: BPC Core |

  • OpenAPI Spezifikation für REST API BPC-8513

    Mit diesem Update ist es erforderlich, den Karaf zu aktualisieren.

    Das BPC stellt OpenApi-konforme Spezifikationsdateien für unsere APIs bereit. Diese befinden sich unter Downloads und können alternativ auch dynamisch über das BPC aufgerufen werden, sofern diese Option aktiviert ist. Mehr Informationen finden Sie im Abschnitt BPC-API.

    Betrifft: BPC Core | Dokumentation | Forms | Karaf |

  • BPC Deeplinks über LogService BPC-8798

    Man kann sich über die Log Service API direkt in die Log Service Konfiguration oder zu angebundene Monitore weiterleiten zu lassen. Dazu gibt es gibt zwei neue LogService Endpunkte, welche den Benutzer beim Aufruf auf die entsprechenden BPC Seiten weiterleiten:

    Siehe auch API Dokumentation: Log Service API

    Betrifft: BPC Core | Dokumentation |

  • Referenz im Auditlog BPC-8824

    Es ist nun möglich beim Schreiben von Audit-Informationen Referenzen auf externe Ressourcen anzugeben. So kann zum Beispiel auf die IGUASU-Instanz verwiesen werden, die den Eintrag erzeugt hat.

    Betrifft: BPC Core | Dokumentation |

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

    Die Replikation unterstützt jetzt alternativ zu bestehenden Datenbank-Tabellen/Views auch die direkte Eingabe einer SQL-Query.

    Siehe auch sourceCommonTableExpressionQuery in Replication

    Betrifft: BPC Core | Dokumentation |

Verbesserungen

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

    BPC-API-Anfragen, die durch einen Webbrowser stattfinden, leiten bei fehlender Authentifizierung nun auf den Keycloak (oder einen anderen OIDC UserFlowIdentityProvider) um. Nach dem Login findet eine Weiterleitung auf den ursprünglichen API-Endpunkt statt.

    Betrifft: BPC Core |

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

    Betrifft: BPC Core | Dokumentation |

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

    Unterschreitet der freie Plattenplatz definierte Schwellwerte, so werden Shards auf andere Knoten verteilt. Es kann auch vorkommen, dass Indices auf read-only gesetzt werden, um ein voll laufen der Platte zu vermeiden.

    Der Wert von cluster.routing.allocation.disk.threshold_enabled ist nun true. Dies entspricht dem OpenSearch Standardwert.

    Betrifft: OpenSearch |

  • OpenSearch Konfiguration auslagern BPC-9106

    Das OpenSearch-Konfigurationsverzeichnis lässt sich über OPENSEARCH_PATH_CONF konfigurieren. Damit können Sie das Konfigurationsverzeichnis aus dem OpenSearch-Verzeichnis auslagern. Dadurch überschreiben Sie dieses nicht mehr bei einem OpenSearch-Update. Siehe auch OpenSearch-Konfiguration auslagern.

    In der Bundle-Installationsdatei wird BPC jetzt mit einem nach INSTALLATIONSVERZEICHNIS/opensearch_config ausgelagertem Konfigurationsverzeichnis ausgeliefert.

    Es wird empfohlen OPENSEARCH_PATH_CONF in der bpc.env zu setzen.

    Betrifft: Dokumentation | OpenSearch |

  • OpenSearch-Zugriff nur noch über de.virtimo.bpc.core.opensearch.hosts BPC-9246

    Die Verbindungen zu OpenSearch werden nun ausschließlich über de.virtimo.bpc.core.opensearch.hosts konfiguriert. Bei einem Update von einer älteren Version müssen Sie in der Konfigurationsdatei karaf/etc/de.virtimo.bpc.core.cfg den Eintrag de.virtimo.bpc.core.opensearch.hosts ergänzen. Zusätzlich empfiehlt es sich, die zentrale Konfigurationsdatei mit den Zeilen

    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"

    bzw.

    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%

    zu ergänzen (hier am Beispiel https://localhost:9200). Sie können sich hier an den Dateien aus dem Download-File-Server orientieren.

    Betrifft: BPC Core | Dokumentation |

  • Anpassung von Metriken BPC-9440

    Diese Metriken wurden umbenannt:

    • bpc_es_bpc_plugin_status_websocket → bpc_os_bpc_plugin_status_websocket

    • bpc_es_bpc_plugin_status_plugin → bpc_os_bpc_plugin_status_plugin

    Betrifft: BPC Core | Dokumentation |

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

    Bei den Identity Provider (Backend Connections) wurde bisher einer großer Teil über ein JSON Setting konfiguriert. Dieses wurde in einzelne Settings aufgesplittet. Bestehende Konfigurationen werden automatisch migriert. Kommen ältere Deployment Exporte von Identity Provider Komponenten zum Einsatz, dann sind diese am besten neu zu erstellen.

    Betrifft: BPC Core | Dokumentation |

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

    Der Endpunkt /cxf/bpc-core/status/server/{serverUUID} der Status-API, der den Status eines remote-BPCs abfragte, wurde entfernt.

    Betrifft: BPC Core | Dokumentation |

  • Ziel-Prozess kann an Prozessstarter-Plugin konfiguriert werden BPC-9728

    Das Plugin kann nun einen Prozess konfigurieren, der beim Auslösen direkt angezeigt wird. Außerdem kann der Text und Icon nun frei konfiguriert werden. Siehe auch Prozess Starter Plugin

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

    Die Option für die Gruppierung von Einstellungen ist nun initial aktiviert. Es wird empfohlen diese Ansicht zu verwenden, da die Einstellungen so in einem gemeinsamen Kontext angezeigt werden.

    Betrifft: BPC Core |

  • Harmonisierung der Schnittstellen für verschiedene Monitor Funktionen BPC-9770

    Die Query String Parameter gridId, gridExtId, multiRecords, buttonId und der Form Parameter tablePrefix wurden aus den Prozess Aktion Anfragen entfernt. Um zusätzliche Kontext- oder Konfigurationsinformationen mitzusenden, kann "Prozessaktions-Metadaten" in den Monitor-Einstellungen konfiguriert werden.

    In Prozessstartern wurde das mitgesendete XML durch JSON ersetzt. Dadurch wurden portletArchiveName, operation, mandant, gridID, key, bpcModule, bpcModuleInstanceId und custom entfernt. key wurde einheitlich zu id umbenannt. Zusätzliche Kontext- oder Konfigurationsinformationen können durch die "metadata" Konfiguration in der Prozessstarter-Konfiguration in den Monitor-Einstellungen zuverlässig mitgesendet werden. Die Prozessparameter sind gebündelt unter config.parameters im Request Payload zu finden. Fileuploads enthalten filename, type und data. Grids enthalten eine Liste mit ihren Records.

    Bei Change State wurden tablePrefix, mandant und changeStatusBox_<Spaltenname> entfernt. command wurde einheitlich umbenannt zu type und erhält den Wert "statusChange". columnsstring wurde umbenannt zu column. newStatusCombo_<Spaltenname> wurde umbenannt zu newStatus. commentfield wurde umbenannt zu comment. childStatus wird nicht mehr per Default in der Change State Konfiguration auf "Info" gesetzt und wird, falls konfiguriert, nach metadata migriert. Im "metadata" Objekt in der Change State Konfiguration können zusätzliche Informationen übergeben werden.

    Die ungenutzten Einstellungen inubit_aperakEndPoint, inubit_dbGridId und inubit_pmMandant wurden entfernt. Die Einstellungen inubit_actionEndpoint, inubit_changeStateEndpoint und inubit_VpsEndpoint wurden durch actionEndpointProcessor, changeStateEndpointProcessor und vpsEndpointProcessor ersetzt.

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

    Betrifft: BPC Core |

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

    Bei booleschen Werten in den Einstellungstabellen wird nun keine Combobox mehr angezeigt, sondern nur noch die Checkbox mit dem Wahrheitswert. Der Wert lässt sich per Klick, Leertaste oder Enter ändern.

    Betrifft: BPC Core |

  • Umbenennung von childs zu children im Log Service Payload BPC-8478

    Benutzer der Log Service API müssen in ihren POST-Daten alle Vorkommen von childs durch children ersetzen. Innerhalb einer Übergangszeit kann childs eingehend noch verwendet werden. Diese Rückwärtskompatibilität wird in einem folgenden Release entfernt. Auch ist darauf zu achten, dass in den Rückantworten der Log Service Endpunkte nun children anstatt childs enthalten ist.

    Betrifft: BPC Core |

Security

  • Restriktion des SSH-Zugangs BPC-8253

    Standardmäßig wird ab sofort die Erreichbarkeit des Karafs über SSH-Verbindungen auf den Host localhost eingeschränkt. Um eine Erreichbarkeit über externe Verbindungen zu ermöglichen, nutzen Sie die zentrale Konfigurationsdatei. Siehe Karaf SSH Zugriff.

    Betrifft: Dokumentation | Karaf |

  • Session-Cookie-Inhalt aus Logdatei filtern BPC-9533

    Die Logging-Konfiguration wurde geändert, sodass Session-Tokens maskiert werden. Für neue Installationen des Karafs passiert das automatisch. Bei bestehenden Installationen passen Sie bitte die Konfigurationsdatei [KARAF]/etc/org.ops4j.pax.logging.cfg an. Ersetzen sie hier die alte Zeile

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

    mit den Zeilen

    # 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+")}{******}

    Da bei Keycloak und OIDC die Session-Tokens UUIDs sind, die auch an anderen Stellen genutzt werden, loggen wir hier die ersten und letzten vier Zeichen.

    Betrifft: BPC Core | Dokumentation | Karaf |

  • Eingeschränkte Weiterleitung von Session-Informationen BPC-9925

    HTTP-Proxy Backend-Connections und Flow-Verbindungen filtern jetzt stets den Session-Cookie, damit ein Empfänger nicht im Kontext des Benutzers Aufrufe im BPC tätigen kann. Die Einstellung filterSessionCookie entfällt somit. Stattdessen gibt es mit der neuen Einstellung sendSessionId die Möglichkeit, die Session-ID des Benutzers mitzuschicken, welche am Endpunkt GET /cxf/bpc-core/authentication/session/{sessionid} überprüft werden kann. Bei aktivierter Einstellung injectUserSessionJWT wird nun nicht mehr ein selbst-erstellter JWT mitgeschickt, sondern der signierte ID-Token des OpenID Connect Providers gesendet. Genaueres können Sie in Backend Connections - HTTP-Proxy nachlesen.

    Betrifft: BPC Core | Dokumentation |

  • HTTP-Proxy filtert X-APIKey Header BPC-10011

    Http-Calls über eine Http-Proxy oder Flow Verbindung filtern den BPC Api-Key-Header (X-APIKey) heraus. Achtung: Dies könnte Einfluss auf bestehende BPC Konfigurationen haben, wenn zum Beispiel ein INUBIT-Prozess angestoßen wird, der mit dem mitgesandten API-Key wiederum Aufrufe in der BPC-Api macht. (Hier wäre es besser, einen festen BPC-API-Key im INUBIT-Prozess zu hinterlegen.)

    Betrifft: BPC Core | Dokumentation |

  • Default für filterSessionCookie auf true BPC-9926

    Für neue Backend Connections des Typs HTTP-Proxy und Flow ist die Option BPC Session filtern standardmäßig aktiviert.

    Betrifft: BPC Core | Dokumentation |

Interne Abhängigkeiten / Dependency Updates

  • Java JDK 21 BPC-9312

    Der Einsatz von Java 21 ist nun notwendig.

    Betrifft:

  • Update OpenSearch to 3.2 BPC-9609

    Falls das BPC initial mit einer OpenSearch anstatt einer Elasticsearch Version installiert wurde, dann kann das [bpc]/opensearch_data Verzeichnis direkt übernommen werden.

    Fall nicht, dann müssen zuerst Indices migriert werden.

  • Update Karaf BPC-9960

    Mit diesem Update wird die Karaf-Version auf 4.4.8 aktualisiert. Es ist erforderlich, die Module bpc-be-core, bpc-be-analysis, bpc-be-forms und bpc-be-monitor zu aktualisieren.

    Für BPC Modul-Entwickler

    Mit dem aktualisierten Karaf liefern wir CXF 3.6.8 statt 3.6.7 aus, welches Jackson in der Version 2.19.2 bereitstellt.

    Bitte aktualisieren Sie die CXF-Version (3.6.8) und Jackson-Version (2.19.2) in Ihrer pom.xml. Prüfen Sie dazu, ob Sie eine Import-Package-Anweisung für diese Version haben. Diese muss hinzugefügt oder angepasst werden, wenn Sie Jackson-Funktionen wie die Klasse ObjectMapper verwenden.

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

Sonstiges

  • Unterstützung für INUBIT Identity Provider entfernt BPC-9482

    INUBIT wird nicht mehr als Identity Provider unterstützt.

    Betrifft: BPC Core | Dokumentation |

Übersicht der Karaf Updates

In folgenden BPC Versionen wurde ein Update von Karaf durchgeführt.

Übersicht der OpenSearch Updates

In folgenden BPC Versionen wurde ein Update von OpenSearch durchgeführt.

Übersicht Updates der internen BPC Konfiguration

In folgenden BPC Versionen wurde ein Update der internen BPC Konfiguration durchgeführt.