Camunda Platform 7 Documentation

repository·master·Indexed 26 days ago

https://github.com/camunda/camunda-bpm-platform

An 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.

Tokens
19.1K
Snippets
60
Records
126
Agent score
88%

What's inside Camunda Platform 7

  1. Overview of Camunda Platform 7

    master

    Camunda 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.

  2. Overview of camunda-commons-ui

    master

    The camunda-commons-ui package 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.

  3. Overview of Camunda Connect

    master

    Camunda 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:

    1. Generic system usage: Integration within the Camunda Platform process engine.
    2. 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.
  4. Overview of Camunda Webapp components

    master

    The 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.
  5. Overview of Camunda Spin

    master
    Camunda 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.
  6. Understand Camunda commons styling directory structure and conventions

    master

    The 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.
  7. Camunda Platform 7 Components

    master

    The 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.
  8. Structure of OpenAPI documentation templates

    master

    The 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 for parameter, property, requestBody, and response.
      • 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.ftl for PUT /process-instance/suspended).
  9. Use the Camunda External Task Client (Java) for remote Service Tasks

    master

    The 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.