Not so long ago I wrote a series of posts about Flowable:
- Getting started with Flowable
- How To: Build Flowable
- How To: Flowable and LDAP
- Flowable's REST API - Part 1
- Flowable's REST API - Part 2
- Flowable's REST API - Part 3
There are quite a few open source workflow engines to choose from.
I thought I'd take a look at Camunda.
Getting Started
The easiest way to get started with Camunda is to use a Docker image, for example:
docker pull camunda/camunda-bpm-platform:latest
docker run -d --name camunda -p 8080:8080 camunda/camunda-bpm-platform:latest
The camunda-bpm-platform image includes three web applications:
- Camunda Tasklist: http://localhost:8080/camunda/app/tasklist/default/#
- Camunda Cockpit: http://localhost:8080/camunda/app/cockpit/default/#
- Camunda Admin: http://localhost:8080/camunda/app/admin/default/#
Navigate to the Welcome page: http://localhost:8080/camunda-welcome/index.html
and then sign in to the Tasklist web application using the default credentials (for admin access) Username: demo and Password: demo
You will then be redirected to the Tasklists's dashboard:
Camunda REST API
The camunda-bpm-platform
image also includes Camunda's REST API.
For example, GET task
curl -i 'http://demo:demo@localhost:8080/engine-rest/task'
You should see output like:
[
{
"id": "9456e72c-211e-11ea-b0e6-0242ac110002",
"name": "Assign Reviewer",
"assignee": "demo",
"created": "2019-12-17T22:43:00.864+0000",
"due": null,
"followUp": null,
"delegationState": null,
"description": null,
"executionId": "945698fc-211e-11ea-b0e6-0242ac110002",
"owner": null,
"parentTaskId": null,
"priority": 50,
"processDefinitionId": "ReviewInvoice:2:9337bb88-211e-11ea-b0e6-0242ac110002",
"processInstanceId": "945698fc-211e-11ea-b0e6-0242ac110002",
"taskDefinitionKey": "assignReviewer",
"caseExecutionId": null,
"caseInstanceId": null,
"caseDefinitionId": null,
"suspended": false,
"formKey": "embedded:app:forms/assign-reviewer.html",
"tenantId": null
}
]
OpenAPI (Swagger) docs
The camunda-bpm-platform
image does not include any OpenAPI (Swagger) docs, however, I did find this project on GitHub.
Docker
To list all running containers:
docker container ls
You should see output like:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb5d547b61da camunda/camunda-bpm-platform:latest "/sbin/tini -- ./cam…" 30 minutes ago Up 30 minutes 8000/tcp, 9404/tcp, 0.0.0.0:8080->8080/tcp camunda
You can stop a container using the following command:
docker container stop [name]
For example:
docker container stop camunda
What's Next
I'd like to add support for Single Sign On to Serendipity, so in the next post I'll take a look at Keycloak.