You are viewing the documentation for Blueriq 14. Documentation for other versions is available in our documentation directory.

1. New

1.1. Document Renderer Service

This release of Blueriq comes with the new Blueriq Document Renderer Service. The Blueriq Document Renderer Service replaces the embedded document renderer, which has been deprecated in Blueriq 14.11 and will be removed in Blueriq 15, because the underlying technology was no longer maintained. In order to migrate to the new Document Renderer Service, please refer to the upgrade instructions for this release. More information about the new Document Renderer Service can be found here: Document Renderer Client component and Document Renderer Service.

1.2. Static request headers

It is now possible to configure key-value pairs of headers for AQ_SoapServiceClient and AQ_RestService client calls through configuration properties. These headers can be configured globally for all connections, or on a per-connection basis. More information on the new functionality can be found in the Custom HTTP Headers and Custom HTTP headers setup documentation.

1.3. Keycloak as identity provider in the Studio

The Studio has supported a wide range of authentication schemes for some time already, and release 14.11 extends the selection by leveraging Keycloak as identity provider using the OpenId Connect protocol. This enables more extensive authentication configurations than were possible before, such as federated user authentication. Please refer to the Keycloak configuration page for information on how to configure the Studio to start using Keycloak.




On this page:

2. Enhancements

2.1.  Rule engine performance improvements

This release brings a couple of performance improvements to the rule engine, which may result in faster creation of profiles and reduced memory usage. Additionally, the performance of value list validations has been improved and is no longer sensitive to the size of the domain in some cases.

We've seen large improvements in the execution of Studio unit tests (up to 3x faster) due to these changes when large test profiles (with many static instances) are used.

2.2.  New tree selection method AQ_DecisionTreeEvaluator

This release adds a new option to select a decision tree in the AQ_DecisionTreeEvaluator. The AQ_DecisionTreeEvaluator container is used process a selected decision tree. In previous versions it was possible to select a decision tree by using the AQ_DecisionTreeSelector in front of the AQ_DecisionTreeEvaluator, or by setting the DecisionTree container parameter in the AQ_DecisionTreeEvaluator to a specific decision tree.New tree selection method AQ_DecisionTreeEvaluator

In this release we have added an additional selection method by setting two parameter on the AQ_DecisionTreeEvaluator called: decisionTreeSourceExpression, and decisionTreeTargetMapping. By using these parameter u are able to select a decision tree using an expression, which makes it easier to use this container a decoupled architecture. For more information regarding the usage of the parameters see the AQ_DecisionTreeEvaluator page.

2.3. Log correlation improvements 

Log correlation in Blueriq uses Spring Cloud Sleuth under the hood. The upgrade to the newest Spring Cloud Sleuth version comes with some small improvements and new implementations which are documented here : https://spring.io/blog/2021/12/07/spring-cloud-sleuth-3-1-0-is-out

2.4.  Runtime Development Tools - Dashboard

In the Flowstarter widget it is now possible to add Request parameters to your start url. These parameters can be picked up in the applicationmodel by de AQ_GetRequestParameters service.


3. Documentation

Documentation on the new features and improvements of this release is linked in the respective topics.

4. Changes Platform Support

Our Platform support is updated.

Changes are:

  • Support for Windows 11 Enterprise, version 21H2 has been added
  • Support for RabbitMQ 3.9.x has been added
  • Support for RabbitMQ 3.7.x has been removed
  • Support for MongoDB 5.0 has been added
  • Support for MongoDB 4.2 has been removed
  • Support for Oracle 21C has been added

5. Upgrade Instructions

There are no specific upgrade instructions for this release.

As a best practice

  • backup your repository
  • backup your database before running scripts
  • backup your spring.config.additional-location directory ([Blueriq installation directory]\Runtime)
  • backup any config files you have altered under [Blueriq installation directory]\Services

before you start the upgrade.

6. Artifacts

 The Blueriq artifacts are available under name: 14.11.0.4888

This release includes these versions of Blueriq components with a separate life cycle:

Component

Version

Customer Data Service3.4.10
DCM Lists Service2.0.2
Material Theme1.0.44
Document Renderer1.1.0

7. Aquima Libraries

The Aquima libraries are updated, see below what has changed:

8. Libraries

In this release, the set of third party libraries that is used by Blueriq was updated. When your installation of Blueriq includes custom components (artifacts that do not ship with Blueriq, such as proprietary plugins), those components should be tested for compatibility with these changes.

ArtifactId

GroupId

License

Version in 14.10.2

Version in 14.11.0

javassist

org.javassist

Apache License 2.0

3.27.0-GA

(error)

org.eclipse.jgit.ssh.jsch

org.eclipse.jgit

EDL

(error)

5.12.0.202106070339-r

amqp-client

com.rabbitmq

Apache License 2.0

5.12.0

5.13.1

