Skip to content

camunda-community-hub/node-red-contrib-zeebe

Repository files navigation

node-red-contrib-zeebe

Compatible with: Camunda Platform 8

npm

This module leverages the zeebe-node client library to bring Zeebe awesomeness to Node-RED!

Please upgrade node-red-contrib-zeebe to v0.7+ for Zeebe v1.0 or current Camunda Platform 8 support! Zeebe versions prior to v1.0 are not supported anymore.

Learn more about how these nodes can be used from basic example flows.

worker / complete

task-worker and complete node

Creates a task worker and subscribes to specific tasks/jobs. The worker node outputs a Node-RED message for each newly received task/job. When a Node-RED message is received at the complete nodes's input, that task/job gets completed in Zeebe (with either success, failure or error).

Please note: These nodes only work in combination. Make sure, the complete object from the worker node output payload gets injected into the input of the complete node.

See example flow.

message

publish-message node

This node publishes a message to Zeebe, when a Node-RED message is received at the input.

The message must contain a name and a correlation key. Optionally you can pass in variables and configuration options like timeToLive.

See example flow.

start message

publish-start-message node

This node publishes a start message to Zeebe, when a Node-RED message is received at the input.

The message must contain a name, no correlation key needed. Optionally you can pass in variables and configuration options like timeToLive.

See example flow.

process

deploy node

Inject a bpmn process definition string to the input of this node to deploy it to Zeebe.

You can use the 'file in' node from Node-RED to read a bpmn file from disk, or get the process definition from anywhere you want.

See example flow.

process instance

workflow-instance node

A new process instance gets started in Zeebe, when a Node-RED message is received at the input.

Once the process instance has been created, the output sends a Node-RED message containing some meta-info, i.e. the processInstanceKey.

See example flow.

Developing

To test these nodes locally in node-red, the npm install <folder> command can be used. This allows you to develop the node in a local directory and have it linked into a local node-red install during development.

In your node-red user directory, typically ~/.node-red, run:

npm install <path to location of node-red-contrib-zeebe>

This creates the appropriate symbolic link to the directory so that Node-RED will discover the node when it starts. Any changes to the node’s file can be picked up by simply restarting Node-RED.

Tests

Tests are written in Jest, and live in the __tests__ directory. To run the unit tests:

npm test

Integration tests are in the __tests__/integration.js file.

They require a Zeebe broker to run. You can start a dockerised broker:

cd resources/travis/
docker-compose up

And then run them manually:

npm run test:integration

Contributions

Contributions are always welcome! There are some open issues.