This is a community project that provides a connector. It is not officially supported by Camunda. Everybody is invited to contribute! A connector to evaluate scripts (i.e. script tasks) that are not written in FEEL. Scripts are useful for prototyping, to do (simple) calculations, or creating/modifying variables.
The connector provides an element template that can be used to configure it.
Available script languages are by default:
- javascript (GraalVM JS) [Note: Consider using the Camunda 8 JavaScript SDK for Node.js instead.]
- groovy
- mustache
- kotlin
To register new script languages, you can use the ScriptEngineFactory to register any JSR-223 compliant script engine.
If you want to provide a non-compliant implementation, you can use the ScriptEvaluatorExtension SPI.
To register custom file extensions, you can use the LanguageProviderExtension SPI.
The legacy implementation is still in place to support older implementations. Please use the new connector!
The legacy connector provides compatibility with the previous implementation zeebe-script-worker.
The context does not offer access to
joborzeebeClientanymore.
Example BPMN with service task:
<bpmn:serviceTask id="scripting" name="Evaluate the Script">
<bpmn:extensionElements>
<zeebe:taskDefinition type="script" />
<zeebe:taskHeaders>
<zeebe:header key="language" value="javascript" />
<zeebe:header key="script" value="a + b" />
<zeebe:header key="resultVariable" value="result" />
</zeebe:taskHeaders>
</bpmn:extensionElements>
</bpmn:serviceTask>- the worker is registered for the type
script - required custom headers:
language- the name of the script languagescript- the script to evaluateresultVariable- the result of the evaluation is passed to this variable
For a local setup, the repository contains a docker-compose file. It starts a Zeebe broker and both (standalone and bundled) containers.
mvn clean package
cd docker
docker-compose up
The docker image for the connector runtime is published as GitHub package.
docker pull ghcr.io/camunda-community-hub/script-connector/runtime:latest
Configure the connection to the Zeebe broker by following the official documentation of the camunda spring boot starter.
The docker-compose file shows an example how this works.
To run the connector inside the bundle, you can use the shaded jar.
The docker-compose file shows an example how this works.
- Download the runtime jar
script-connector-runtime-{VERSION}.jar - Start the connector runtime
java -jar script-connector-runtime-{VERSION}.jar
- Download the shaded connector jar
script-connector-{VERSION}-shaded.jar - Copy it to your connector runtime.
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to code-of-conduct@zeebe.io.