Final sub-slice of S-11 · Withdrawal (Flow 3) — the user-facing "trek aanvraag in" action, which closes#12.
self-service portal: the submit confirmation gains a "Trek aanvraag in" button. It withdraws the just-submitted registration via postSelfServiceRegistrationsIdWithdraw(reference); success shows an ingetrokken confirmation, a failure is surfaced (role="alert") and the action stays available — same confirm-and-surface pattern as submit.
acceptance: Een registratie intrekken — owner withdraws → INGETROKKEN + workflow cancelled; a different bsn is reported not-found.
e2e: withdrawal.spec.ts — DigiD submit → trek aanvraag in → the portal confirms ingetrokken.
docs: demo-script + frontend-decisions.
Together with S-11a (#88), S-11b (#89), S-11c-1 (#90), this completes the flow: citizen withdraws → domain INGETROKKEN → BPMN message event cancels the process → the case leaves the behandelaar's werkbak.
Failing tests committed before the implementation.
Implementation makes the tests pass.
Conventional Commits referencing the issue (refs #12).
CI green — all Gitea Actions jobs.
docker compose up unaffected.
Docs updated (demo-script + frontend-decisions).
ADR — ADR-0014 (from S-11b) covers the cancellation decision; nothing new here.
Notes for reviewers
Full local gate run before pushing: dotnet format --verify-no-changes clean; make unit green (Acceptance 11 incl. the 2 new withdrawal scenarios, Big 95, BFF 30, Acl 27, EventSubscriber 19); self-service lint/test/build green (9 tests, incl. the 2 new withdraw tests).
withdrawal.spec.ts waits on the ingetrokken confirmation (which only renders after the withdraw POST returns), so it can't cancel the request early (the 499 lesson from #87). Live-validated by verify-stack.
## What & why
Final sub-slice of **S-11 · Withdrawal (Flow 3)** — the user-facing "trek aanvraag in" action, which **closes #12**.
- **self-service portal**: the submit confirmation gains a **"Trek aanvraag in"** button. It withdraws the just-submitted registration via `postSelfServiceRegistrationsIdWithdraw(reference)`; success shows an *ingetrokken* confirmation, a failure is surfaced (`role="alert"`) and the action stays available — same confirm-and-surface pattern as submit.
- **acceptance**: `Een registratie intrekken` — owner withdraws → INGETROKKEN + workflow cancelled; a different bsn is reported not-found.
- **e2e**: `withdrawal.spec.ts` — DigiD submit → trek aanvraag in → the portal confirms ingetrokken.
- **docs**: demo-script + frontend-decisions.
Together with S-11a (#88), S-11b (#89), S-11c-1 (#90), this completes the flow: citizen withdraws → domain INGETROKKEN → BPMN message event cancels the process → the case leaves the behandelaar's werkbak.
Closes #12
## Definition of Done
- [x] Linked Gitea issue (#12).
- [x] Failing tests committed before the implementation.
- [x] Implementation makes the tests pass.
- [x] Conventional Commits referencing the issue (`refs #12`).
- [x] CI green — all Gitea Actions jobs.
- [x] `docker compose up` unaffected.
- [x] Docs updated (demo-script + frontend-decisions).
- [x] ADR — ADR-0014 (from S-11b) covers the cancellation decision; nothing new here.
## Notes for reviewers
- Full local gate run before pushing: `dotnet format --verify-no-changes` clean; `make unit` green (Acceptance **11** incl. the 2 new withdrawal scenarios, Big 95, BFF 30, Acl 27, EventSubscriber 19); self-service lint/test/build green (9 tests, incl. the 2 new withdraw tests).
- `withdrawal.spec.ts` waits on the *ingetrokken* confirmation (which only renders after the withdraw POST returns), so it can't cancel the request early (the 499 lesson from #87). Live-validated by verify-stack.
After submitting, a secondary action withdraws the registration via
postSelfServiceRegistrationsIdWithdraw(reference); success shows an ingetrokken confirmation, a
failure is surfaced and the action stays available to retry.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Owner withdraws → INGETROKKEN + process cancelled; a different bsn is reported not-found.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What & why
Final sub-slice of S-11 · Withdrawal (Flow 3) — the user-facing "trek aanvraag in" action, which closes #12.
postSelfServiceRegistrationsIdWithdraw(reference); success shows an ingetrokken confirmation, a failure is surfaced (role="alert") and the action stays available — same confirm-and-surface pattern as submit.Een registratie intrekken— owner withdraws → INGETROKKEN + workflow cancelled; a different bsn is reported not-found.withdrawal.spec.ts— DigiD submit → trek aanvraag in → the portal confirms ingetrokken.Together with S-11a (#88), S-11b (#89), S-11c-1 (#90), this completes the flow: citizen withdraws → domain INGETROKKEN → BPMN message event cancels the process → the case leaves the behandelaar's werkbak.
Closes #12
Definition of Done
refs #12).docker compose upunaffected.Notes for reviewers
dotnet format --verify-no-changesclean;make unitgreen (Acceptance 11 incl. the 2 new withdrawal scenarios, Big 95, BFF 30, Acl 27, EventSubscriber 19); self-service lint/test/build green (9 tests, incl. the 2 new withdraw tests).withdrawal.spec.tswaits on the ingetrokken confirmation (which only renders after the withdraw POST returns), so it can't cancel the request early (the 499 lesson from #87). Live-validated by verify-stack.