feat(self-service): trek aanvraag in — withdrawal action (S-11c-2, closes #12) #93

Merged
not merged 6 commits from feat/12-withdrawal-portal into main 2026-07-16 13:06:56 +00:00
Contributor

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

  • Linked Gitea issue (#12).
  • 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`). - [ ] 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.
not added 5 commits 2026-07-16 12:28:52 +00:00
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
docs(withdrawal): demo-script + frontend decision for 'trek aanvraag in' (refs #12)
Some checks failed
CI / lint (pull_request) Successful in 1m26s
CI / build (pull_request) Successful in 1m7s
CI / frontend (pull_request) Has been cancelled
CI / mutation (pull_request) Has been cancelled
CI / verify-stack (pull_request) Has been cancelled
CI / unit (pull_request) Has been cancelled
8ab38e2816
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
not added the type:slicearea:portal-self-servicearea:bff labels 2026-07-16 12:28:55 +00:00
not added 1 commit 2026-07-16 12:45:35 +00:00
Merge branch 'main' into feat/12-withdrawal-portal
All checks were successful
CI / lint (pull_request) Successful in 1m19s
CI / build (pull_request) Successful in 1m4s
CI / unit (pull_request) Successful in 1m18s
CI / frontend (pull_request) Successful in 2m56s
CI / mutation (pull_request) Successful in 5m17s
CI / verify-stack (pull_request) Successful in 7m53s
87ec5d28df
not merged commit 94699f3603 into main 2026-07-16 13:06:56 +00:00
Sign in to join this conversation.