Strict-TDD core of S-04 (#5): the ACL's single operation OpenZaak(domainPayload) → zaakUrl.
TDD (red → green):
test(acl) — failing unit tests: AclService must default-fill the ZGW fields + clock date; OpenZaakGateway must POST the zaak with a Bearer JWT + default-filled body.
feat(acl) — implementations; tests green (2/2).
Design: ADR-0003 (default-fill strategy) — bronorganisatie / verantwoordelijkeOrganisatie / vertrouwelijkheidaanduiding / zaaktype from config, startdatum from an injected clock; mapping lives entirely in the ACL (ADR-0001). Layered Application / Infrastructure / Api (§9). ZGW JWT minted in Infrastructure; CRS headers set.
Build: root register-referentie.slnx (bff + acl); make ci now covers every .NET service. make ci green (lint, build, Acl 2/2 + Bff 1/1, bff smoke).
Live OpenZaak integration / BDD "a zaak exists in OpenZaak" — blocked on a published zaaktype, which needs roltype/statustype/resultaattype + the Selectielijst API wired (S-01-b deliberately left the zaaktype a concept). That plumbing is its own step.
Testcontainers integration test and Stryker mutation baseline — the latter can't be CI-enforced without a runner anyway (see #30).
Strict-TDD core of **S-04** (#5): the ACL's single operation `OpenZaak(domainPayload) → zaakUrl`.
**TDD (red → green):**
- `test(acl)` — failing unit tests: `AclService` must default-fill the ZGW fields + clock date; `OpenZaakGateway` must POST the zaak with a Bearer JWT + default-filled body.
- `feat(acl)` — implementations; tests green (2/2).
**Design:** ADR-0003 (default-fill strategy) — `bronorganisatie` / `verantwoordelijkeOrganisatie` / `vertrouwelijkheidaanduiding` / `zaaktype` from config, `startdatum` from an injected clock; mapping lives entirely in the ACL (ADR-0001). Layered Application / Infrastructure / Api (§9). ZGW JWT minted in Infrastructure; CRS headers set.
**Build:** root `register-referentie.slnx` (bff + acl); `make ci` now covers every .NET service. **`make ci` green** (lint, build, Acl 2/2 + Bff 1/1, bff smoke).
⚠️ **Deferred (so this `refs`, not closes, #5):**
- **Live OpenZaak integration / BDD "a zaak exists in OpenZaak"** — blocked on a *published* zaaktype, which needs roltype/statustype/resultaattype + the Selectielijst API wired (S-01-b deliberately left the zaaktype a concept). That plumbing is its own step.
- **Testcontainers integration test** and **Stryker mutation baseline** — the latter can't be CI-enforced without a runner anyway (see #30).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Add the ACL skeleton (Application/Infrastructure/Api per §9) and failing
xUnit tests for the single operation: AclService.OpenZaakAsync must
default-fill bronorganisatie, verantwoordelijkeOrganisatie, startdatum
(clock) and vertrouwelijkheidaanduiding and delegate to the gateway; the
OpenZaakGateway must POST the zaak to OpenZaak with a Bearer JWT and the
default-filled body. Implementations throw NotImplementedException — red.
Also add ADR-0003 (default-fill strategy).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
AclService.OpenZaakAsync builds a ZaakRequest from the configured defaults
(bronorganisatie, verantwoordelijkeOrganisatie, vertrouwelijkheidaanduiding,
zaaktype) plus today's date from the clock, and delegates to the gateway.
OpenZaakGateway POSTs the zaak to /zaken/api/v1/zaken with a ZGW Bearer JWT
and the CRS headers, returning the created zaak URL. Tests pass (green).
Add a root register-referentie.slnx (bff + acl) and point `make ci` at it so
the gate covers every .NET service.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
eho
merged commit 4b2af5c635 into main2026-06-04 07:50:46 +00:00
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.
Strict-TDD core of S-04 (#5): the ACL's single operation
OpenZaak(domainPayload) → zaakUrl.TDD (red → green):
test(acl)— failing unit tests:AclServicemust default-fill the ZGW fields + clock date;OpenZaakGatewaymust POST the zaak with a Bearer JWT + default-filled body.feat(acl)— implementations; tests green (2/2).Design: ADR-0003 (default-fill strategy) —
bronorganisatie/verantwoordelijkeOrganisatie/vertrouwelijkheidaanduiding/zaaktypefrom config,startdatumfrom an injected clock; mapping lives entirely in the ACL (ADR-0001). Layered Application / Infrastructure / Api (§9). ZGW JWT minted in Infrastructure; CRS headers set.Build: root
register-referentie.slnx(bff + acl);make cinow covers every .NET service.make cigreen (lint, build, Acl 2/2 + Bff 1/1, bff smoke).⚠️ Deferred (so this
refs, not closes, #5):🤖 Generated with Claude Code