Camunda Modeler for development

Hi there,

many of you probably know about tools like Puppeteer or Maven/Gradle Wrapper implementations. These aim to make repositories as self-containing as possible reducing the need for externally configured software. It is a breeze, when you can checkout some project run mvn install or whatever technology is used and you are ready to go.

So, what is the current state, when it comes to working with the Camunda Modeler. You might say, you have installed that one, just while reading this article, but in reality there is more than just that. In some projects there might be additional plugins required e. g. for special linting rules. Further, if you start developing an extension for the modeler or modifying some element template, best would be to symlink the project that your Camunda Modeler installation to have short circuits between development and local testing.

To tackle these inconveniences I started a project “Camunda Modeler Provisioner”.

My vision is to provide an automated way of installation and configuration trough IDE or CLI to help in a multitude of use cases. No matter if you try to reproduce a bug, test your changes to a modeler extension, test your changes to element templates or modify bpmn files in your current project this tool should be your choice!

To me, it should be as straight forwards as having some config file and run install as we are used to.

For plugin development you might have one like this:

  "version": "v5.15.0",
  "installationPath": "./camunda-modeler",
  "linkedPlugins": ["."]

or for template development

  "version": "v5.15.0",
  "installationPath": "./camunda-modeler",
  "linkedTemplates": ["./templates/my_first_template.json"]

followed by a one-liner to finish setup:

npx camunda-modeler-provisioner install

At this point you have a configured Camunda Modeler to start developing, that can be started as you are used to or with another command:

npx camunda-modeler-provisioner launch

This project is available as npm package and its source code can be accessed here:

I am curious what you think on this! I might even aggree partially if you say that it has been a waste of time for these little-looking manual steps, but still for me it was quite some adventure getting into npm scripts, publishing and trying out Github Actions. If you have any ideas, feedback, improvements message me directly or open an issue in the linked repo!

Kind regards