Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 29 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,26 +104,43 @@ npx bpmnlint 'models/**/*.bpmn'
## Camunda engine rules

Deploying to a Camunda engine? Add its deployability layer (bundled — no separate install) to your
`extends`:
`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.

| Engine | Add to `extends` |
| ----------------- | --------------------------------------------- |
| Camunda 7 | `plugin:camunda-compat/camunda-platform-7-24` |
| Camunda 8 (Zeebe) | `plugin:camunda-compat/camunda-cloud-8-10` |
**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.

These rules read engine properties, so point bpmnlint at the matching moddle extension in your
`.bpmnlintrc`:
### Camunda 7

```jsonc
// .bpmnlintrc
{
"extends": ["bpmnlint:recommended", "plugin:camunda-compat/camunda-cloud-8-10"],
"moddleExtensions": { "zeebe": "zeebe-bpmn-moddle/resources/zeebe.json" },
"extends": [
"bpmnlint:recommended",
"plugin:@miragon/rules/recommended-for-automation",
"plugin:camunda-compat/camunda-platform-7-24",
],
"moddleExtensions": { "camunda": "camunda-bpmn-moddle/resources/camunda.json" },
}
```

For Camunda 7, use `"camunda": "camunda-bpmn-moddle/resources/camunda.json"`. Prefer to skip the
wiring? The programmatic `getDefaultLintConfig({ engine })` below sets up both the layer and its
moddle extension for you.
### Camunda 8 (Zeebe)

```jsonc
// .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" },
}
```

## Programmatic use

Expand Down