Release notes

Welcome to our four Bonita applications!

Those new applications beautifully replace our good old Bonita Portal, gone for retirement.
You will find more information in the New Bonita Applications chapter below.

Custom Profiles with a Portal navigation will be automatically converted to custom applications upon Bonita update.
Therefore, be extra-careful during the Bonita update procedure.

New values added

Video: What’s new in Bonita 2021.2

Bonita Studio and Bonita UI Designer

Bonita Studio Project Composition

Automation projects now use the power of Maven. You can now 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 of the Studio with our SDK (except for Rest API extensions that can still be developed in the Studio). 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), and 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 connectors and actor filters made and maintained by Bonitasoft

  • From maven repositories (private or public)

  • From files (jar or zip)

Bonita Studio becomes more and 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 not bound to the Bonita Studio version anymore. Therefore, you do not need to update Bonita Studio to migrate a connector or to migrate your connectors when updating Bonita Studio. This will simplify version updates.

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

Project Overview

Understanding all the elements of a Bonita project has never been easier thanks to the Project Overview. Accessible from the coolbar, 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, view or edit the different elements. You can also find documentation on the different components.

Studio Organization Editor

In Bonita Studio, the Organization wizard has been reworked into an editor, to improve your experience and your efficiency.

Bonita Runtime

SSO with OpenID Connect

It is now 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.

Improvements

Bonita Studio and Bonita UI Designer

Expression type simplification

Bonita 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 Bonita 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 Bonita Studio 2021.2.

"Switch" widget better guidance

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 tabs 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.

Bonita Runtime

New Bonita Applications

Bonita Portal is now removed, meaning that:

  • Bonita Mobile Portal has been removed

  • Custom profiles with Portal navigations are converted into custom Applications with default Bonita layout and Bonita theme

  • If you had customized Bonita Portal, please note that the Look & Feel files are removed too: you will need to create a theme an apply it to the newly created applications

  • The Process Manager profile is temporarily discontinued

  • The Analytics page is also temporarilly discontinued

Mobile Portal removal As Bonita User Application can be used on mobile devices thanks to the responsive Bonita layout, the Mobile Portal is no longer needed.

Custom Profile navigation conversion

Before 2021.2, you had the possibility to create custom profiles with specific Portal navigation, with menus and pages, to customize users' 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 custom applications by the migration tool.

Here is the list of applications, with the converted one, when you log in the first time after a Bonita update including the 2021.1 to 2021.2 step:

Applications list
Figure 3. The previous Custom Profile navigation is now accessible as a custom application

Here is what it looks like after conversion:

Converted Application
Figure 4. Custom Profile navigation converted into a custom 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 soon explain how to rebuild and customize the Bonita Administrator Application to handle the process management capabilities.

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.

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.

Logging

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

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.

JAAS authentication is now Enterprise

JAAS Authentication is now only available in the Enterprise edition.
In the Community edition, if you are updating from Bonita 2021.1 or an earlier version, 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).

4xx HTTP errors handling

When trying to load an application resource (Javascript, CSS, image…​), if there is a 4xx error, like 404 (not found) or 403 (forbidden), the status code is now set in the HTTP response header but Bonita applications no longer try to display the dedicated error pages unless the resource itself is a page (HTML). As a result, the status code remain 4xx and is no longer changed to 200 with the error page in the body of the reponse.

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.

Configuration file changes

  • The unused configuration file forms-config.properties has been removed.

  • The 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

  • 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 do not use them (previously, they could not be deleted).

Bug fixes

Fixes in Bonita 2021.2

Fixes in Studio and UI Designer

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

  • STUDIO-4126 - Process execution errors: bcd-dependencies:7.11.5 generates a .bar different from Studio 7.11.5

  • STUDIO-4113 - Process Validation freezes after process import

  • STUDIO-4086 - Expression editor inserts the wrong operator ' =<' instead of '⇐' in groovy script

  • STUDIO-4066 - java.lang.NullPointerException at build when wrong variable entered in script but not shown in 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 synch 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 opended diagram

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

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

Fixes in Bonita Runtime

  • RUNTIME-479 - CVEs in OpenSSL version in Docker images

  • RUNTIME-447 - Security vulnerability REST API portal/runreport open to all profiles

  • RUNTIME-271 - Archived cases query fails with 'operator does not exist' error when filtering on process name

  • 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 loging 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.

Document converter connector

Update to, at least, version 2.2.0

Due to an invalid dependency declaration in the bonita-runtime-bom, the following dependency must be explicitly added to the project extensions:

Group Id: org.apache.xmlbeans
Artifact Id: xmlbeans
Version: 3.0.1

This should not be required after 2021.2-u1