brave

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-context-slf4j

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-http

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-httpasyncclient

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-httpclient

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-jms

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-kafka-clients

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-kafka-streams

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-messaging

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-mongodb

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-rpc

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-spring-rabbit

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

brave-instrumentation-spring-web

io.zipkin.brave

Apache License 2.0

5.13.2

5.13.7

bson

org.mongodb

Apache License 2.0

4.2.3

4.4.2

byte-buddy

net.bytebuddy

Apache License 2.0

1.11.12

1.12.8

classgraph

io.github.classgraph

MIT License

4.8.69

4.8.108

commons-dbcp2

org.apache.commons

Apache License 2.0

2.8.0

2.9.0

commons-pool2

org.apache.commons

Apache License 2.0

2.9.0

2.11.1

hibernate-core

org.hibernate

LGPL 2.1

5.4.33

5.6.7.Final

hibernate-entitymanager

org.hibernate

LGPL 2.1

5.4.33

5.6.7.Final

jackson-databind

com.fasterxml.jackson.core

Apache License 2.0

2.13.2.1

2.13.2.2

jandex

org.jboss

Apache License 2.0

2.2.3.Final

2.4.2.Final

JavaEWAH

com.googlecode.javaewah

Apache License 2.0

1.1.6

1.1.7

jedis

redis.clients

MIT License

3.6.3

3.7.1

metrics-core

io.dropwizard.metrics

Apache License 2.0

4.1.31

4.2.9

micrometer-core

io.micrometer

Apache License 2.0

1.7.10

1.8.4

mongodb-driver-core

org.mongodb

Apache License 2.0

4.2.3

4.4.2

mongodb-driver-sync

org.mongodb

Apache License 2.0

4.2.3

4.4.2

nimbus-jose-jwt

com.nimbusds

Apache License 2.0

9.10.1

9.14

oauth2-oidc-sdk

com.nimbusds

Apache License 2.0

9.9.1

9.19

org.eclipse.jgit

org.eclipse.jgit

EDL

5.1.3.201810200350-r

5.12.0.202106070339-r

org.eclipse.jgit.http.apache

org.eclipse.jgit

EDL

5.1.3.201810200350-r

5.12.0.202106070339-r

spring-amqp

org.springframework.amqp

Apache License 2.0

2.3.15

2.4.3

spring-boot

org.springframework.boot

Apache License 2.0

2.5.12

2.6.6

spring-boot-actuator

org.springframework.boot

Apache License 2.0

2.5.12

2.6.6

spring-boot-actuator-autoconfigure

org.springframework.boot

Apache License 2.0

2.5.12

2.6.6

spring-boot-autoconfigure

org.springframework.boot

Apache License 2.0

2.5.12

2.6.6

spring-boot-configuration-processor

org.springframework.boot

Apache License 2.0

2.5.12

2.6.6

spring-boot-starter

org.springframework.boot

Apache License 2.0

2.5.12

2.6.6

spring-boot-starter-aop

org.springframework.boot

Apache License 2.0

2.5.12

2.6.6

spring-boot-starter-data-mongodb

org.springframework.boot

Apache License 2.0

2.5.12

2.6.6

spring-boot-starter-logging

org.springframework.boot

Apache License 2.0

2.5.12

2.6.6

spring-boot-starter-validation

org.springframework.boot

Apache License 2.0

2.5.12

2.6.6

spring-cloud-commons

org.springframework.cloud

Apache License 2.0

3.0.5

3.1.1

spring-cloud-config-client

org.springframework.cloud

Apache License 2.0

3.0.6

3.1.1

spring-cloud-config-server

org.springframework.cloud

Apache License 2.0

3.0.6

3.1.1

spring-cloud-context

org.springframework.cloud

Apache License 2.0

3.0.5

3.1.1

spring-cloud-sleuth-api

org.springframework.cloud

Apache License 2.0

3.0.5

3.1.1

spring-cloud-sleuth-autoconfigure

org.springframework.cloud

Apache License 2.0

3.0.5

3.1.1

spring-cloud-sleuth-brave

org.springframework.cloud

Apache License 2.0

3.0.5

3.1.1

spring-cloud-sleuth-instrumentation

org.springframework.cloud

Apache License 2.0

3.0.5

3.1.1

spring-cloud-starter

org.springframework.cloud

Apache License 2.0

3.0.5

3.1.1

spring-cloud-starter-bootstrap

org.springframework.cloud

Apache License 2.0

3.0.5

3.1.1

spring-cloud-starter-config

org.springframework.cloud

Apache License 2.0

3.0.6

3.1.1

spring-cloud-starter-sleuth

org.springframework.cloud

Apache License 2.0

3.0.5

3.1.1

spring-data-commons

org.springframework.data

Apache License 2.0

2.5.10

2.6.3

spring-data-keyvalue

org.springframework.data

Apache License 2.0

2.5.10

2.6.3

spring-data-mongodb

org.springframework.data

Apache License 2.0

3.2.10

3.3.3

