All Projects → camunda-community-hub → zeebe-simple-tasklist

camunda-community-hub / zeebe-simple-tasklist

Licence: Apache-2.0 license
Zeebe worker to manage manual/user tasks

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to zeebe-simple-tasklist

Quintessential-Tasklist-Zeebe
The quintessential Zeebe tasklist for BPMN Human tasks with Drag and Drop Form builder, client and server side validations, and drop in Form Rendering
Stars: ✭ 34 (-32%)
Mutual labels:  zeebe, zeebe-worker
camunda-cloud-helm
Camunda Platform 8 Self-Managed Helm charts
Stars: ✭ 41 (-18%)
Mutual labels:  tasklist, zeebe
zeebe-script-worker
Zeebe worker for script evaluation
Stars: ✭ 17 (-66%)
Mutual labels:  zeebe, zeebe-worker
bpmn-spec
A tool to run tests for BPMN processes on Zeebe
Stars: ✭ 28 (-44%)
Mutual labels:  zeebe
ctodo
A simple ncurses-based tasklist manager
Stars: ✭ 31 (-38%)
Mutual labels:  tasklist
gtasks
A CLI client for Google Tasks, written in Go
Stars: ✭ 54 (+8%)
Mutual labels:  tasklist
outspline
Extensible outliner and personal time organizer to manage todo lists, schedule tasks, remind events.
Stars: ✭ 41 (-18%)
Mutual labels:  tasklist
zeebe-hazelcast-exporter
Export events from Zeebe to Hazelcast
Stars: ✭ 20 (-60%)
Mutual labels:  zeebe
workit
Extensible worker for Node.js that works with both Zeebe and Camunda BPM platforms powered by TypeScript
Stars: ✭ 51 (+2%)
Mutual labels:  zeebe
eze
Embedded Zeebe Engine
Stars: ✭ 13 (-74%)
Mutual labels:  zeebe
zeeqs
Query API for aggregated Zeebe data
Stars: ✭ 37 (-26%)
Mutual labels:  zeebe
awesome-camunda-cloud
Awesome Camunda Cloud Projects
Stars: ✭ 81 (+62%)
Mutual labels:  zeebe
zeebe-client-node-js
Node.js client library for Zeebe Microservices Orchestration Engine
Stars: ✭ 109 (+118%)
Mutual labels:  zeebe
nestjs-zeebe
Zeebe transport and client for nestjs framework
Stars: ✭ 40 (-20%)
Mutual labels:  zeebe
spring-zeebe
Easily use the Zeebe Java Client in your Spring or Spring Boot projects
Stars: ✭ 103 (+106%)
Mutual labels:  zeebe
zeebe-kafka-exporter
Export events from Zeebe to Kafka
Stars: ✭ 21 (-58%)
Mutual labels:  zeebe
zeebe-helm
Public Zeebe K8s HELM Charts
Stars: ✭ 13 (-74%)
Mutual labels:  zeebe
node-red-contrib-zeebe
Zeebe nodes for Node-RED
Stars: ✭ 23 (-54%)
Mutual labels:  zeebe
zeebe-simple-monitor
A monitoring application to show insides of Zeebe for developers
Stars: ✭ 110 (+120%)
Mutual labels:  zeebe
zeebe-client-csharp
Contains an Zeebe C# client implementation.
Stars: ✭ 71 (+42%)
Mutual labels:  zeebe

Zeebe Simple Tasklist

License

Compatible with: Camunda Platform 8

A Zeebe worker to manage user tasks in a workflow. It shows all jobs of the user task's type as a task/todo-list. A user can complete the tasks with requested data.

Usage

Example BPMN with a user task:

<bpmn:userTask id="userTask" name="User Task">
 <bpmn:extensionElements>
   <zeebe:taskHeaders>
     <zeebe:header key="name" value="My User Task"/>
     <zeebe:header key="description" value="My first user task with a form field."/>
     <zeebe:header key="formFields" value="[{\" key\":\"orderId\", \"label\":\"Order Id\",
     \"type\":\"string\"}]" />
     <zeebe:assignmentDefinition assignee="demo" />
   </zeebe:taskHeaders>
 </bpmn:extensionElements>
</bpmn:userTask>
  • the worker is registered for jobs of type io.camunda.zeebe:userTask (the reserved job type of user tasks)
  • optional custom headers:
    • name - the name of the task (default: the element id)
    • description - a description what is the task about
    • taskForm (HTML) - the form to show and provide the task data (example task form)
    • formFields (JSON) - the form fields for the default task form, if no task form is set

