bpmnlint-plugin-camunda-compat

July 29, 2026 ยท View on GitHub

CI

A bpmnlint plug-in that checks whether a given BPMN process can be executed with Camunda.

Installation

To use the plug-in, ensure it is installed is installed in your project, alongside bpmnlint:

npm install -D bpmnlint bpmnlint-plugin-camunda-compat

Usage

Add configuration corresponding to your execution platform and version to your .bpmnlintrc configuration:

{
  "extends": [
    "bpmnlint:recommended",
    "plugin:camunda-compat/camunda-cloud-8-0"
  ],
  "rules": {
    "camunda-compat/called-element": "off",

    // some rules require a config with version to be provided
    "camunda-compat/timer": ["warn", { "version": "8.0" }]
  }
}

Warning

BPMN diagrams validated must be parsed with the respective Camunda 7 or Camunda 8 moddle extension.

See also command line use.

Dynamic Linter Configuration

Use @camunda/linting to configure the linter dynamically based on the execution platform and version.

Command Line Use

When using bpmnlint via the command line, ensure it picks up the respective Camunda 7 or Camunda 8 moddle extension.

For Camunda 8, install the zeebe-bpmn-moddle extension:

npm install bpmnlint zeebe-bpmn-moddle bpmnlint-plugin-camunda-compat

Extend your configuration so bpmnlint picks-up the extension when parsing a BPMN diagram:

--- .bpmnlintrc
+++ .bpmnlintrc
@@ -1,9 +1,12 @@
 {
   "extends": [
     "bpmnlint:recommended",
     "plugin:camunda-compat/camunda-cloud-8-7"
   ],
   "rules": {
     "camunda-compat/timer": "off"
+  },
+  "moddleExtensions": {
+    "zeebe": "zeebe-bpmn-moddle/resources/zeebe.json"
   }
 }

Invoke bpmnlint from your command line in the usual ways:

npx bpmnlint my-diagram.bpmn

Resources

License

MIT