spring-data-redis

org.springframework.data

Apache License 2.0

2.5.10

2.6.3

spring-hateoas

org.springframework.hateoas

Apache License 2.0

1.3.7

1.4.1

spring-rabbit

org.springframework.amqp

Apache License 2.0

2.3.15

2.4.3

spring-security-config

org.springframework.security

Apache License 2.0

5.5.5

5.6.2

spring-security-core

org.springframework.security

Apache License 2.0

5.5.5

5.6.2

spring-security-crypto

org.springframework.security

Apache License 2.0

5.5.5

5.6.2

spring-security-ldap

org.springframework.security

Apache License 2.0

5.5.5

5.6.2

spring-security-oauth2-client

org.springframework.security

Apache License 2.0

5.5.5

5.6.2

spring-security-oauth2-core

org.springframework.security

Apache License 2.0

5.5.5

5.6.2

spring-security-web

org.springframework.security

Apache License 2.0

5.5.5

5.6.2

spring-session-core

org.springframework.session

Apache License 2.0

2.5.5

2.6.2

spring-session-data-redis

org.springframework.session

Apache License 2.0

2.5.5

2.6.2

zipkin

io.zipkin.zipkin2

Apache License 2.0

2.23.0

2.23.2

zipkin-reporter

io.zipkin.reporter2

Apache License 2.0

2.16.1

2.16.3

zipkin-reporter-brave

io.zipkin.reporter2

Apache License 2.0

2.16.1

2.16.3

zipkin-reporter-metrics-micrometer

io.zipkin.reporter2

Apache License 2.0

2.16.1

2.16.3






9. Retirement announcement

There are no specific retirement announcements.

For a full list of deprecated features, go to Deprecated features.

10. Bug fixes

Identifier

Component

Issue

Solution

BQ-15698

JAVA Runtime

The Spring configuration in Blueriq contained a circular reference when the blueriq.session.session-manager property would be set to external.

The circular reference has been removed.

CSD-4085

Studio

Value lists that had been created in old versions of Studio could fail to load, preventing the branch from being opened

The situtation that resulted in a crash is now accounted for, allowing the branch to be opened again.

BQ-15646

Development dashboard

Selection inputs don't show any values to select anymore except for one empty value. In the case of a multivalue slection input selecting this empty entry will add an empty pill.

The issue came up after an upgrade to Angular 12. Originally it was added as a workaround, because of a bug in Blueriq Design System. The work around has been removed and the selction input works as intended again.

CSD-3983

Runtime

In some cases, the test path wouldn't be preserved after executing an automatic task.

The test path is now preserved properly after executing an automatic task.

BQ-15505

Customer Data Service, DCM Lists Service, Runtime

CVE-2020-36518 was detected on jackson-databind before 2.13.2

Fixed by upgrading to the latest version of jackson-databind which does not contain the vulnerability.

BQ-15369

Runtime

When a log level on root is set higher than INFO the audit logging isn't working anymore.

Audit logging will always work regardless of log level on root, when activated in bootstrap.properties

BQ-15359

Runtime

The AQ_GetHeaders service did not support multi valued headers. It would store the first value of a multi valued header, regardless of whether is was stored to a single valued or multi valued attribute.

We added support for multi valued headers to the AQ_GetHeaders. When a multi valued header is stored to a single valued attribute, the last value will be stored.

CSD-4063

Development dashboard

When opening the h2 console an error screen is shown instead of the h2 console

The IIS proxy in the installer sets a header which is not properly understood by tomcat serving the h2 console, resulting in the error. By setting extra headers in IIS, tomcat can properly understand the request and serve the h2 console.

CSD-4049

Runtime

Cases are locked in the database when a task is started. Unlocking the case and checking if a case is locked happens by consulting the Hibernate model. We know that Hibernate does not always synchronize with the database when we expect it, which may cause inconsistencies between case being locked/unlocked (a case may appear to be locked while it is not and vice versa).

Like acquiring the lock, unlocking/checking if the lock exists happens through the database instead of Hibernate. Also, when a case is unlocked that was not locked, an exception is thrown indicating this. Lastly, logging was added when a case is unlocked so we can see when this action happens in the log.
 
The changes may result in different behaviour of your application. Specifically, it may be more strict than before, as it is not possible anymore to for instance complete a task with case locking enabled, without a case lock being present. While this is a good thing, know that it is still possible to revert to the legacy behavior using the legacy toggle blueriq.legacy.use-legacy-case-unlocking.

CSD-3889

Runtime

Blueriq didn't offer a security property to enable session fixation protection

Blueriq now offers a property to enable session fixation protection: blueriq.security.session-fixation-protection.enabled = true

11. Known issues

For an overview of known issue please refer to: Known issues

The fix for issue CSD-4049 might cause some issues with Case Locking (for example when task locking is disabled at tasks or sending message events). Please be aware when upgrading to this version. A fix will be released in the next minor version.