This project is made to provide an example of custom operation tools based on bpmn-js, Operate APIs (Enterprise grade feature) and Zeebe client. The idea is to evaluate complexity to build custom solution on top of Operate when Operate doesn't fit completly.
This example show how a customer could build a 4-eyes principle mechanism where a user request process modifications (state, variables) and another user has to validate the request before it's applied in Zeebe's engine.
ℹ️ This is a community project that you can use during exploration phase, PoCs, trainings, etc. It's not production ready and you should carefully review it before using it in production.
This repository contains a Java application built with Spring Boot and Zeebe Spring client to act as a connector runtime for Camunda Platform 8.
It also contains a React front-end that you can execute independently (npm run start) or serve from the spring boot application (you should first run a mvnw package
at the project root).
The application requires a running Zeebe engine (SaaS or Self Managed). You can run Zeebe locally using the instructions : recommended deployment options for Camunda Platform.
Run the application via
./mvnw spring-boot:run
UI http://localhost:8080/ Swagger UI: http://localhost:8080/swagger-ui.html
The first time you use the project, you should be able to connect with demo/demo to do all operations.
When you start the application for the first time, an "ACME" organization is created for you with a single user demo/demo with all rights. Roles are the followings :
- viewVariables : can view process variables
- modifVariables : only available if you have viewVariables. Allow to modify variables
- modifState : can terminate/activate instance flownodes
- approveModif : can approve other user requests
- autoApproveModif : depends on approveModif. Can approve his own requests
You can create other users with a subset of these permissions to have different behaviours.
If you want to secure your app with keycloak, you can set the keycloak.enabled to true and uncomment the properties in the application.yaml file.
keycloak:
enabled: true
auth-server-url: http://localhost:18080/auth
realm: camunda-platform
resource: CustomOperate
public-client: true
principal-attribute: preferred_username
ℹ️ To use the application with Keycloak, create the CustomOperate client and roles listed above and assign them to (at least) one user.
docker build -t camunda-community/custom-operate .
docker run -p 8888:8080 camunda-community/custom-operate
The current result was developped in 18 hours.