Default Task Form

If no taskForm is defined then the default task form is used. It takes the formFields and renders a form with all defined fields. The fields are defined as JSON list, for example:

[{
    \"key\":\"orderId\", 
    \"label\":\"Order Id\", 
    \"type\":\"string\"
  }, {
    \"key\":\"price\", 
    \"label\":\"Price\", 
    \"type\":\"number\"
  }
]`)

The type must be one of: string, number, boolean.

Install

Docker

The docker image for the worker is published to GitHub Packages .

docker pull ghcr.io/camunda-community-hub/zeebe-simple-tasklist:latest
  • ensure that a Zeebe broker is running with a Hazelcast exporter (> = 1.0.0)
  • forward the Hazelcast port to the docker container (default: 5701)
  • configure the connection to the Zeebe broker by setting zeebe.client.broker.gateway-address ( default: localhost:26500)
  • configure the connection to Hazelcast by setting zeebe.client.worker.hazelcast.connection ( default: localhost:5701)

If the Zeebe broker runs on your local machine with the default configs then start the container with the following command:

docker run --network="host" ghcr.io/camunda-community-hub/zeebe-simple-tasklist:latest

For a local setup, the repository contains a docker-compose file. It starts a Zeebe broker with the Hazelcast exporter and the application.

cd docker
docker-compose --profile in-memory up

Go to http://localhost:8081

To use PostgreSQL instead of the in-memory database, use the profile postgres.

docker-compose --profile postgres up

Manual

  1. Download the latest application JAR ( zeebe-simple-tasklist-%{VERSION}.jar )

  2. Start the application java -jar zeebe-simple-tasklist-{VERSION}.jar

  3. Go to http://localhost:8081

  4. Login with demo/demo

Configuration

The worker is a Spring Boot application that uses the Spring Zeebe Starter. The configuration can be changed via environment variables or an application.yaml file. See also the following resources:

By default, the port is set to 8081, the admin user is created with demo/demo, and the database is only in-memory (i.e. not persistent).

zeebe:
  client:
    worker:
      defaultName: zeebe-simple-tasklist
      defaultType: user
      threads: 2
    
      hazelcast:
        connection: localhost:5701
        connectionTimeout: PT30S
    
      tasklist:
        defaultTaskForm: /templates/default-task-form.html
        adminUsername: demo
        adminPassword: demo

    job.timeout: 2592000000 # 30 days
    broker.contactPoint: 127.0.0.1:26500
    security.plaintext: true

spring:

  datasource:
    url: jdbc:h2:~/zeebe-tasklist
    user: sa
    password:
    driverClassName: org.h2.Driver

  jpa:
    database-platform: org.hibernate.dialect.H2Dialect
    hibernate:
      ddl-auto: update

server:
  port: 8081
  servlet:
    context-path: /  
  allowedOriginsUrls: ""

Change the Context-Path

The context-path or base-path of the application can be changed using the following property:

server:
  servlet:
    context-path: /tasklist/

It is then available under http://localhost:8081/tasklist.

Customize the Look & Feel

You can customize the look & feel of the Zeebe Simple Tasklist (aka. white-labeling). For example, to change the logo or alter the background color. The following configurations are available:

- white-label.logo.path=img/logo.png
- white-label.custom.title=Zeebe Simple Tasklist
- white-label.custom.css.path=css/custom.css
- white-label.custom.js.path=js/custom.js

Change the Database

For example, using PostgreSQL:

  • change the following database configuration settings
- spring.datasource.url=jdbc:postgresql://db:5432/postgres
- spring.datasource.username=postgres
- spring.datasource.password=zeebe
- spring.datasource.driverClassName=org.postgresql.Driver
- spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
  • the PostgreSQL database driver is already bundled

See the docker-compose file (profile: postgres) for a sample configuration with PostgreSQL.

Cross Origin Requests

To enable Simple Tasklist to send CORS header with every HTTP response, add the allowed origins (; separated) in the following property:

server:
  allowedOriginsUrls: http://localhost:8081;https://tasklist.cloud-provider.io:8081

This will then set Access-Control-Allow-Origin headers in every HTTP response.

Build from Source

Build with Maven

mvn clean install

Code of Conduct

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].

License

Apache License, Version 2.0

About

screencast

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].