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.

Bonita 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 what it looks like after conversion:

Converted Application
Figure 3. 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

Extension creation

You can no longer create custom connectors, Groovy scripts, themes and actors filters in the Studio. These need to be coded outside the Studio as Maven dependencies (see our Maven archetypes)

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 update Bonita from an earlier version, you can now delete them if you do not use them (previously, they could not be deleted).

Bug fixes

Fixes in Bonita 2021.2-u6 (2022-09-21)

Fixes in Bonita Runtime (including Bonita Applications)

  • RUNTIME-211 - Fix Access to a non existing token in an app raise a 403 instead of a 404

  • RUNTIME-869 - Fix Administrator app - BPM process: The 2 Pop-ups to Disable and Enable installed process do not close

  • RUNTIME-978 - Fix Organization import does not update 'lastUpdate' field in user entries

  • RUNTIME-1408 - Fix slow REST API extension requests due to a java sycnhronized block

  • RUNTIME-1412 - [Security] Update several dependencies for 2021.2-u6 (7.13.6)

Fixes in Bonita 2021.2-u5 (2022-07-25)

Fixes in Bonita Studio (including Bonita UI Designer)

  • STUDIO-4056 Unable to launch Studio when the installation folder contains a hash (#)

  • STUDIO-4170 Groovy script contract input dependencies not automatically updated if contract input is changed from single to multiple (or viceversa)

  • STUDIO-4263 Java Doc not shown in the groovy Script when mouseOver

  • STUDIO-4275 Messaging: multi environment isn’t enterprise anymore

  • STUDIO-4281 [Concurrency] Classloader issues with bonita project plugin execution

  • STUDIO-4367 Cannot add a Maven dependency with classifier via Overview → Extensions → …​

  • STUDIO-4386 SAP connector wizard: the Test connection button does not work

Fixes in Bonita Runtime (including Bonita Applications)

  • RUNTIME-881 Case visualization is not showing the trace in Archive cases

  • RUNTIME-888 Application directory is not translated in French

  • RUNTIME-956 [Security] Update several dependencies

  • RUNTIME-1011 ProcessId parameter in URL is not taken into account in admin case list

  • RUNTIME-1156 BConf file deployment is broken for non-existing processes

  • RUNTIME-1220 Admin case list doesn’t have 'case_delete' permissions

  • RUNTIME-1275 Bonita-sp- maven-repository 7.13.x contains extra files

  • RUNTIME-1296 Missing REST API static permissions

  • RUNTIME-1302 IllegalStateException is generated during the connect() method call of the SAP connector

Fixes in Bonita 2021.2-u4 (2022-03-03)

Fixes in Bonita Studio (including Bonita UI Designer)

  • STUDIO-4217 Empty error dialog when deleting a connector

  • STUDIO-4227 On exit, clean database checkbox has no effect when the runtime is not started

  • STUDIO-4262 Project overview editor in error when opening the Studio adfter a crash

  • STUDIO-4268 Dependency with invalid pom corrupts the project

  • UID-613 log4j version update

Fixes in Bonita Runtime (including Bonita Applications)

  • RUNTIME-885 [Security] Issue with authorization mechanism

  • RUNTIME-918 Change engine datasources configuration to put back removeAbandonned

  • RUNTIME-919 XStream version update

Fixes in Bonita 2021.2-u3 (2022-02-02)

Fixes in Bonita Studio (including Bonita UI Designer)

  • STUDIO-4235 - [Proxy][BDM] Impossible to create a contract from a business variable

  • STUDIO-4251 - Applications and REST api menus are not disabled when they should be

Fixes in Bonita Runtime (including Bonita Applications)

  • RUNTIME-717 - "404 error page" makes the 404 response code being lost causing the original URL not to be preserved in the HTTP session

  • RUNTIME-786 - Automatic redirection to standard error page causes the loss of the x-bonita-api-token request header

  • RUNTIME-842 - 8 times more SQL queries generated with 7.13.x than the 7.11.x

  • RUNTIME-302 - Retry mechanism vs congestion situations

Fixes in Bonita 2021.2-u2 (2022-01-19)

Fixes in Bonita Studio (including Bonita UI Designer)

  • STUDIO-4141 - Error while importing .bos file off-line if dependencies not already present in local Maven repository

  • STUDIO-4149 - When importing old version projects from GIT and SVN, the Studio does not detect unnecessary dependency libraries

  • STUDIO-4191 - When importing extension from a jar/zip file, version is read from filename and not from pom.xml

  • STUDIO-4219 - Can’t remove servlet api in a 2021.2-u2 migrated project

  • STUDIO-4221 - Stack trace and diagram not displayed when reopening studio

  • STUDIO-4223 - Unexpected error when updating connector version from SNAPSHOT to final release

  • STUDIO-4228 - Missing Pool—​1.0.bar/resources/process.bpmn file when bar file generated with Project Explorer - RightClick - Build

  • STUDIO-4230 - NPE in Project explorer and lib folder

  • UID-589 - BDR: Redirect the UID parsing errors to the Studio log file

  • UID-596 - BDR: Error in GraphQL parsing should not prevent to use UID data management

  • UID-616 - BDR : GraphQL schema generation issue with custom queries

  • UID-617 - BDM is deployed according to the Studio but UID cannot access it

Fixes in Bonita Runtime (including Bonita Applications)

  • RUNTIME-292 - CleanInvalidSessions concurrency issue

  • RUNTIME-495 - Make datasource configuration robust to network idle connection closure

  • RUNTIME-590 - Method onPrepareStatement not called in 2021.1 and 2021.2 with postgres breaks the search case insensitivity

  • RUNTIME-675 - [Organization][ImportPolicy] IGNORE_DUPLICATES update manager relationship

  • RUNTIME-693 - Remove unused gson dependency to fix security issue

Fixes in Bonita 2021.2-u1 (2021-11-26)

Fixes in Bonita Studio (including Bonita UI Designer)

  • STUDIO-4118 - Projects are lost by the studio whereas there are on the disk

  • STUDIO-4122 - Documentation generation fails with decision table

  • STUDIO-4135 - Import .bos is broken if project name contains accents or quotes

  • STUDIO-4148 - Missing DAO and new Object created in the BDM: Expression Editor is not up-to-date

  • STUDIO-4156 - "Initializing portal…​" in a window when the user clicks on Applications in the Studio

  • STUDIO-4158 - Deadlock while building process with LA build command

  • STUDIO-4159 - Invalid Search key reference in operations

  • STUDIO-4169 - Maven .zip dependencies cannot be retrieved from Bonita Studio (REST API extensions, themes)

  • STUDIO-4180 - Updating an extension fails because an optional value is not present

  • STUDIO-4188 - Switching to a Bonita project is not possible after renaming it

Fixes in Bonita Runtime (including Bonita Applications)

  • RUNTIME-472 - Loging out of the Super Administration application and in with another credentials gives a 403 error

  • RUNTIME-473 - generateRequestKey script and Bonita Tomcat do not use the same 'java' binary

  • RUNTIME-518 - REST API caseVariable returns a 500 error message when p is greater than the number of results in the database

  • RUNTIME-527 - Case details and Task details do not display 'displayDescription'

  • RUNTIME-537 - Execute the task on behalf of someone from the new Admin Task Details does not set the executedBySubstitute

  • RUNTIME-541 - Process instances started on someone’s behalf are not displayed as such in the Case Details page

  • RUNTIME-542 - It is not possible to add a comment when you execute a task with no form on someone else’s behalf

  • RUNTIME-563 - The case comments in the task details disappear after a task is completed

  • RUNTIME-586 - CORS requests do not work with OpenID Connect for preflight requests

  • RUNTIME-593 - Several third party libraries dependency issues

  • RUNTIME-597 - The redirect mechanism on REST API extension response sends to the html page response of custom pages

Fixes in Bonita 2021.2 (2021-09-23)

For the users of Bonita Community edition, Bonita 2021.2 also comes with all the bug fixes released in the Maintenance versions of Bonita 2021.1.
You can access the list by checking Bonita 2021.1 release notes, in the "Bug fixes" section.

Fixes in Bonita Studio (including Bonita UI Designer)

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

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

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

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

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

  • STUDIO-3953 - LA Builder is slow

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

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

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

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

  • STUDIO-4113 - Process Validation freezes after process import

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

  • 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-23 - Installing BDM with a wrong custom query corrupts the BDM database without any rollback option

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

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

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

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

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

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

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

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

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

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

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

Use a Target runtime version greater or equal to 7.13.1 to fix the issue.