{"id":13408641,"url":"https://github.com/camunda-community-hub/zeebe-simple-tasklist","last_synced_at":"2025-10-29T20:31:18.455Z","repository":{"id":42690231,"uuid":"171086583","full_name":"camunda-community-hub/zeebe-simple-tasklist","owner":"camunda-community-hub","description":"Zeebe worker to manage manual/user tasks","archived":false,"fork":false,"pushed_at":"2024-08-14T06:54:11.000Z","size":1406,"stargazers_count":74,"open_issues_count":3,"forks_count":18,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-08-14T08:03:35.411Z","etag":null,"topics":["tasklist","user-task","zeebe","zeebe-worker"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/camunda-community-hub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-17T05:44:07.000Z","updated_at":"2024-08-14T06:53:53.000Z","dependencies_parsed_at":"2023-02-13T19:55:54.154Z","dependency_job_id":"2b5f1ac3-eef4-4b6d-8979-d534e5f1398b","html_url":"https://github.com/camunda-community-hub/zeebe-simple-tasklist","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camunda-community-hub%2Fzeebe-simple-tasklist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camunda-community-hub%2Fzeebe-simple-tasklist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camunda-community-hub%2Fzeebe-simple-tasklist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/camunda-community-hub%2Fzeebe-simple-tasklist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/camunda-community-hub","download_url":"https://codeload.github.com/camunda-community-hub/zeebe-simple-tasklist/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238887436,"owners_count":19547255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["tasklist","user-task","zeebe","zeebe-worker"],"created_at":"2024-07-30T20:00:54.305Z","updated_at":"2025-10-29T20:31:12.557Z","avatar_url":"https://github.com/camunda-community-hub.png","language":"Java","funding_links":[],"categories":["Applications"],"sub_categories":[],"readme":"Zeebe Simple Tasklist\n=========================\n\n[![](https://img.shields.io/badge/Community%20Extension-An%20open%20source%20community%20maintained%20project-FF4700)](https://github.com/camunda-community-hub/community)\n[![](https://img.shields.io/badge/Lifecycle-Deprecated-yellowgreen)](https://github.com/Camunda-Community-Hub/community/blob/main/extension-lifecycle.md#deprecated-)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n[![Compatible with: Camunda Platform 8](https://img.shields.io/badge/Compatible%20with-Camunda%20Platform%208-0072Ce)](https://github.com/camunda-community-hub/community/blob/main/extension-lifecycle.md#compatiblilty)\n\n\u003e [!IMPORTANT]\n\u003e This community extension is **deprecated**. It doesn't support all the features of newer Camunda versions. You should prefer the official [Camunda Tasklist](https://docs.camunda.io/docs/components/tasklist/introduction-to-tasklist/) that is available in Camunda SaaS and for self-managed. Further resources:\n\u003e - [Documentation](https://docs.camunda.io/docs/components/tasklist/introduction-to-tasklist/)\n\u003e - [How to build a custom task application](https://docs.camunda.io/docs/next/apis-tools/frontend-development/task-applications/introduction-to-task-applications/)\n\u003e\n\u003e Thank you to all [contributors](https://github.com/camunda-community-hub/zeebe-simple-tasklist/graphs/contributors) for making it a great extension. :tada:\n\nA [Zeebe](https://zeebe.io) worker to manage user tasks in a workflow. It shows all jobs of\nthe user task's type as a task/todo-list. A user can complete the tasks with requested data.\n\n\u003e **Note**\n\u003e This community project is not related to the **official** [Camunda Tasklist](https://docs.camunda.io/docs/components/tasklist/introduction-to-tasklist/) component in Camunda 8, nor the APIs. If you're looking for the Camunda Tasklist, check out the [Camunda documentation](https://docs.camunda.io/docs/components/tasklist/introduction-to-tasklist/).  \n\n## Usage\n\nExample BPMN with a user task:\n\n ```xml\n\n\u003cbpmn:userTask id=\"userTask\" name=\"User Task\"\u003e\n  \u003cbpmn:extensionElements\u003e\n    \u003czeebe:taskHeaders\u003e\n      \u003czeebe:header key=\"name\" value=\"My User Task\"/\u003e\n      \u003czeebe:header key=\"description\" value=\"My first user task with a form field.\"/\u003e\n      \u003czeebe:header key=\"formFields\" value=\"[{\\\" key\\\":\\\"orderId\\\", \\\"label\\\":\\\"Order Id\\\",\n      \\\"type\\\":\\\"string\\\"}]\" /\u003e\n      \u003czeebe:assignmentDefinition assignee=\"demo\" /\u003e\n    \u003c/zeebe:taskHeaders\u003e\n  \u003c/bpmn:extensionElements\u003e\n\u003c/bpmn:userTask\u003e\n ```  \n\n* the worker is registered for jobs of type `io.camunda.zeebe:userTask` (the reserved job type of user tasks)\n* optional custom headers:\n    * `name` - the name of the task _(default: the element id)_\n    * `description` - a description what is the task about\n    * `taskForm` (HTML) - the form to show and provide the task\n      data ([example task form](https://github.com/zeebe-io/zeebe-simple-tasklist/blob/master/src/test/resources/custom-task-form.html))\n    * `formFields` (JSON) - the form fields for the default task form, if no task form is set\n\n### Default Task Form\n\nIf no `taskForm` is defined then the default task form is used. It takes the `formFields` and\nrenders a form with all defined fields. The fields are defined as JSON list, for example:\n\n```\n[{\n    \\\"key\\\":\\\"orderId\\\", \n    \\\"label\\\":\\\"Order Id\\\", \n    \\\"type\\\":\\\"string\\\"\n  }, {\n    \\\"key\\\":\\\"price\\\", \n    \\\"label\\\":\\\"Price\\\", \n    \\\"type\\\":\\\"number\\\"\n  }\n]`)\n```\n\nThe `type` must be one of: string, number, boolean.\n\n## Install\n\n### Docker\n\nThe docker image for the worker is published\nto [GitHub Packages](https://github.com/orgs/camunda-community-hub/packages/container/package/zeebe-simple-tasklist)\n.\n\n```\ndocker pull ghcr.io/camunda-community-hub/zeebe-simple-tasklist:latest\n```\n\n* ensure that a Zeebe broker is running with\n  a [Hazelcast exporter](https://github.com/camunda-community-hub/zeebe-hazelcast-exporter#install) (\u003e\n  = `1.0.0`)\n* forward the Hazelcast port to the docker container (default: `5701`)\n* configure the connection to the Zeebe broker by setting `zeebe.client.broker.gateway-address` (\n  default: `localhost:26500`)\n* configure the connection to Hazelcast by setting `zeebe.client.worker.hazelcast.connection` (\n  default: `localhost:5701`)\n\nIf the Zeebe broker runs on your local machine with the default configs then start the container\nwith the following command:\n\n```\ndocker run --network=\"host\" ghcr.io/camunda-community-hub/zeebe-simple-tasklist:latest\n```\n\nFor a local setup, the repository contains a [docker-compose file](docker/docker-compose.yml). It\nstarts a Zeebe broker with the Hazelcast exporter and the application.\n\n```\ncd docker\ndocker-compose --profile in-memory up\n```\n\nGo to http://localhost:8081\n\nTo use PostgreSQL instead of the in-memory database, use the profile `postgres`.\n\n```\ndocker-compose --profile postgres up\n```\n\n### Manual\n\n1. Download the\n   latest [application JAR](https://github.com/zeebe-io/zeebe-simple-tasklist/releases) _(\n   zeebe-simple-tasklist-%{VERSION}.jar\n   )_\n\n1. Start the application\n   `java -jar zeebe-simple-tasklist-{VERSION}.jar`\n\n1. Go to http://localhost:8081\n\n1. Login with `demo/demo`\n\n### Configuration\n\nThe worker is a Spring Boot application that uses\nthe [Spring Zeebe Starter](https://github.com/zeebe-io/spring-zeebe). The configuration can be\nchanged via environment variables or an `application.yaml` file. See also the following resources:\n\n* [Spring Zeebe Configuration](https://github.com/zeebe-io/spring-zeebe#configuring-zeebe-connection)\n* [Spring Boot Configuration](https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config)\n\nBy default, the port is set to `8081`, the admin user is created with `demo/demo`, and the database\nis only in-memory (i.e. not persistent).\n\n```\nzeebe:\n  client:\n    worker:\n      defaultName: zeebe-simple-tasklist\n      defaultType: user\n      threads: 2\n    \n      hazelcast:\n        connection: localhost:5701\n        connectionTimeout: PT30S\n    \n      tasklist:\n        defaultTaskForm: /templates/default-task-form.html\n        adminUsername: demo\n        adminPassword: demo\n\n    job.timeout: 2592000000 # 30 days\n    broker.contactPoint: 127.0.0.1:26500\n    security.plaintext: true\n\nspring:\n\n  datasource:\n    url: jdbc:h2:~/zeebe-tasklist\n    user: sa\n    password:\n    driverClassName: org.h2.Driver\n\n  jpa:\n    database-platform: org.hibernate.dialect.H2Dialect\n    hibernate:\n      ddl-auto: update\n\nserver:\n  port: 8081\n  servlet:\n    context-path: /  \n  allowedOriginsUrls: \"\"\n```\n\n#### Change the Context-Path\n\nThe context-path or base-path of the application can be changed using the following property:\n\n``` \nserver:\n  servlet:\n    context-path: /tasklist/\n```\n\nIt is then available under http://localhost:8081/tasklist.\n\n#### Customize the Look \u0026 Feel\n\nYou can customize the look \u0026 feel of the Zeebe Simple Tasklist (aka. white-labeling). For example, to change the logo or\nalter the background color. The following configurations are available:\n\n```\n- white-label.logo.path=img/logo.png\n- white-label.custom.title=Zeebe Simple Tasklist\n- white-label.custom.css.path=css/custom.css\n- white-label.custom.js.path=js/custom.js\n```\n\n#### Change the Database\n\nFor example, using PostgreSQL:\n\n* change the following database configuration settings\n\n```\n- spring.datasource.url=jdbc:postgresql://db:5432/postgres\n- spring.datasource.username=postgres\n- spring.datasource.password=zeebe\n- spring.datasource.driverClassName=org.postgresql.Driver\n- spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect\n```\n\n* the PostgreSQL database driver is already bundled\n\nSee the [docker-compose file](docker/docker-compose.yml) (profile: `postgres`) for a sample\nconfiguration with PostgreSQL.\n\n#### Cross Origin Requests\n\nTo enable Simple Tasklist to send CORS header with every HTTP response,\nadd the allowed origins (`;` separated) in the following property:\n\n``` \nserver:\n  allowedOriginsUrls: http://localhost:8081;https://tasklist.cloud-provider.io:8081\n```\n\nThis will then set ```Access-Control-Allow-Origin``` headers in every HTTP response.\n\n## Build from Source\n\nBuild with Maven\n\n`mvn clean install`\n\n## Code of Conduct\n\nThis project adheres to the Contributor Covenant [Code of\nConduct](/CODE_OF_CONDUCT.md). By participating, you are expected to uphold\nthis code. Please report unacceptable behavior to code-of-conduct@zeebe.io.\n\n## License\n\n[Apache License, Version 2.0](/LICENSE)\n\n## About\n\n![screencast](docs/zeebe-simple-tasklist.gif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamunda-community-hub%2Fzeebe-simple-tasklist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcamunda-community-hub%2Fzeebe-simple-tasklist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcamunda-community-hub%2Fzeebe-simple-tasklist/lists"}