Changelogs
9.0.1
Release Date: 2025-10-08
Breaking Changes
|
A breaking change may require manual adjustments by the administrator. Please read the description. |
INUBIT-20877
The button for updating the INUBIT BPC modules has been removed. Please ensure that the corresponding modules are present in the BPC’s deploy directory. If the BPC is deployed via the installer, the modules should be present.
Impacts:
INUBIT-21683
The Data Stream Analyzer could be forced to use MimeUtil to determine the MIME type using the special module property "datastreamanalyzer.mode." This option has now been removed. Apache Tika is now always used for analysis.
Breaking Change
If the module property "datastreamanalyzer.mode" is explicitly set in the Data Stream Analyzer, it no longer has any effect. Apache Tika is always executed internally to analyze the data stream. This may lead to a change in the detected MIME type.
Impacts:
Security Fixes
|
Security fixes include the remediation of security-related vulnerabilities. In addition to INUBIT’s own code, this also includes updating and replacing third-party components used. |
New Functionalities - Improvements
INUBIT-21534
The ZUGFeRD utility has been extended to support reading and writing of PDFs of type PDF/A-3B and PDF/A-3U.
Impacts:
INUBIT-20877
The button for updating the INUBIT BPC modules has been removed. Please ensure that the corresponding modules are present in the BPC’s deploy directory. If the BPC is deployed via the installer, the modules should be present.
Impacts:
INUBIT-20895
The "Migrate to Saxon 10" option has been removed from the Workbench. The necessary Saxon adjustments will be performed automatically during the migration or import.
Impacts:
-
Workbench - XPath-Assistant / Execution
INUBIT-21452
The REST API endpoints now return the response in the format requested by the client. The same applies to error messages. The default is "application/json"; for XML, "application/xml" must be specified in the Accept header.
Impacts:
INUBIT-21683
The Data Stream Analyzer could be forced to use MimeUtil to determine the MIME type using the special module property "datastreamanalyzer.mode." This option has now been removed. Apache Tika is now always used for analysis.
Breaking Change
If the module property "datastreamanalyzer.mode" is explicitly set in the Data Stream Analyzer, it no longer has any effect. Apache Tika is always executed internally to analyze the data stream. This may lead to a change in the detected MIME type.
Impacts:
Bug Fixes
INUBIT-21287
If INUBIT is used with Keycloak, the backup files created so far are incomplete and the diagram, module, and repository data of INUBIT users are missing. This ticket will resolve the issue, and the backup files created from now on will be complete.
| After applying this patch, we recommend creating a new backup file. Previously created backups should no longer be used. |
Impacts:
INUBIT-17227, SUPPORT-7809
The FTP Connector plugin has been corrected so that it now terminates correctly in a timeout situation and the workflow aborts with a corresponding message due to this error.
Impacts:
INUBIT-18817, SUPPORT-12176
Fixed an issue in the module wizard on the MDN validator page that prevented the stored certificate from being displayed.
Impacts:
INUBIT-21659
An error when creating an SQL statement caused an error when executing the Midnight Task and has now been fixed.
Impacts:
-
Application - Process Engine
INUBIT-21125
The online documentation in version 9.0 is now called from the INUBIT 9.0 Workbench.
Impacts:
-
Application - Workbench
9.0.0
Release Date: 2025-09-10
Breaking Changes
|
A breaking change may require manual adjustments by the administrator. Please read the description. |
INUBIT-20752
The Remote Connector has been updated with INUBIT 9.0.
Breaking Change
The Remote Connector in INUBIT 9.0 can no longer be used in INUBIT 8.1 and earlier. Adding it in the Connection Manager is no longer possible, significantly limiting maintenance and monitoring.
Impacts:
-
Connection Manager
INUBIT-21095
The HTTP status description available in the restConnector.responseStatusDescription variable has changed. If you need the value of this variable, adjust your logic to the new values.
The following table illustrates the new values:
| HTTP status code | HTTP status description before 9.0 | HTTP status description from 9.0 onwards |
|---|---|---|
100 |
The client should continue with its request |
Continue |
101 |
The server is willing to change the application protocol being used on this connection |
Switching Protocols |
102 |
Interim response used to inform the client that the server has accepted the complete request, but has not yet completed it |
Processing |
200 |
The request has succeeded |
OK |
201 |
The request has been fulfilled and resulted in a new resource being created |
Created |
202 |
The request has been accepted for processing, but the processing has not been completed |
Accepted |
203 |
The returned meta-information is not the definitive set as available from the origin server |
Non-Authoritative Information |
204 |
The server has fulfilled the request but does not need to return an entity-body, and might want to return updated meta-information |
No Content |
205 |
The server has fulfilled the request and the user agent should reset the document view which caused the request to be sent |
Reset Content |
206 |
The server has fulfilled the partial get request for the resource |
Partial Content |
207 |
Provides status for multiple independent operations |
Multi-Status |
300 |
The requested resource corresponds to any one of a set of representations |
Multiple Choices |
301 |
The requested resource has been assigned a new permanent URI |
Moved Permanently |
302 |
The requested resource can be found under a different URI |
Found |
303 |
The response to the request can be found under a different URI |
See Other |
304 |
The client has performed a conditional GET request and the document has not been modified |
Not Modified |
305 |
The requested resource must be accessed through the proxy given by the location field |
Use Proxy |
307 |
The requested resource resides temporarily under a different URI |
Temporary Redirect |
400 |
The request could not be understood by the server due to malformed syntax |
Bad Request |
401 |
The request requires user authentication |
Unauthorized |
402 |
This code is reserved for future use |
Payment Required |
403 |
The server understood the request, but is refusing to fulfill it |
Forbidden |
404 |
The server has not found anything matching the request URI |
Not Found |
405 |
The method specified in the request is not allowed for the resource identified by the request URI |
Method Not Allowed |
406 |
The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request |
Not Acceptable |
407 |
This code is similar to Unauthorized, but indicates that the client must first authenticate itself with the proxy |
Proxy Authentication Required |
408 |
The client did not produce a request within the time that the server was prepared to wait |
Request Timeout |
409 |
The request could not be completed due to a conflict with the current state of the resource |
Conflict |
410 |
The requested resource is no longer available at the server and no forwarding address is known |
Gone |
411 |
The server refuses to accept the request without a defined content length |
Length Required |
412 |
The precondition given in one or more of the request header fields evaluated to false when it was tested on the server |
Precondition Failed |
413 |
The server is refusing to process a request because the request entity is larger than the server is willing or able to process |
Payload Too Large |
414 |
The server is refusing to service the request because the request URI is longer than the server is willing to interpret |
URI Too Long |
415 |
The server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method |
Unsupported Media Type |
416 |
For byte ranges, this means that the first byte position were greater than the current length of the selected resource |
Requested range not satisfiable |
417 |
The expectation given in the request header could not be met by this server |
Expectation Failed |
422 |
The server understands the content type of the request entity and the syntax of the request entity is correct but was unable to process the contained instructions |
Unprocessable Entity |
423 |
The source or destination resource of a method is locked |
Locked |
424 |
The method could not be performed on the resource because the requested action depended on another action and that action failed |
Failed Dependency |
429 |
The server is refusing to service the request because the user has sent too many requests in a given amount of time (\"rate limiting\") |
Too Many Requests |
500 |
The server encountered an unexpected condition which prevented it from fulfilling the request |
Internal Server Error |
501 |
The server does not support the functionality required to fulfill the request |
Not Implemented |
502 |
The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request |
Bad Gateway |
503 |
The server is currently unable to handle the request due to a temporary overloading or maintenance of the server |
Service Unavailable |
504 |
The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URI (e.g. HTTP, FTP, LDAP) or some other auxiliary server (e.g. DNS) it needed to access in attempting to complete the request |
Gateway Timeout |
505 |
The server does not support, or refuses to support, the protocol version that was used in the request message |
HTTP Version not supported |
507 |
The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request |
Insufficient Storage |
Impacts:
INUBIT-21115
Starting with INUBIT 9.0, REST connectors containing multiple path parameters with the same name will no longer execute.
The following actions will result in errors in the corresponding connectors:
-
Registering listener connectors at server startup
-
Enabling
-
Publishing
-
Importing
-
Deploying
-
Breaking Change*
Path parameter names must not be used multiple times. Correct any duplicates accordingly.
Impacts:
INUBIT-21215
Starting with INUBIT 9.0, REST connectors whose path parameter contains a "." (period) will no longer be executed. The following actions will cause errors in the corresponding connectors:
-
Registering listener connectors at server startup
-
Activating
-
Publishing
-
Importing
-
Deployment
Breaking Change
Path parameter names may no longer contain periods. Correct any incorrect names accordingly.
Impacts:
INUBIT-21097
The feature available up to and including INUBIT 8.1, which allowed sending a request with the query parameter method=<HTTP method> and thus overriding the HTTP method at the endpoint, has been deprecated and is no longer available.
Breaking Change
Endpoints must now be called using the HTTP method with which they are exposed in the API. Overriding the HTTP method is no longer possible.
Impacts:
Security Fixes
|
Security fixes include the remediation of security-related vulnerabilities. In addition to INUBIT’s own code, this also includes updating and replacing third-party components used. |
INUBIT-19477
A potential XXE vulnerability in the INUBIT REST API has been fixed. The following switches can be used to reject XML data that potentially exploits vulnerabilities:
# External references in prologs are not resolved
-feature.load.external.dtd=true
# Doctype prologs are not processed
feature.disallow.doctype=true
# Disable resolution of parameter entities
feature.enable.parameter.entity=true
# Disable resolution of global entities
feature.enable.general.entity=true
Recommendation: Enable these switches in production systems to prevent potential security issues when processing XML.
Impacts:
-
Application - Process Engine
New Functionalities - Improvements
INUBIT-2946, SUPPORT-3538
The Web Service Connector module wizard has been enhanced so that when a keystore is stored, the keystore password is also saved and used at runtime. If the keystore and password do not match, the module will fail to execute, or the keystore cannot be stored in the module.
Impacts:
INUBIT-18677, SUPPORT-13290
If the FTP connector is configured with a server via FTP or FTPS and the connection must be made via a proxy, this can now be configured accordingly in the module properties.
Impacts:
INUBIT-20752
The Remote Connector has been updated with INUBIT 9.0.
Breaking Change
The Remote Connector in INUBIT 9.0 can no longer be used in INUBIT 8.1 and earlier. Adding it in the Connection Manager is no longer possible, significantly limiting maintenance and monitoring.
Impacts:
-
Connection Manager
INUBIT-21318, SUPPORT-14066
A problem with the task filter REST API endpoint has been fixed so that all tasks on the process engine that match the filter criteria can now be queried across all roles.
Impacts:
-
Liferay - Tasklist Portlet
INUBIT-9599
Accessing the Process Engine via CLI is now possible even on systems that do not support a browser UI.
Impacts:
INUBIT-12869
Logging in via Workbench to a process engine that uses Keycloak as an identity provider is now token-based (OAuth). The user switches to the browser and logs in directly to Keycloak. Workbench then only uses the access token that Keycloak returns upon success.
Impacts:
-
Application - Workbench
INUBIT-12884
The Workbench login screen has been redesigned and now supports login when using Keycloak as well as internal user management.
Impacts:
-
Application - Workbench
INUBIT-13159
If Keycloak is used as an IdP, the session running there will be removed from the workbench when a user logs out.
Impacts:
-
Application - Workbench
INUBIT-13606
Login via CLI against the internal user management is still supported with user and password.
Impacts:
INUBIT-16358, SUPPORT-14728
The certificates to be stored in the connector can now also be integrated via the Credentials Manager.
Impacts:
INUBIT-16359
The certificates, keystores and truststores to be stored in the connector can now also be integrated via the Credentials Manager.
Impacts:
INUBIT-16360
The certificates, keystores and truststores to be stored in the connector can now also be integrated via the Credentials Manager.
Impacts:
INUBIT-16450, SUPPORT-5152
The Credentials Manager now supports certificate storage. This can be used in modules to securely store public keys or certificates.
Impacts:
INUBIT-16451, SUPPORT-5152
The Credentials Manager now supports key pair storage. This can be used in modules to securely store private keys or key pairs.
Impacts:
INUBIT-16578
Certificates for remote connector configuration can now be integrated into system connectors via the Credentials Manager.
Impacts:
INUBIT-18382
The option to limit GUI threads has been removed under "General Settings". Any number of UIs can now connect to the Process Engine.
Impacts:
INUBIT-18597
The tunnel functionality of the INUBIT Process Engine has already been discontinued and is now removed.
Impacts:
-
Application - Process Engine
-
Application - Workbench
INUBIT-19261, SUPPORT-13702
Additional endpoints for deleting diagrams and modules, as well as their versions, have been added to the Process Engine REST API.
Impacts:
INUBIT-19478, SUPPORT-13851
INUBIT now supports Windows 2025.
Impacts:
-
Application - Process Engine
-
Application - Workbench
INUBIT-19594
A potential XXE vulnerability when reading the as4-gateway.xml file has been closed.
Impacts:
INUBIT-19607
Support for "userType=processUser" has been removed from the following REST API endpoints:
-
/ready
-
/user/users
-
/user/roles
-
/user/hasrole
-
/partnermanagement/data
-
/diagrams/**
-
/modules/**
Impacts:
INUBIT-19654
When OAuth is enabled, the CLI now redirects to the configured authorization server to perform user login via OAuth.
Impacts:
INUBIT-20099
The INUBIT CLI now allows OAuth authentication even when no browser is available.
Impacts:
INUBIT-20116
The SOAP API in the INUBIT Process Engine has been removed. All access is now via the REST API.
Impacts:
-
Application - Process Engine
INUBIT-20303
Workbench and CLI now use OAuth for authentication against the Process Engine. Basic Auth is still supported as a fallback, but it is deprecated and no longer recommended for security reasons.
Impacts:
-
Application - Workbench
INUBIT-20431
The JSON validator uses only modern way to validate the JSON with backward compatibility. Removed the legacy way to validate the JSON.
Impacts:
INUBIT-20537
To set the username and password for the Keycloak connection, the values can now be passed as environment variables:
-
Username: INUBIT_PE_KEYCLOAK_USERNAME
-
Password: INUBIT_PE_KEYCLOAK_PASSWORD
If the environment variables are not set, the values from the JSON configuration file are used.
Impacts:
-
Application - Process Engine
INUBIT-20591
Keycloak is now the default preconfigured user management system in the INUBIT Process Engine. Please fill out the required JSON configuration file correctly so that the server can start successfully.
Internal user management is still offered, but is not suitable for use in production environments.
Impacts:
-
Application - Process Engine
INUBIT-20679, SUPPORT-12661, SUPPORT-13404, SUPPORT-3238, SUPPORT-8069, SUPPORT-9724
When executing asynchronous workflow jumps with the same process ID via WFC, in which a multiplexer bundles incoming data streams, it is currently not possible to distinguish between the different executions at the mux. Therefore, the mux merges the first incoming data streams, which is not always desired.
The new module property "CreateModuleRunId" (type: Boolean) has been introduced at the workflow connector, which allows the multiplexer to distinguish between different asynchronous workflow executions. The module property must be created manually and assigned the desired value ("true", "false").
Impacts:
INUBIT-20858
The keycloak_template.json file has been expanded to include a description of all available options. This means you can find the documentation directly in the file, rather than in the online documentation.
Impacts:
Bug Fixes
INUBIT-17168
A problem with detecting the port on which the INUBIT Process Engine is running has been improved so that it now works flawlessly even when using multiple ports.
Impacts:
-
Application - Process Engine
INUBIT-21056, SUPPORT-13940
Fixed a memory issue in the Workbench when repeatedly running diagram deployment.
Impacts:
-
Workbench - Import / Export / Deployment
INUBIT-21122
A performance issue when inserting large amounts of data into a MySQL database has been fixed.
Impacts:
INUBIT-20778
Reading the contents of database tables failed when using some database types (including MySQL). This issue has now been resolved.
Impacts:
INUBIT-20856
If Keycloak is configured as the IdP in a process engine, the user base will not be changed during migration or backup restoration. All INUBIT users must be manually created in Keycloak before the migration/backup.
Impacts:
INUBIT-21040
Using the CLI has changed slightly. To access the help, you must explicitly pass the -h or --help parameter.
Impacts:
INUBIT-21095
The HTTP status description available in the restConnector.responseStatusDescription variable has changed. If you need the value of this variable, adjust your logic to the new values.
The following table illustrates the new values:
| HTTP status code | HTTP status description before 9.0 | HTTP status description from 9.0 onwards |
|---|---|---|
100 |
The client should continue with its request |
Continue |
101 |
The server is willing to change the application protocol being used on this connection |
Switching Protocols |
102 |
Interim response used to inform the client that the server has accepted the complete request, but has not yet completed it |
Processing |
200 |
The request has succeeded |
OK |
201 |
The request has been fulfilled and resulted in a new resource being created |
Created |
202 |
The request has been accepted for processing, but the processing has not been completed |
Accepted |
203 |
The returned meta-information is not the definitive set as available from the origin server |
Non-Authoritative Information |
204 |
The server has fulfilled the request but does not need to return an entity-body, and might want to return updated meta-information |
No Content |
205 |
The server has fulfilled the request and the user agent should reset the document view which caused the request to be sent |
Reset Content |
206 |
The server has fulfilled the partial get request for the resource |
Partial Content |
207 |
Provides status for multiple independent operations |
Multi-Status |
300 |
The requested resource corresponds to any one of a set of representations |
Multiple Choices |
301 |
The requested resource has been assigned a new permanent URI |
Moved Permanently |
302 |
The requested resource can be found under a different URI |
Found |
303 |
The response to the request can be found under a different URI |
See Other |
304 |
The client has performed a conditional GET request and the document has not been modified |
Not Modified |
305 |
The requested resource must be accessed through the proxy given by the location field |
Use Proxy |
307 |
The requested resource resides temporarily under a different URI |
Temporary Redirect |
400 |
The request could not be understood by the server due to malformed syntax |
Bad Request |
401 |
The request requires user authentication |
Unauthorized |
402 |
This code is reserved for future use |
Payment Required |
403 |
The server understood the request, but is refusing to fulfill it |
Forbidden |
404 |
The server has not found anything matching the request URI |
Not Found |
405 |
The method specified in the request is not allowed for the resource identified by the request URI |
Method Not Allowed |
406 |
The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request |
Not Acceptable |
407 |
This code is similar to Unauthorized, but indicates that the client must first authenticate itself with the proxy |
Proxy Authentication Required |
408 |
The client did not produce a request within the time that the server was prepared to wait |
Request Timeout |
409 |
The request could not be completed due to a conflict with the current state of the resource |
Conflict |
410 |
The requested resource is no longer available at the server and no forwarding address is known |
Gone |
411 |
The server refuses to accept the request without a defined content length |
Length Required |
412 |
The precondition given in one or more of the request header fields evaluated to false when it was tested on the server |
Precondition Failed |
413 |
The server is refusing to process a request because the request entity is larger than the server is willing or able to process |
Payload Too Large |
414 |
The server is refusing to service the request because the request URI is longer than the server is willing to interpret |
URI Too Long |
415 |
The server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method |
Unsupported Media Type |
416 |
For byte ranges, this means that the first byte position were greater than the current length of the selected resource |
Requested range not satisfiable |
417 |
The expectation given in the request header could not be met by this server |
Expectation Failed |
422 |
The server understands the content type of the request entity and the syntax of the request entity is correct but was unable to process the contained instructions |
Unprocessable Entity |
423 |
The source or destination resource of a method is locked |
Locked |
424 |
The method could not be performed on the resource because the requested action depended on another action and that action failed |
Failed Dependency |
429 |
The server is refusing to service the request because the user has sent too many requests in a given amount of time (\"rate limiting\") |
Too Many Requests |
500 |
The server encountered an unexpected condition which prevented it from fulfilling the request |
Internal Server Error |
501 |
The server does not support the functionality required to fulfill the request |
Not Implemented |
502 |
The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request |
Bad Gateway |
503 |
The server is currently unable to handle the request due to a temporary overloading or maintenance of the server |
Service Unavailable |
504 |
The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URI (e.g. HTTP, FTP, LDAP) or some other auxiliary server (e.g. DNS) it needed to access in attempting to complete the request |
Gateway Timeout |
505 |
The server does not support, or refuses to support, the protocol version that was used in the request message |
HTTP Version not supported |
507 |
The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request |
Insufficient Storage |
Impacts:
INUBIT-21115
Starting with INUBIT 9.0, REST connectors containing multiple path parameters with the same name will no longer execute.
The following actions will result in errors in the corresponding connectors:
-
Registering listener connectors at server startup
-
Enabling
-
Publishing
-
Importing
-
Deploying
-
Breaking Change*
Path parameter names must not be used multiple times. Correct any duplicates accordingly.
Impacts:
INUBIT-21215
Starting with INUBIT 9.0, REST connectors whose path parameter contains a "." (period) will no longer be executed. The following actions will cause errors in the corresponding connectors:
-
Registering listener connectors at server startup
-
Activating
-
Publishing
-
Importing
-
Deployment
Breaking Change
Path parameter names may no longer contain periods. Correct any incorrect names accordingly.
Impacts:
INUBIT-21097
The feature available up to and including INUBIT 8.1, which allowed sending a request with the query parameter method=<HTTP method> and thus overriding the HTTP method at the endpoint, has been deprecated and is no longer available.
Breaking Change
Endpoints must now be called using the HTTP method with which they are exposed in the API. Overriding the HTTP method is no longer possible.
Impacts: