Release notes

The 2021.2 is in beta.

New values added

SSO with OpenID Connect

As of Bonita 2021.2, it is possible to configure Bonita to use OpenID Connect (OIDC) as an authentication mechanism to access your Bonita applications and achieve Single Sign-on with an external OIDC provider.
The Authorization Code Flow of OpenID Connect is supported to authenticate when accessing Bonita applications as well as the Resource Owner Credentials Grant and Authorization Code Grant of OAuth 2.0 to authenticate when requesting Bonita REST API.

Bonita Studio Project Composition

Bonita projects will use the power Maven projects. Meaning that you will be able to easily compose your project of extensions (connectors, Rest API extensions, themes, and actor filters).

All these extensions, which are technical components, have to be built outside the Studio with our SDK. This will allow the developer to use their preferred tooling. It will also help the industrialization of your project as you will be able to implement tests for each extension making your project more robust.

As the extensions are developed outside the Studio, they are no longer bound to a specific Bonita project. They can be easily reused in a different project - thus improving your efficiency. More information on how Bonita projects are structured.

The Studio is stripped of its major coding editor (except for the REST API Extensions) but has now a dedicated view for extensions. This view is used to get extensions from different sources:

  • From the Bonita marketplace, which contains all the actor filters and connectors made and maintain by Bonitasoft

  • From maven repository (private or public)

  • From files (jar or zip)

The Studio is more accessible to citizen developers. Any technical development should be made outside the Studio.

As connectors are now extensions of a project, their version is now bound to the Studio version, therefore you don’t need to upgrade your Studio to upgrade a connector or to upgrade your connector when upgrading your Studio. This will simplify version upgrades.

Finally, your sources will be lighter as the dependencies will be pulled by the project.

Organization Editor

The Organization wizard has been reworked into an editor, to improve your experience and your efficiency.

Project Overview

Understanding all the elements of a Bonita project has never been easier thanks to the Project Overview. Accessible from the cool bar, this new page displays all the elements that can be used in a state-of-the-art Bonita project. From this view, you can create, consult or edit the different elements. You can also find documentation on the different components.

Improvements

Development suite changes

Expression type simplification

2021.1 introduced a new expression editor. This new expression editor covers the existing editor expression type use cases.

Therefore, to simplify the expression flow in the Studio we are removing the following expression types:

  • Constant

  • Comparison

  • Constant

  • Parameter

  • Variable

  • Contract

  • Connector Output

If your project is using these expression types, they will be migrated to the new expression editor when you import your project in the 2021.2 Studio.

Improvements on the widget switch

The switch widget feature has been improved to guide the user efficiently to avoid incompatible properties mapping that may lead to inconsistent states of widgets.

Tab widget: Possibility to define the selected tab

It is now possible to define the tab that will be selected by default in the tab group with the new "Selected" field on the tabs.

API Variables response Metadata usage

It is now possible to easily bind the metadata of an API variable response (header, status code, and response value) to other variables

Runtime changes

New application-based Portal

In Bonita 2021.2, the Bonita Portal is now removed, meaning that

  • Custom profiles are converted into Living Applications with default Bonita layout and Bonita theme

  • If you had customized the Portal, please note that the Look & Feel files are removed too

  • Some elements are not migrated (Process Manager profile, Reports page), check the release notes to have the complete list

Custom Profile navigation conversion

Before 2021.2, you had the possibility to create custom profiles and specific navigation, with menus and pages, to customize your Bonita Portal experience. Here is an example:

Previous Custom Profile Navigation
Figure 1. Pre-2021.2 Custom Profile navigation example

that looks like:

Previous Custom Profile
Figure 2. Pre-2021.2 Custom Profile example

In Bonita 2021.2, custom profile navigation has been removed, and thus profiles with navigation are automatically converted into Living Applications by the migration tool.

Here is the list of applications, with the converted one, when you log in after migration for the first time:

Applications list
Figure 3. The previous Custom Profile navigation is now accessible as a Living Application

Here is what it looks like after conversion:

Converted Application
Figure 4. Custom Profile navigation converted into a Living Application

As with any application, you can now modify its details, URL, change its logo, …​

Process Manager profile navigation

