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 legacy connector provides compatibility with the previous implementation zeebe-script-worker
.
The context does not offer access to
job
orzeebeClient
anymore.
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
The connector provides an element template that can be used to configure it.
Available script languages are by default:
- javascript (GraalVM JS)
- 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.
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 setting the environment property ZEEBE_CLIENT_BROKER_GATEWAY-ADDRESS
(default: localhost:26500
)
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 [email protected].