Version 1.1.12 has a few additions that help mostly in the every day detail.
This includes topics such as more informative log messages, a better and more explicit API for usage inside expressions. Also a few new features such as support for anonymously starting cases. And a couple of detailed issues have been solved, such as adding an additional CORS related header in the HTTP traffic.
Experimental: Calculation Task
Some use cases require changes to the case file and the case plan based on certain conditions. E.g. a case file item array must be updated conditionally, depending on the outcome of a certain task. Until now, this required either extremely complex expressions (using engine internal APIs), or the creation of separate end points that can be invoked through ProcessTasks invoking HTTP endpoints. The new experimental Calculation Task can be invoked as a regular process task, but without any external dependencies. The task takes an arbitrary number of input parameters and produces output parameters based on a set of steps that run expressions on the input parameters (or the outcome of other steps). Output parameters are produced on a conditional basis, enabling simpler decisions in the case plan.
Start Case Anonymously
Most of the REST services API of Cafienne require authentication through the OIDC standard, with JWT tokens. In quite a few scenarios (e.g. a government portal where citizens can submit certain applications), the user requesting the case need not be part of the actual handling of the case, let alone be registered as a Cafienne Engine user. Through a new configuration option it is possible to start case definitions anonymously. Each type of case that can be started is given an identifier on the end point, and each type can configure it's own case team.
New Expression API
The CMMN enables the use of expressions in many different places, such as repetition rule conditions, or parameter transformations. The Cafienne Engine leverages the powerful Spring Expression Language (SPEL) as the default implementation (next to a few others). Up until this release, the SPEL language could be used to access engine internal APIs. From version 1.1.12 onwards, the internal API is no longer available, and replaced with a formally supported API to access e.g. a case id or a task id. More information on this new feature can be found in the expressions section of the Cafienne Guide