S-10a · Document-wait task + 30-day timeout cancellation (workflow spine) #102

Closed
opened 2026-07-20 07:34:56 +00:00 by not · 1 comment
Contributor

Split from #11 (S-10 was too large for one slice per CLAUDE.md §13). This is the workflow/timeout spine (backend only, no frontend); document upload itself is S-10b.

Outcome: BPMN gains a WachtOpDocumenten user task with a 30-day (P30D) interrupting boundary timer. While parked there the registration waits for documents. On timeout the case is cancelled: the interrupting timer runs to a dedicated cancel end-event, and the domain aggregate is moved to a new terminal status (e.g. Verlopen) via an external-worker on the timeout branch — mirroring the S-14 escalation pattern (ADR-0015) and the S-11 withdrawal cancel path (ADR-0014).

In scope

  • workflows/registratie.bpmn: new WachtOpDocumenten user task + cancelActivity="true" P30D timer boundary + endVerlopen end-event (+ DI shapes); redeploy via flowable-init/seed-config.sh.
  • Domain: new Registration status + timeout-cancel command/worker (port + processor + pump, following BeoordelingEscalatie*).
  • The "documents received" transition that completes WachtOpDocumenten (the Workflow Client user-task complete path) — the trigger source is stubbed until S-10b wires real upload.
  • Verify: BDD both branches (documents-in-time vs timeout-cancel); live timer-fire via the management-API "move" idiom already used for S-14 in run-domain-check.sh.
  • ADR: document-wait timeout cancellation (new aggregate status + how the process cancels and stays in sync with the domain).

Out of scope (→ S-10b): the Documenten/DRC ACL gateway, informatieobjecttype seeding, the BFF upload endpoint, and the portal upload form.

Definition of Done

  • A linked Gitea issue exists (this one).
  • Failing test written and committed first.
  • Implementation makes the test pass.
  • Refactor commit follows if structure improved.
  • Conventional Commit messages referencing this issue (refs #NN).
  • All Gitea Actions CI jobs green: lint, unit, integration, mutation (ratchet), e2e, container build + push, compose-up smoke test.
  • docker compose up from a fresh clone reaches green health checks within 3 minutes.
  • Docs touched if behaviour, contracts, or operations changed.
  • ADR added in docs/architecture/ if a non-obvious decision was made.
  • Demo note appended to docs/demo-script.md if the slice is user-visible.
  • This issue closed by the merging PR (closes #NN).
Split from #11 (S-10 was too large for one slice per CLAUDE.md §13). This is the **workflow/timeout spine** (backend only, no frontend); document upload itself is S-10b. **Outcome:** BPMN gains a `WachtOpDocumenten` user task with a **30-day (P30D) interrupting boundary timer**. While parked there the registration waits for documents. On timeout the case is **cancelled**: the interrupting timer runs to a dedicated cancel end-event, and the domain aggregate is moved to a new terminal status (e.g. `Verlopen`) via an external-worker on the timeout branch — mirroring the S-14 escalation pattern (ADR-0015) and the S-11 withdrawal cancel path (ADR-0014). **In scope** - `workflows/registratie.bpmn`: new `WachtOpDocumenten` user task + `cancelActivity="true"` P30D timer boundary + `endVerlopen` end-event (+ DI shapes); redeploy via `flowable-init`/`seed-config.sh`. - Domain: new `Registration` status + timeout-cancel command/worker (port + processor + pump, following `BeoordelingEscalatie*`). - The "documents received" transition that completes `WachtOpDocumenten` (the Workflow Client user-task complete path) — the trigger source is stubbed until S-10b wires real upload. - Verify: BDD both branches (documents-in-time vs timeout-cancel); live timer-fire via the management-API "move" idiom already used for S-14 in `run-domain-check.sh`. - ADR: document-wait timeout cancellation (new aggregate status + how the process cancels and stays in sync with the domain). **Out of scope (→ S-10b):** the Documenten/DRC ACL gateway, informatieobjecttype seeding, the BFF upload endpoint, and the portal upload form. ## Definition of Done - [ ] A linked Gitea issue exists (this one). - [ ] Failing test written and committed first. - [ ] Implementation makes the test pass. - [ ] Refactor commit follows if structure improved. - [ ] Conventional Commit messages referencing this issue (`refs #NN`). - [ ] All Gitea Actions CI jobs green: lint, unit, integration, mutation (ratchet), e2e, container build + push, compose-up smoke test. - [ ] `docker compose up` from a fresh clone reaches green health checks within 3 minutes. - [ ] Docs touched if behaviour, contracts, or operations changed. - [ ] ADR added in `docs/architecture/` if a non-obvious decision was made. - [ ] Demo note appended to `docs/demo-script.md` if the slice is user-visible. - [ ] This issue closed by the merging PR (`closes #NN`).
not added this to the Iteration 2 — Flow Completeness milestone 2026-07-20 07:34:56 +00:00
not added the type:slicearea:domainarea:workflow labels 2026-07-20 07:35:39 +00:00
Author
Contributor

Scope note: the WachtOpDocumenten gate would leave the walking-skeleton e2e red without a way to pass it, so S-10a now also includes the document-provision trigger end-to-end — a ProvideDocuments domain use case + POST /registrations/{id}/documents, a BFF passthrough POST /self-service/registrations/{id}/documents, and a "Documenten aanleveren" button on the self-service page. The document is not yet stored in ZGW — that (real file upload via the ACL Documenten API + zaak-close on expiry) is #103. Recorded in ADR-0017.

Scope note: the WachtOpDocumenten gate would leave the walking-skeleton e2e red without a way to pass it, so S-10a now also includes the **document-provision trigger** end-to-end — a `ProvideDocuments` domain use case + `POST /registrations/{id}/documents`, a BFF passthrough `POST /self-service/registrations/{id}/documents`, and a **"Documenten aanleveren"** button on the self-service page. The document is not yet *stored* in ZGW — that (real file upload via the ACL Documenten API + zaak-close on expiry) is #103. Recorded in ADR-0017.
not closed this issue 2026-07-20 09:42:03 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: eho/register-referentie#102