How miragon/bpmn-modeler works
BPMN Modeler is a monorepo product for editing BPMN, DMN, and Camunda Forms within developer tools. The main workflow is opening a model in an IDE editor, editing it in an embedded webview backed by shared modeler services, then saving it with the IDE. Other major capabilities include engine-aware modeling, templates, visual diff, deployment and instance start, scripting, and code navigation. The README documents both VS Code and a Theia/Electron desktop surface; sampled source confirms some supporting internals, but not every feature’s wiring.
Main entry points: src/main.ts VS Code extension · index.ts Modeler services · DeploymentService.ts Deployment services · src/main.ts BPMN webview
Components 22
Editor surfaces
- VS Code extension
apps/vscode-plugin/src/main.ts - IntelliJ plugin
apps/intellij-plugin/src/main/kotlin/io/miragon/intellij/bpmn/CoreProcess.kt - Theia desktop
apps/standalone - BPMN webview
apps/bpmn-webview/src/main.ts - DMN webview
apps/dmn-webview/src/main.ts - Form webview
apps/form-webview/src/app/FormEditorApp.ts - Deployment panel
apps/deployment-webview/src/main.ts
Modeling core
- Modeler services
libs/modeler-core/src/index.ts - BPMN modeling
libs/modeler-core/src/modeler/bpmn/service/BpmnModelerService.ts - DMN modeling
libs/modeler-core/src/modeler/dmn/service/DmnModelerService.ts - Engine metadata
libs/modeler-types/src/engine.ts
Process workflows
- Visual diff
libs/modeler-core/src/diff/service/BpmnDiffService.ts - Element templates
libs/modeler-core/src/modeler/bpmn/service/BpmnElementTemplatesService.ts - Auto layout
libs/bpmn-layout/src/engine/autoLayoutEngine.ts - Deployment services
libs/modeler-core/src/deployment/service/DeploymentService.ts - Engine router
libs/modeler-core/src/deployment/infrastructure/camunda/CamundaEngineRouter.ts
IDE integrations
- Modeler bridge
apps/modeler-bridge/src/server.ts - Script editing
libs/inline-scripting/src/index.ts - Code navigation
libs/code-link/src/index.ts
Other components
- Model author
- Camunda 7
- Camunda 8
Connections 27
- Model author → VS Code extension: opens model
- VS Code extension → BPMN webview: opens editor
- VS Code extension → DMN webview: opens editor
- VS Code extension → Form webview: opens editor
- BPMN webview → Modeler services: uses services
- DMN webview → Modeler services: uses services
- Form webview → Modeler services: uses services
- Modeler services → BPMN modeling: provides modeling
- Modeler services → DMN modeling: provides modeling
- BPMN modeling → Engine metadata: uses engine metadata
- VS Code extension → Visual diff: opens visual compare
- VS Code extension → Element templates: loads templates
- VS Code extension → Auto layout: offers layout
- VS Code extension → Deployment panel: opens deployment
- Deployment panel → Deployment services: requests deployment
- Deployment services → Engine router: dispatches request
- Engine router → Camunda 7: routes C7 calls
- Engine router → Camunda 8: routes C8 calls
- Deployment services → Camunda 7: starts instance
- Deployment services → Camunda 8: starts instance
- IntelliJ plugin → Modeler bridge: sends RPC
- Modeler bridge → Modeler services: uses shared core
- IntelliJ plugin → BPMN webview: hosts editor
- IntelliJ plugin → Deployment panel: hosts deployment
- Theia desktop → BPMN webview: hosts modeling surface
- VS Code extension → Script editing: supports script editing
- VS Code extension → Code navigation: supports code navigation