Case Engine Release 1.1.39
DMN is here!
And there is more ...
This release brings some great new features to our customers. A next step in the domain of Decision Management with support for DMN decision tables.
Furthermore we have extended the Zero-Trust authorization model with support for what is known as the Client Credentials Flow.
Important - existing configurations must drop jackson serializer, see below for details
DMN
The Case Designer offers new functionality to model decision tables and use them from within a case. This step helps the decision making nature of CMMN into a next level.
Contact us if you want to start using this functionality.
Configuration change for existing installations
Settings up to version 1.1.38 have a jackson serializer. This must be dropped. Below is an example of both the old and the new settings.
...
46 serializers {
47 cafienne_serializer = "org.cafienne.infrastructure.serialization.CafienneSerializer"
48 jackson-json = "org.apache.pekko.serialization.jackson.JacksonJsonSerializer"
49 }
50
51 serialization-bindings {
52 "org.cafienne.infrastructure.serialization.CafienneSerializable" = cafienne_serializer
53 "org.cafienne.infrastructure.serialization.JacksonSerializable" = jackson-json
54 }
...
New settings - example lines 48 and 53 must be deleted
...
46 serializers {
47 cafienne_serializer = "org.cafienne.infrastructure.serialization.CafienneSerializer"
48 }
49
50 serialization-bindings {
51 "org.cafienne.infrastructure.serialization.CafienneSerializable" = cafienne_serializer
52 }
...
Client Credentials Flow
The case management authorization model goes deep. The network pattern that is known as "Zero Trust" is applied deeply within the case engine itself as well. In practice this means that you can only interact with a case if someone has given you access to it.
For system to system integrations this can be perceived as an obstacle, especially if there is no user context available. In order to overcome this, we have added some configuration options to support invoking individual actions under a system account.
New task duration support
A task can have a due date. This is a certain moment in time by which the task is expected to have completed.
With this release, we have added a duration field to the task information. This holds the period that lies between task activation and the due date of the task.
This also enables setting the due date as a period rather than a timestamp. E.g., configuring the due date of a task with P2D will automatically set the due date of the task to 2 days after it has become active.
Support for suspend / resume modeling
The CMMN specification has modeling features for activating and terminating items (through entry- and exitcriteria). In an earlier release the support for modeling reactivation of failed tasks or stages was added. In this release also support for modeled suspend and resume of tasks, stages and timers has been added.
Preparing cluster support
The case engine runs on the Pekko runtime. Support for pekko clustering is a long pending wish. This release holds some major internal refactoring that prepares for future clustering support.
This support comes with additional event information on the exact actor chain that the event originates from. It holds a path string that describes the parent case or process, until the root case has been identified.
Root tag
Next to the path in each individual event, also a new tag is added on each case event that holds the identifier of the root case instance. This helps fetching eventsByTag for all events of that root case in one query.
Note that for this feature an index is added to the event_tag table.
Correlation ID
Through a special HTTP Header, it is now possible to pass a correlation id on e.g. completion of a human task. This correlation id is also set on the resulting events, enabling to connect the completion and its results to external activity.
Adopt UUID v7
When creating new cases, processes and tasks, the identifiers were not sequential. In this release the engine started use of unique identifiers based on the v7 version of UUID. This improves database performance.
Housekeeping
Traditional housekeeping has taken place. Underlying dependendies have been updated.
Most notably the user identity constructs have been greatly simplified, giving much more grip on who is allowed to do what.