Files
register-referentie/docs/runbooks/flowable.md
Edwin van den Houdt d61594974f
Some checks failed
CI / lint (pull_request) Has been cancelled
CI / build (pull_request) Has been cancelled
CI / unit (pull_request) Has been cancelled
CI / compose-smoke (pull_request) Has been cancelled
feat(workflow): Flowable up with registratie.bpmn external task (closes #4)
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>
2026-06-04 09:16:35 +02:00

1.7 KiB

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)

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:
    curl -s -u rest-admin:test -H 'Content-Type: application/json' \
      -d '{"processDefinitionKey":"registratie"}' \
      http://localhost:8090/flowable-rest/service/runtime/process-instances