As part of the update of Bonita Portal into Bonita Applications, we have not reimplemented the pages for the profile Process Manager, a new documentation page will explain (//TODO: write page before GA release) how to rebuild and customize the Bonita administrator application to handle the process management capabilities.

Exception reporting

When something goes wrong while executing processes, we now log only the important information. In addition, the root cause of the issue is the first one shown.

Here is a sample of what will now be logged

2021-01-11 17:55:25.551 +0100 WARNING (Bonita-Worker-1-01) org.bonitasoft.engine.work.RetryingWorkExecutorService THREAD_ID=115 | HOSTNAME=Baptistes-MBP | TENANT_ID=1 | Work ExecuteFlowNodeWork: flowNodeInstanceId: 60001 (37, false, false, false) failed. The element will be marked as failed. Exception is: java.lang.ArithmeticException: Division by zero
	wrapped by org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: Groovy script throws an exception of type class java.lang.ArithmeticException with message = Division by zero
Expression : SExpressionImpl [name=aScript, content=1/0, returnType=java.lang.String, dependencies=[], expressionKind=ExpressionKind [interpreter=GROOVY, type=TYPE_READ_ONLY_SCRIPT]]
	wrapped by org.bonitasoft.engine.core.process.instance.api.exceptions.SActivityStateExecutionException: error while updating display name and description
 exception was generated here:	at java.math.BigDecimal.divide(BigDecimal.java:1745)
	at org.codehaus.groovy.runtime.typehandling.BigDecimalMath.divideImpl(BigDecimalMath.java:68)
	at org.codehaus.groovy.runtime.typehandling.IntegerMath.divideImpl(IntegerMath.java:49)

A new property bonita.tenant.work.exceptionsNumberOfFrameToLog in file bonita-tenant-community-custom.properties allows the change the number of frames (=lines) displayed when an exception happens.

Groovy script results casting

Bonita runtime will automatically try to cast the result of groovy scripts when it differs from the declared return type if it can be converted.

For example, when a script returns a long and you have declared java.lang.Integer as the return type of your expression, it was throwing an Invalid return type exception. Now it will cast that result to an integer.

That will make the expression more permissive.

Groovy is able to cast any object in boolean so scripts that declare a return type java.lang.Boolean that failed because of the wrong return type will now always work and return either true or false. See Official Groovy documentation for truthy/falsy values.

Logging

default log level for com.bonitasoft and org.bonitasoft change from WARNING to INFO

Easy upgrade from Community to Subscription

From this release, upgrade from Community to Subscription is made a lot easier: all the tricky configuration part is handled automatically by Bonita Runtime at server startup.
See the related changes done to specific configuration files.

JAAS authentication is now Enterprise

From version 2021.2, JAAS Authentication is only available in the Enterprise edition.
If you are updating from a 2021.1 or earlier version, in the Community edition, you will need to change your configuration file authenticationManager-config.properties and remove the JAAS configuration to use another Authentication Manager (an implementation of your own, for instance).

LDAP Synchronizer

Technical updates

Java 11 Compliance

Bonita 2021.2 is now only compatible with Java 11. Support with Java 8 has now been removed.

Tomcat

Tomcat has been updated to version 9.0.52.

Libraries

Support Matrix

Configuration file changes

  • Unused configuration file forms-config.properties has been removed.

  • Optional configuration file jaas-standard.cfg has been removed from Tomcat Community bundle (because JAAS is now Enterprise)

  • CAS and Kerberos configuration files have been moved to folder tools/SSO/ (Bonita Enterprise only)

Feature deprecations and removals

Deprecations

API - Deprecations

  • In the TenantAdministrationAPI, the installBusinessDataModel method is now deprecated, as the new method updateBusinessDataModel replaces it for all use cases.

  • The ReportingAPI is now deprecated.

Removals

BonitaStudioBuilder

The deprecated BonitaStudioBuilder command line interface has been removed. To benefit from an efficient Bonita project building and deploying solution, please refer to the BCD add-on.

Import workspace

The import workspace feature has been removed. Use the standard project export/import or the Git integration instead.

Example pages / Rest API extensions

Bonita Tomcat bundle 2021.2 does not include anymore the following example pages / Rest API extensions:

  • REST API extension example

  • API extension viewer page

  • Groovy example page

  • HTML example page

If you migrate from an earlier version of Bonita, you can now delete them if you don’t use them (previously, they could not be deleted).

Bug fixes

Fixes in Bonita 2021.2

Fixes in Bonita Development Suite (Studio and UI Designer)

  • STUDIO-4113 - Process Validation freezes after process import

  • STUDIO-4086 - Expression editor inserts the wrong operator

  • STUDIO-4066 - java.lang.NullPointerException at build when the wrong variable is entered in a script but not shown in the validation

  • STUDIO-4043 - errors while importing .bos in studio

  • STUDIO-3962 - Release note view is broken on Windows

  • STUDIO-3953 - LA Builder is slow

  • STUDIO-3936 - EMF resources not in sync after using Git operations

  • STUDIO-3898 - Model - annotations are positioned relatively to lanes coordinates (not absolute)

  • STUDIO-3880 - Editing domain can be null on an opened diagram

  • STUDIO-3875 - Issue with "Switch project" function

  • STUDIO-3793 - UIPath connector is not working with cloud orchestrator

  • UID-459 - BO variable cannot be edited in fragment after workspace import from previous version and error message is wrong

Fixes in Bonita Runtime

  • RUNTIME-261 - BDM installation failed when a bdm was already installed

  • RUNTIME-138 - Entire BDM install history lost when BDM deployment issue

  • RUNTIME-132 - [SAML] Getting the default login page when signing in on a guest app

  • RUNTIME-84 - Loading a class with Class.forName can keep references in VirtualClassloader

  • RUNTIME-70 - BDM schemas changes are not rolled back after a failed installation of a new BDM over an existing one

  • RUNTIME-34 - Install a BDM with an invalid custom query fail silently

  • RUNTIME-27 - Services resume failures after the la-deployer detects bdm deployment timeout

  • RUNTIME-23 - Installing BDM with a wrong custom query corrupts the BDM database without any rollback option

Known issues

Email connector

The rich text editor used to edit an email message does not work on Linux since the libwebkit2gtk-4.0-37 package has been updated to 2.32.0+. Last known working version of the package is 2.28.1-1. Linux users can use the plain text editor or a script expression to edit their email’s message body.