Breaking Changes
|
A breaking change may require manual adjustments by the administrator. Please read the description. |
9.0.2
Workbench - Server Configuration
For BPC portal integration, the BPC API key must now be entered manually in INUBIT (e.g., via copy/paste).
Breaking Change
Previously, the BPC API key could be automatically created, retrieved, and saved via the INUBIT portal server configuration. This is no longer possible with BPC 5.0. The API key must now be manually created in BPC and transferred to INUBIT.
Impacts:
Process Engine - REST API
The INUBIT REST API has been revised and consolidated. This necessitates some adjustments.
In INUBIT, only the hostname and port of the INUBIT instance to be accessed now need to be specified in all relevant places (e.g., login, deployment).
-
The endpoint "/process/processes" can now only be accessed without the trailing "/". Previously, accessing "/process/processes/" was also supported.
-
Error responses are now returned in the format of the Accept header. By default, this is "application/json".
Impacts:
Connector - REST
Due to the change in the underlying technical REST framework, the "Allow fallback to insecure trust manager" option is no longer selectable independently. This option is now only selectable if the "Allow fallback to insecure hostname verification" option is enabled.
Breaking Change
The following module configurations can no longer be applied as before:
-
Enabled: "Allow fallback to insecure trust manager"
-
Disabled: "Allow fallback to insecure hostname verification"
Incorrectly configured modules may fail during execution and must then be manually adjusted.
Temporary Workaround
Both fallback options can be enabled using the -Dfeature.enable.restconnector.insecure.fallback=true switch in the Process Engine startup script. This also enables the option for insecure hostnames. Use this switch only in exceptional cases.
We recommend using secure connections that do not require any kind of fallback.
Impacts:
Portal - General
BPC 5.0 no longer supports INUBIT as an identity provider. This feature has therefore been removed from INUBIT.
Breaking Change
It is no longer possible to configure a BPC identity provider in the INUBIT portal configuration. This must now be done directly in BPC.
Impacts:
-
Portal - General
Converter - XSLT
With the switch to JDK 21, direct Java calls from XSLT scripts may no longer work and must be adjusted.
Breaking Change
This change in behavior is due to the transition from JDK 17 to JDK 21 and the associated changes or removal of Java classes.
Saxon itself forwards Java calls directly to the JDK and does not ensure compatibility. This is the responsibility of the caller from the XSLT script.
Example:
With JDK 21, the Thread class was extended and a new method, sleep(Duration), was added.
Previously (JDK 17):
Calls to java:java.lang.Thread.sleep(1000) were successfully executed by the JDK.
The Thread class contains only one method, sleep, which expects a value of type long as a parameter.
New (JDK 21):
Calls to java:java.lang.Thread.sleep(1000) fail.
The Thread class now contains two sleep methods, and the JDK doesn’t know which one to call.
Solution:
The call to the Sleep method must now be typed: java:java.lang.Thread.sleep(xs:long(1000))
Impacts:
Application - Process Engine
Using an external identity provider also affects the configuration of the process user server in INUBIT.
Important Changes
If Keycloak is used as the identity provider for the INUBIT process engine, the process user server must also be configured to use the same Keycloak to ensure successful authentication.
Impacts:
-
Application - Process Engine
9.0.1
Connector - BSI AS4
For BSI AS4 Inbound process signal message is signed using Signing key.
Impacts:
Workbench - Server Configuration
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:
Utility - Data Stream Analyser
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:
9.0.0
Application - Remote Connector, Connection Manager
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
Connector - REST
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:
Connector - REST
There is a change in the HTTP status description available in the variable "restConnector.responseStatusDescription". Below are the status codes and descriptions. 100 Continue 101 Switching Protocols 102 Processing 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset Content 206 Partial Content 207 Multi-Status 300 Multiple Choices 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 305 Use Proxy 307 Temporary Redirect 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Payload Too Large 414 URI Too Long 415 Unsupported Media Type 416 Requested range not satisfiable 417 Expectation Failed 422 Unprocessable Entity 423 Locked 424 Failed Dependency 429 Too Many Requests 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout 505 HTTP Version not supported 507 Insufficient Storage
Impacts:
Connector - REST
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:
Connector - REST
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:
Connector - REST
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: