Camunda Platform 7 Documentation
repository·master·Indexed 26 days ago
https://github.com/camunda/camunda-bpm-platformAn open-source BPMN 2.0 process engine and automation framework for Java applications. This documentation covers the Camunda External Task Client, DMN engine standalone usage and BPMN integration, Camunda Connect for HTTP/SOAP services, and the structured logging framework. It also includes details on Maven dependencies via camunda-commons-bom, REST API Jakarta testing, and OpenAPI specification generation.
What's inside Camunda Platform 7
- The Scala FEEL Engine is an integration of the Scala FEEL Engine designed specifically for use with the Camunda DMN Engine. It provides the logic for evaluating FEEL (Friendly Enough Expression Language) expressions within the Camunda DMN environment.
Overview of Camunda Platform 7
masterCamunda Platform 7 is a flexible framework for workflow and process automation. It features a native BPMN 2.0 process engine that runs within the Java Virtual Machine (JVM). The platform is designed to be highly integrable and embeddable, allowing it to run inside Java applications, Runtime Containers, Java EE 6 environments, or the Spring Framework.
Note on Lifecycle: Camunda 7 Community Edition (CE) is End of Life (EoL). The Enterprise Edition is in long-term support (maintenance and security fixes only). Camunda 8 is the official successor to Camunda 7.
Overview of camunda-commons-ui
masterThe
camunda-commons-uipackage provides common frontend and UI resources, widgets, and libraries used by the Camunda web application. It includes authentication mechanisms, utilities, directives, pages, charts, plugins, search capabilities, and translation locales.Warning: This project is used internally, and its component APIs are subject to change without notice.
Overview of Camunda Connect
masterCamunda Connect provides a simple API for connecting the Camunda Platform to external HTTP services and other external systems. It is designed for two primary scenarios:
- Generic system usage: Integration within the Camunda Platform process engine.
- Standalone usage: Direct interaction via the API.
Available built-in connectors include:
- HTTP Connector: Uses Apache HttpClient 5.x.
- SOAP HTTP Connector: Uses Apache HttpClient 5.x.
Overview of Camunda Webapp components
masterThe Camunda Webapp consists of three primary user interfaces and two core libraries:
Web Applications
- cockpit: Administration interface for processes and decisions.
- tasklist: Interface for managing process user tasks.
- admin: Interface for managing users, groups, and authorizations.
Core Libraries
- camunda-bpm-sdk-js: Tools for interacting with the platform's REST API and forms via JavaScript.
- camunda-commons-ui: Shared scripts, templates, assets, and AngularJS modules used across all webapps.
Overview of Camunda Spin
masterCamunda Spin is a library designed for simple XML and JSON processing on the JVM. It targets Java and JVM-based scripting languages such as Groovy, JRuby, Jython, Javascript, and Java Expression Language. Spin is particularly useful for working with complex, text-based data formats without the need to map them to formal Java Objects, providing a fluent API through lightweight wrapper objects.Understand Camunda commons styling directory structure and conventions
masterThe Camunda commons styling package is organized into specific sub-folders and follows a naming convention for Less files:
Directory Structure
sites: Contains styles specifically defined for sites such as documentation, blogs, or presence.shared: Contains files that may be relevant for web applications or websites but are not imported by default.
File Naming Convention
- Files starting with an underscore (e.g.,
_filename.less) are intended to provide variables or mixins only. Importing these files will not produce any CSS output on its own.
Use the camunda-xml-model API
masterThecamunda-xml-modelis a Java-based API designed for working with XML models. It provides a programmatic way to interact with and manipulate XML structures specifically related to Camunda models.Camunda Platform 7 Components
masterThe platform provides components categorized by the BPM lifecycle:
Process Implementation and Execution
- Camunda Engine: The core component for executing BPMN 2.0 processes.
- REST API: Provides remote access to running processes.
- Spring, CDI Integration: Programming model integration for Java applications to interact with processes.
Process Design
- Camunda Modeler: A standalone desktop application for designing and configuring processes.
Process Operations
- Camunda Engine: Provides JMX and advanced Runtime Container Integration for monitoring.
- Camunda Cockpit: Web application for process operations.
- Camunda Admin: Web application for managing users, groups, and access permissions.
Human Task Management
- Camunda Tasklist: Web application for managing and completing user tasks.
Toolkits and Extensions
- bpmn.io: JavaScript toolkits for BPMN, CMMN, and DMN rendering and modeling.
- Community Extensions: Open-source extensions maintained by the community.
Use the Camunda BPMN Model API
masterThe Camunda BPMN model API is a lightweight Java library for parsing, creating, and editing BPMN 2.0 XML files. It can be used as a standalone library independently of the Camunda Platform or process engine. It requires Java JRE 1.8 or higher.Structure of OpenAPI documentation templates
masterThe OpenAPI documentation for the Camunda REST API is generated using Freemarker templates. The project follows a specific directory structure to resolve models and paths:
main.ftl: Contains general OpenAPI info (version, servers, tags) and wraps up paths and components.lib/: Contains reusable macros and common templates.utils.ftl: Core macros forparameter,property,requestBody, andresponse.commons/: Reusable templates for pagination, sorting, and specific query parameters.
models/: Contains DTO (Data Transfer Object) templates. The folder structure should mirror the Java package structure (e.g.,models/org/camunda/bpm/engine/rest/dto/...).paths/: Contains endpoint definitions. The folder structure must mirror the REST API path (e.g.,paths/process-instance/suspended/put.ftlforPUT /process-instance/suspended).
Use the Camunda External Task Client (Java) for remote Service Tasks
masterThe Camunda External Task Client (Java) allows you to implement remote Service Tasks for your workflows. Key capabilities include:
- Completing External Tasks.
- Extending the lock duration of External Tasks.
- Unlocking External Tasks.
- Reporting BPMN errors and failures.
- Sharing primitive and object-typed process variables with the Workflow Engine.
Note: If you are using Spring Boot, use the Spring Boot External Task Client instead of this standalone Java client.