Project structure
This page defines the elements used to compose a Bonita project.
Bonita project elements
Bonita projects are based on processes but also data, user interfaces, identity management and extensions.
Using all the concepts in a project allows to take the full advantage of the Bonita platform. However, it is not required to use all the concepts to create a valid Bonita project. |
Process Elements
Element | Description | Create/Provided | Tool | Alternative |
---|---|---|---|---|
BPMN diagram that describes your business processes |
Create |
Studio |
— |
|
Web interfaces to interact with processes (to instantiate a process and for human tasks) |
Create |
UI Builder or UI Designer |
Use BPM REST API |
|
Filters users that can access a human task in a process |
Some are provided in the Marketplace and you can create custom actor filters |
Studio or Dedicated SDK (custom actor filters) |
- |
|
Automate external services interaction from within processes. |
A dozen connectors are provided in the Marketplace and you can create custom connectors |
Studio or Dedicated SDK (custom connectors) |
- |
Data
Element | Description | Create/Provided | Tool | Alternative |
---|---|---|---|---|
Business Data Model (BDM) |
Structure of the business data used by your processes |
Create |
Studio |
External database w/ provided connector |
Identity Management
Element | Description | Create/Provided | Tool | Alternative |
---|---|---|---|---|
Organization (for "Actors" and "Profiles") |
The definition of the user base that will use the processes (includes users, roles and groups) |
Example provided/Create |
Studio/Admin Application/LDAP synchronizer(Enterprise Edition only) |
— |
Living Applications
Element | Description | Create/Provided | Tool | Alternative |
---|---|---|---|---|
Defines the living applications: group of pages with a specific theme for a given user profile |
Create |
Studio/Admin Application |
xml editor |
|
Web pages used within your applications |
Create |
UI Builder or UI Designer |
Front-end framework |
|
Used to define the main frame of an application. |
Provided |
UI Designer |
Front-end framework |
|
Defines the look and feel of your application |
A default theme is provided and you can create custom theme |
Studio or Dedicated SDK (custom theme) |
— |
The concepts of Application descriptors, Application pages, layouts and themes are only used by Application. A Bonita project without applications won’t use those concepts.
Extensions
Bonita project can be extended by creating custom components. These are called extensions.
Some extensions are used to add elements to those provided while others are used to enforce the Bonita platform possibilities.
Extensions can be developed outside the Studio with your favorite IDE.
Extension | When to use | Tool |
---|---|---|
When the provided connector do not cover your requirements |
||
When the provided actor filter do not cover your requirements |
||
Theme |
When the provided theme do not cover your requirements |
|
REST API Extension |
To interact with third party system outside processes, to make advanced BDM queries or API calls (read only) |
Dedicated SDK or in the Studio (when Business Data is manipulated) |
Bonita provided application |
Bonita Admin application and Bonita User Application are provided by Bonitasoft and can be added or removed from applications depending on their needs. |
Available in the extensions Marketplace |
Other dependencies
In addition to the above extensions, it is possible to add any kind of third party dependencies in the classpath of the project.
Those dependencies can be added to processes classpath. They are also added in the parent application classpath.[1] It is recommended to use them to add specific extension such as Event handlers, Platform commands, custom Web Servlets or Filters. Since 2023.2, servlets annotations are scanned at startup when found in the classpath.
Bonita Project Composition
Extensions are re-usable elements, they can be shared between projects. Extensions are added to Bonita projects as Maven dependencies.
In the Studio, extensions are managed in a dedicated view.
Even if it is possible to manually import extensions in Bonita Studio, it is highly recommended to publish your extensions on public or private maven repositories. Here is an example on how to deploy an extension on GitHub packages. |