Camunda 7 / 8 engines
A model can pass every structural check and still fail at deploy, because the engine needs properties plain BPMN does not know. The Camunda 7 and Camunda 8 deployability rules are bundled, so there is nothing extra to install.
What it looks like
The first run lints a Camunda 8 service task without a task definition. The second run lints the same model after adding zeebe:taskDefinition. Both outputs come from the bundled rules at build time.
$ npx bpmnlint order.bpmn
order.bpmn
- serviceTask_reviewOrdererrorcamunda-compat/implementation
FAILED1 problem (1 error, 0 warnings)
$ npx bpmnlint order.bpmn
PASSED no findings
Switch it on
Deploying to a Camunda engine? Add its deployability layer (bundled — no separate install) to your extends. These rules read engine-specific properties, so bpmnlint must also parse them with the matching moddle extension — pick the config for your engine below.
The moddleExtensions line is not optional. Without it the parser doesn't recognize the engine namespace, so those properties are invisible to the rules — they then report false findings (for example a service task flagged as missing its task definition even though it has one). A modeler loads the moddle already; it's the bare npx bpmnlint CLI that needs this line. Prefer to skip the wiring? The programmatic getDefaultLintConfig({ engine }) below sets up both the layer and its moddle extension for you.
Camunda 7
// .bpmnlintrc
{
"extends": [
"bpmnlint:recommended",
"plugin:@miragon/rules/recommended-for-automation",
"plugin:camunda-compat/camunda-platform-7-24",
],
"moddleExtensions": {
"camunda": "camunda-bpmn-moddle/resources/camunda.json",
},
}Camunda 8 (Zeebe)
// .bpmnlintrc
{
"extends": [
"bpmnlint:recommended",
"plugin:@miragon/rules/recommended-for-automation",
"plugin:camunda-compat/camunda-cloud-8-10",
],
"moddleExtensions": {
"zeebe": "zeebe-bpmn-moddle/resources/zeebe.json",
},
}