Add infra/flowable/docker-compose.yml (flowable-rest on Postgres, host :8090) and workflows/registratie.bpmn — a minimal "Registratie ontvangen" process: start -> external-worker task OpenZaakAanmaken -> end. A flowable-init container deploys the model via the REST API on boot (idempotent: skips if already deployed). Add `make flowable-up/flowable-smoke/flowable-down`; flowable-smoke runs infra/flowable/verify.py, which starts an instance and asserts it parks on the OpenZaakAanmaken external task, then cleans up. Runbook included. Verified clean-slate: down --volumes -> `make flowable-smoke` deploys on boot, starts an instance, and confirms it waits at OpenZaakAanmaken. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
41 lines
1.7 KiB
Markdown
41 lines
1.7 KiB
Markdown
# Flowable runbook
|
|
|
|
Flowable (`infra/flowable/docker-compose.yml`) runs the **flowable-rest** engine on
|
|
Postgres. The `workflows/registratie.bpmn` model is deployed via the REST API at boot by
|
|
the `flowable-init` container. Host port **:8090**; REST API under
|
|
`http://localhost:8090/flowable-rest/service/` (basic auth **rest-admin / test**, dev only).
|
|
|
|
## The model — `registratie`
|
|
|
|
A minimal "Registratie ontvangen" process: **start → external-worker task
|
|
`OpenZaakAanmaken` → end**. The external task is where the Workflow Client / ACL will
|
|
later create the zaak in OpenZaak (S-04/S-05); for now a started instance parks there.
|
|
|
|
## Quick test (`make`)
|
|
|
|
```bash
|
|
make flowable-up # start engine + deploy registratie.bpmn on boot
|
|
make flowable-smoke # start + verify a new instance waits on the external task
|
|
make flowable-down # stop + wipe
|
|
```
|
|
|
|
`make flowable-smoke` runs `infra/flowable/verify.py`, which:
|
|
1. waits for the `registratie` process definition to be deployed,
|
|
2. starts an instance and asserts it did **not** end immediately,
|
|
3. asserts an execution is parked at activity **`OpenZaakAanmaken`**,
|
|
4. deletes the test instance.
|
|
|
|
## Notes
|
|
|
|
- **Deploy on boot** is idempotent: `flowable-init` skips if a deployment named
|
|
`registratie` already exists (so restarts on the same volume don't pile up versions).
|
|
- **Dev creds:** `rest-admin` / `test`. Override via the flowable-rest app config for
|
|
anything beyond local dev.
|
|
- **Image** `flowable/flowable-rest:latest` — pin a tag when stabilising.
|
|
- Start an instance by hand:
|
|
```bash
|
|
curl -s -u rest-admin:test -H 'Content-Type: application/json' \
|
|
-d '{"processDefinitionKey":"registratie"}' \
|
|
http://localhost:8090/flowable-rest/service/runtime/process-instances
|
|
```
|