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.

bonita project elements

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

Diagrams

BPMN diagram that describes your business processes

Create

Studio

 — 

Forms

Web interfaces to interact with processes (to instantiate a process and for human tasks)

Create

UI Designer

Use BPM REST API

Actor filter

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)

-

Connector

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

Application descriptor

Defines the living applications: group of pages with a specific theme for a given user profile

Create

Studio/Admin Application

xml editor

Application pages

Web pages used within your applications

Create

UI Designer

Front-end framework

Layout

Used to define the main frame of an application.

Provided

UI Designer

Front-end framework

Theme

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

Connector

When the provided connector do not cover your requirements

Dedicated SDK

Actor Filter

When the provided actor filter do not cover your requirements

Dedicated SDK

Theme

When the provided theme do not cover your requirements

Dedicated SDK

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.


1. Not available when using the deprecated platform mode.