You are viewing the documentation for Blueriq 16. Documentation for other versions is available in our documentation directory.
Before you upgrade make sure to read the General Upgrade instructions as well as the Upgrade instructions for previous versions.
The changes are color coded. Orange elements have been changed, Green elements have been added and Red elements have been removed compared to the 16.9 release.
Table of contents
H2 database update
The update of the H2 dependency from version 2.1.214 to 2.2.224, does not automatically update the database version. This causes the Runtime to stop working after installing the Blueriq Runtime using the installer.
Note: The following will remove all database contents from your development installation.
To fix this issue, we need to stop the Runtime service and remove all files with extenion .db
from the C:\Program Files\Blueriq16\conf
folder. After the files have been removed, please restart the Runtime service. The database will be created again with the right structure.
Blueriq SDK
Several interfaces of the Blueriq SDK have been adjusted in support of the debugger functionality. The following APIs are affected:
interface IFlowEngine { IFlowState startFlow(); IFlowState revertToFlow(); IFlowState continueFlow(); } interface IMapping { void update(); }
Each of these methods has gained an additional IDebugger
parameter, which can be obtained from an IPortalContext
(and therefore its subclasses IServiceContext
and IActionContext
) using IPortalContext#getDebugger()
. It is also allowed to pass null
if no portal context is available, in which case debugging facilities are not available for that operation.
External Flow data contracts
With external flow data contracts we aim to always be backwards compatible with the previous major release. To do so we have made some changes to the IExternalFlowStore
interface. The old implementation of IExternalFlowStore
used JDK Serialization to serialize and deserialize data, which made it hard to guarantee backwards compatibility.
Modified classes
Interface com.blueriq.component.api.store.externalflow.IExternalFlowStore
- method <T extends Serializable> T get(String key, Class<T> valueType) was changed into ObjectModelRetrieval get(String key)
- method void set(String key, Serializable value) was changed into void set(String key, ObjectModelStorage value)
Custom Authentication Provider
Customers that have implemented a custom bean AuthenticationProvider
with a different implementation of the Authentication object other than UsernamePasswordAuthenticationToken, should implement the newly introduced com.blueriq.component.api.externalflow.data.mapping.AuthenticationMapper. Previously the Authentication object that was sent to the IExternalFlowStore
was serialized by JDK Serialization, but with the move away from JDK Serialization to explicit contracts, customers need to implement their own mapping to transfer the Authentication object. More information on how to implement it can be found here: External Flow Custom Authentication Mapper
Blueriq Gateway Service
Release 0.4.0 of the Blueriq Gateway Service brings the support of Single Sign On. With the support of Single Sign On we have removed a lot of configuration and changed the working of the Gateway.
Removed properties
- blueriq.gateway.oauth2.registration-extensions.keycloak.end-session-endpoint
- blueriq.gateway.post-logout-uri-context-path
- spring.security.oauth2.client.provider.<providername>.token-uri
- spring.security.oauth2.client.provider.<providername>.authorization-uri
- spring.security.oauth2.client.provider.<providername>.jwk-set-uri
Added properties
blueriq.gateway.post-logout-redirect-base-uri
We have migrated post-logout-uri-context-path to be more flexible and give the user more control. The default value of this property is set to {baseScheme}://{baseHost}{basePort}{basePath}. If you have the post-logout-uri-context-path you can set the post-logout-redirect-base-uri like this:
blueriq.gateway.post-logout-redirect-base-uri={baseScheme}://{baseHost}{basePort}{basePath}/context-path
spring.security.oauth2.client.provider.<providername>.issuer-uri
This property should be filled with the external URL of the Keycloak service that is accessible by users.
Route configuration
It is no longer required to provide the Keycloak route and therefor we have removed the BackendForFrontend route filter.
Keycloak
It is no longer required for Keycloak to be configure behind the reverse proxy of the Blueriq DCM Dashboard Frontend and routed in the Gateway. This is done to make Single Sign On possible, as it relies on session cookies that are created for the domain where Keycloak is running on. This does mean that Keycloak should be made publicly accessible for the user.
Blueriq DCM Dashboard Frontend
With the release 0.4.0 of the Blueriq Gateway Service you no longer need to configure the following locations:
location /realms/ { proxy_pass http://revProxyGateway/realms/; } location /resources/ { proxy_pass http://revProxyGateway/resources/; }
Multi-tenant filesystem connection properties
For the configuration of the runtime in a multi-tenant setup the filesystem connection properties have been changed:
from: blueriq.connection.<connectionName>.tenants.<tenant>.filesystem.path=<path>
to: blueriq.connection.<connectionName>.filesystem.tenants.<tenant>.path=<path>
Known issues
For an overview of known issue please refer to: Known issues.