feat(workflow): beoordeling escalation to teamlead after 14 days (S-14, closes #15) #99
Reference in New Issue
Block a user
Delete Branch "feat/15-beoordeling-escalation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
S-14: a beoordeling a behandelaar does not pick up within 14 days escalates to the teamlead.
A non-interrupting
P14Dboundary timer on theBeoordelenuser task fires an external-worker task(
BeoordelingEscaleren); the domain's escalation worker reassigns the still-open task's candidate groupfrom
behandelaartoteamlead. The task keeps its identity — only who may claim it changes. Theescalation-via-external-worker decision is recorded in ADR-0015 (proposal #98); it upholds §8.2
(the Workflow Client stays the only code that talks to Flowable) and keeps Flowable a stock image.
Closes #15
Definition of Done
refs #NN).docker compose upfrom a fresh clone reaches green health checks within 3 minutes (no new services; escalation is additive to the domain worker).docs/architecture/adr-0015-beoordeling-escalation.md).docs/demo-script.md.How it was built (TDD)
IBeoordelingEscalatieClient): acquireBeoordelingEscalerenjobs → find the openBeoordelentask in the instance → addteamlead/removebehandelaarcandidate group → complete the job. Red → green.BeoordelingEscalatieProcessor) + hostedBeoordelingEscalatiePump, mirroring the OpenZaak worker. Red → green.P14Dboundary timer onBeoordelen→ external task → escalation end.Een beoordeling escalerenacceptance scenarios + Workflow Client unit tests.verify-domainfires the timer early via Flowable's management API and asserts the reassignment to teamlead.Notes for reviewers
IBeoordelingEscalatieClient, separate from the OpenZaak worker'sIExternalWorkerClient.dotnet format --verify-no-changes, Release build (0 errors), domain mutation 96.69% (break 90). Therun-domain-check.shescalation path is CI-verified on verify-stack (local full-stack run is constrained here).BeoordelingEscalatiePumpexcluded from mutation, mirroring the existingOpenZaakJobPumpexclusion.