Release notes
The 2025.1 version is in development. |
New available values
Enhanced Log Tracing and Filtering
Log tracing and filtering in Bonita have been enhanced using MDC (Mapped Diagnostic Context) to add contextual information across all scopes. This improvement ensures higher-quality, more readable logs and simplifies integration with third-party monitoring tools, helping customers troubleshoot issues and monitor performance more effectively.
This extra information also means more volume for logs. |
You can see the logging configuration for more details.
Notable changes
Update tool script has been renamed
To simplify and rationalize the naming of the scripts, the update tool script has been renamed.
The formerly named bonita-update-tool(.bat)
script has been renamed to bonita-update(.bat)
.
Moreover, the Subscription version of the script is also named bonita-update(.bat)
. (there is no -sp
suffix anymore)
Setup Tool (aka Platform Setup) file structure has been simplified
The setup tool file structure has been simplified to better fit the multitenancy removal.
For those who were used to fetch their configuration files under platform_conf/current/tenants/<TENANT_ID>/tenant_engine
, for instance, the path is now platform_conf/current/tenant_engine
. All the documentation has been updated accordingly.
For the curious ones, here is the full comparison:
Up to 2024.3 (10.2)
Content of the setup/
folder:
platform_conf
├── current
│ ├── platform_engine
│ │ ├── bonita-platform-community-custom.properties
│ │ ├── bonita-platform-custom.xml
│ │ ├── bonita-platform-sp-cluster-custom.properties
│ │ ├── bonita-platform-sp-custom.properties
│ │ ├── bonita-platform-sp-custom.xml
│ │ └── hazelcast.xml
│ ├── platform_portal
│ │ ├── cache-config.xml
│ │ ├── platform-tenant-config.properties
│ │ └── security-config.properties
│ ├── tenants
│ │ └── 1
│ │ ├── tenant_engine
│ │ │ ├── bonita-tenant-community-custom.properties
│ │ │ ├── bonita-tenants-custom.xml
│ │ │ ├── bonita-tenant-sp-cluster-custom.properties
│ │ │ ├── bonita-tenant-sp-custom.properties
│ │ │ └── bonita-tenant-sp-custom.xml
│ │ ├── tenant_portal
│ │ │ ├── authenticationManager-config.properties
│ │ │ ├── compound-permissions-mapping-custom.properties
│ │ │ ├── compound-permissions-mapping-internal.properties
│ │ │ ├── compound-permissions-mapping.properties
│ │ │ ├── console-config.properties
│ │ │ ├── custom-permissions-mapping.properties
│ │ │ ├── dynamic-permissions-checks-custom.properties
│ │ │ ├── dynamic-permissions-checks.properties
│ │ │ ├── keycloak-oidc.json
│ │ │ ├── keycloak-saml.xml
│ │ │ ├── resources-permissions-mapping-custom.properties
│ │ │ ├── resources-permissions-mapping-internal.properties
│ │ │ ├── resources-permissions-mapping.properties
│ │ │ ├── security-config.properties
│ │ │ ├── spnego-config.properties
│ │ │ ├── user-creation-attribute-mapping-custom.properties
│ │ │ ├── user-creation-attribute-mapping.properties
│ │ │ ├── user-creation-group-mapping.properties
│ │ │ └── user-creation-group-profile-mapping.properties
│ │ └── tenant_security_scripts
│ │ └── SamplePermissionRule.groovy.sample
│ ├── tenant_template_engine
│ │ ├── bonita-tenant-community-custom.properties
│ │ ├── bonita-tenants-custom.xml
│ │ ├── bonita-tenant-sp-cluster-custom.properties
│ │ ├── bonita-tenant-sp-custom.properties
│ │ └── bonita-tenant-sp-custom.xml
│ ├── tenant_template_portal
│ │ ├── authenticationManager-config.properties
│ │ ├── compound-permissions-mapping-custom.properties
│ │ ├── compound-permissions-mapping-internal.properties
│ │ ├── compound-permissions-mapping.properties
│ │ ├── console-config.properties
│ │ ├── custom-permissions-mapping.properties
│ │ ├── dynamic-permissions-checks-custom.properties
│ │ ├── dynamic-permissions-checks.properties
│ │ ├── keycloak-oidc.json
│ │ ├── keycloak-saml.xml
│ │ ├── resources-permissions-mapping-custom.properties
│ │ ├── resources-permissions-mapping-internal.properties
│ │ ├── resources-permissions-mapping.properties
│ │ ├── security-config.properties
│ │ ├── spnego-config.properties
│ │ ├── user-creation-attribute-mapping-custom.properties
│ │ ├── user-creation-attribute-mapping.properties
│ │ ├── user-creation-group-mapping.properties
│ │ └── user-creation-group-profile-mapping.properties
│ └── tenant_template_security_scripts
│ └── SamplePermissionRule.groovy.sample
├── initial
│ ├── platform_engine
│ │ ├── bonita-platform-community-custom.properties
│ │ ├── bonita-platform-custom.xml
│ │ ├── bonita-platform-sp-cluster-custom.properties
│ │ ├── bonita-platform-sp-custom.properties
│ │ ├── bonita-platform-sp-custom.xml
│ │ └── hazelcast.xml
│ ├── PLATFORM_ENGINE_VERSION
│ ├── platform_portal
│ │ ├── cache-config.xml
│ │ ├── platform-tenant-config.properties
│ │ └── security-config.properties
│ ├── tenant_template_engine
│ │ ├── bonita-tenant-community-custom.properties
│ │ ├── bonita-tenants-custom.xml
│ │ ├── bonita-tenant-sp-cluster-custom.properties
│ │ ├── bonita-tenant-sp-custom.properties
│ │ └── bonita-tenant-sp-custom.xml
│ ├── tenant_template_portal
│ │ ├── authenticationManager-config.properties
│ │ ├── compound-permissions-mapping-custom.properties
│ │ ├── compound-permissions-mapping-internal.properties
│ │ ├── compound-permissions-mapping.properties
│ │ ├── console-config.properties
│ │ ├── custom-permissions-mapping.properties
│ │ ├── dynamic-permissions-checks-custom.properties
│ │ ├── dynamic-permissions-checks.properties
│ │ ├── keycloak-oidc.json
│ │ ├── keycloak-saml.xml
│ │ ├── resources-permissions-mapping-custom.properties
│ │ ├── resources-permissions-mapping-internal.properties
│ │ ├── resources-permissions-mapping.properties
│ │ ├── security-config.properties
│ │ ├── spnego-config.properties
│ │ ├── user-creation-attribute-mapping-custom.properties
│ │ ├── user-creation-attribute-mapping.properties
│ │ ├── user-creation-group-mapping.properties
│ │ └── user-creation-group-profile-mapping.properties
│ └── tenant_template_security_scripts
│ └── SamplePermissionRule.groovy.sample
├── licenses
│ └── team-license-21230624-10.2-003-enterprise.lic
└── sql
├── h2
│ ├── cleanTables.sql
│ ├── createQuartzTables.sql
│ ├── createTables.sql
│ ├── dropQuartzTables.sql
│ ├── dropTables.sql
│ ├── initTables.sql
│ ├── postCreateStructure.sql
│ └── preDropStructure.sql
├── mysql
│ ├── cleanTables.sql
│ ├── createQuartzTables.sql
│ ├── createTables.sql
│ ├── dropQuartzTables.sql
│ ├── dropTables.sql
│ ├── initTables.sql
│ ├── postCreateStructure.sql
│ └── preDropStructure.sql
├── oracle
│ ├── cleanTables.sql
│ ├── createQuartzTables.sql
│ ├── createTables.sql
│ ├── dropQuartzTables.sql
│ ├── dropTables.sql
│ ├── initTables.sql
│ ├── postCreateStructure.sql
│ └── preDropStructure.sql
├── postgres
│ ├── cleanTables.sql
│ ├── createQuartzTables.sql
│ ├── createTables.sql
│ ├── dropQuartzTables.sql
│ ├── dropTables.sql
│ ├── initTables.sql
│ ├── postCreateStructure.sql
│ └── preDropStructure.sql
└── sqlserver
├── cleanTables.sql
├── createQuartzTables.sql
├── createTables.sql
├── dropQuartzTables.sql
├── dropTables.sql
├── initTables.sql
├── postCreateStructure.sql
└── preDropStructure.sql
From 2025.1 (10.3) and above
Content of the setup/
folder:
platform_conf
├── current
│ ├── platform_engine
│ │ ├── bonita-platform-community-custom.properties
│ │ ├── bonita-platform-custom.xml
│ │ ├── bonita-platform-sp-cluster-custom.properties
│ │ ├── bonita-platform-sp-custom.properties
│ │ ├── bonita-platform-sp-custom.xml
│ │ └── hazelcast.xml
│ ├── platform_portal
│ │ ├── cache-config.xml
│ │ ├── platform-tenant-config.properties
│ │ └── security-config.properties
│ ├── tenant_engine
│ │ ├── bonita-tenant-community-custom.properties
│ │ ├── bonita-tenants-custom.xml
│ │ ├── bonita-tenant-sp-cluster-custom.properties
│ │ ├── bonita-tenant-sp-custom.properties
│ │ └── bonita-tenant-sp-custom.xml
│ ├── tenant_portal
│ │ ├── authenticationManager-config.properties
│ │ ├── compound-permissions-mapping-custom.properties
│ │ ├── compound-permissions-mapping-internal.properties
│ │ ├── compound-permissions-mapping.properties
│ │ ├── console-config.properties
│ │ ├── custom-permissions-mapping.properties
│ │ ├── dynamic-permissions-checks-custom.properties
│ │ ├── dynamic-permissions-checks.properties
│ │ ├── keycloak-oidc.json
│ │ ├── keycloak-saml.xml
│ │ ├── resources-permissions-mapping-custom.properties
│ │ ├── resources-permissions-mapping-internal.properties
│ │ ├── resources-permissions-mapping.properties
│ │ ├── security-config.properties
│ │ ├── spnego-config.properties
│ │ ├── user-creation-attribute-mapping-custom.properties
│ │ ├── user-creation-attribute-mapping.properties
│ │ ├── user-creation-group-mapping.properties
│ │ └── user-creation-group-profile-mapping.properties
│ └── tenant_security_scripts
│ └── SamplePermissionRule.groovy.sample
├── initial
│ ├── platform_engine
│ │ ├── bonita-platform-community-custom.properties
│ │ ├── bonita-platform-custom.xml
│ │ ├── bonita-platform-sp-cluster-custom.properties
│ │ ├── bonita-platform-sp-custom.properties
│ │ ├── bonita-platform-sp-custom.xml
│ │ └── hazelcast.xml
│ ├── PLATFORM_ENGINE_VERSION
│ ├── platform_portal
│ │ ├── cache-config.xml
│ │ ├── platform-tenant-config.properties
│ │ └── security-config.properties
│ ├── tenant_engine
│ │ ├── bonita-tenant-community-custom.properties
│ │ ├── bonita-tenants-custom.xml
│ │ ├── bonita-tenant-sp-cluster-custom.properties
│ │ ├── bonita-tenant-sp-custom.properties
│ │ └── bonita-tenant-sp-custom.xml
│ ├── tenant_portal
│ │ ├── authenticationManager-config.properties
│ │ ├── compound-permissions-mapping-custom.properties
│ │ ├── compound-permissions-mapping-internal.properties
│ │ ├── compound-permissions-mapping.properties
│ │ ├── console-config.properties
│ │ ├── custom-permissions-mapping.properties
│ │ ├── dynamic-permissions-checks-custom.properties
│ │ ├── dynamic-permissions-checks.properties
│ │ ├── keycloak-oidc.json
│ │ ├── keycloak-saml.xml
│ │ ├── resources-permissions-mapping-custom.properties
│ │ ├── resources-permissions-mapping-internal.properties
│ │ ├── resources-permissions-mapping.properties
│ │ ├── security-config.properties
│ │ ├── spnego-config.properties
│ │ ├── user-creation-attribute-mapping-custom.properties
│ │ ├── user-creation-attribute-mapping.properties
│ │ ├── user-creation-group-mapping.properties
│ │ └── user-creation-group-profile-mapping.properties
│ └── tenant_security_scripts
│ └── SamplePermissionRule.groovy.sample
├── licenses
│ └── team-license-21230624-10.2-003-enterprise.lic
└── sql
├── h2
│ ├── cleanTables.sql
│ ├── createQuartzTables.sql
│ ├── createTables.sql
│ ├── dropQuartzTables.sql
│ ├── dropTables.sql
│ ├── initTables.sql
│ └── preDropStructure.sql
├── mysql
│ ├── cleanTables.sql
│ ├── createQuartzTables.sql
│ ├── createTables.sql
│ ├── dropQuartzTables.sql
│ ├── dropTables.sql
│ ├── initTables.sql
│ └── preDropStructure.sql
├── oracle
│ ├── cleanTables.sql
│ ├── createQuartzTables.sql
│ ├── createTables.sql
│ ├── dropQuartzTables.sql
│ ├── dropTables.sql
│ ├── initTables.sql
│ └── preDropStructure.sql
├── postgres
│ ├── cleanTables.sql
│ ├── createQuartzTables.sql
│ ├── createTables.sql
│ ├── dropQuartzTables.sql
│ ├── dropTables.sql
│ ├── initTables.sql
│ └── preDropStructure.sql
└── sqlserver
├── cleanTables.sql
├── createQuartzTables.sql
├── createTables.sql
├── dropQuartzTables.sql
├── dropTables.sql
├── initTables.sql
└── preDropStructure.sql
If you’re starting Bonita with the Docker image and using custom scripts, please check the scripts to make sure they use the new file structure. The changes mainly involve removing |
Deprecations and removals
API deprecations
As part of the multi-tenancy remove, some APIs have been deprecated and will be removed in the future:
-
com.bonitasoft.engine.api.APIClient
-
getLoginAPI
-
2 login methods using a tenantId parameter
-
-
com.bonitasoft.engine.api.TenantAPIAccessor#getLoginAPI
API removals
Command API
Up to 2024.3, you could implement custom commands by inheriting either from the org.bonitasoft.engine.api.TenantCommand
interface or from the org.bonitasoft.engine.command.PlatformCommand
interface. With multitenancy removal, those two commands have been merged into org.bonitasoft.engine.command.RuntimeCommand
If you have not done it yet, recompile your custom commands by changing parent class to RuntimeCommand
, unregister the previous one and register the new one.
Platform API
The following deprecated methods have been removed:
-
com.bonitasoft.engine.api.PlatformAPI#updateTenant()
-
com.bonitasoft.engine.api.PlatformAPI#getDefaultTenantId()
REST API
Deprecated resource system/tenant
has been removed. You can use API system/maintenance instead to enable/disable maintenance mode.
EntityMember (aka. External Identity Mapping)
This concept has been completely removed because the associated feature was not used internally and was not documented.
It was used to map arbitrary external IDs to Bonita identity (user, group, role, membership).
Event keys EXTERNAL_IDENTITY_MAPPING_CREATED and EXTERNAL_IDENTITY_MAPPING_DELETED have been removed from the event API and cannot be listened to anymore.
Configuration changes
Ldap Synchronizer configuration
With the removal of the multi-tenancy feature, the configuration of the LDAP Synchronizer has been simplified.
The notable changes are:
-
in the
bonita.properties
configuration file, thetechnicalPassword
,technicalUser
andtenantId
properties are no longer used -
when using the Docker image, the
BONITA_PLATFORM_LOGIN
,BONITA_PLATFORM_PASSWORD
andBONITA_TENANT_ID
environment variables are no longer used
Bug fixes
Fixes in Bonita 2025.1 (! DATE TO ADD HERE !)
Fixes in Bonita Runtime (including Bonita Applications)
-
RUNTIME-28 - The deletion of a running process instance leaves lines in the DOCUMENT table.
Before this fix, when a process instance was deleted, the documents associated with it were not deleted. As a consequence, this behavior creates orphan documents that are unused and not linked to any other object. Note that it was not the case for archived process instances where documents were correctly deleted.
If you have a lot of orphan documents in your database, you can use the latest version of the Purge Tool to remove them.