S-B04 · docker-compose.local.yml can't complete the flow: unseeded zaaktype, undeployed DMN, no NRC abonnement #110

Closed
opened 2026-07-22 08:41:29 +00:00 by not · 0 comments
Contributor

What happened:

On the make local stack (infra/docker-compose.local.yml, the host-browser-friendly path), a registration submitted through the portals never completes the flow: it doesn't reach the behandel werkbak, and nothing appears in the openbaar (public) register. Three pieces of setup that the verify-* scripts perform against the CI stack are not done by the local stack's bring-up, so the compose file has drifted behind slices S-06, S-10a, and S-13:

  1. Unseeded zaaktype + unwired ACL. acl defaults Acl__Defaults__ZaaktypeUrl to the all-zeros placeholder UUID. No published BIG zaaktype is seeded and the ACL is never repointed at it, so zaak creation fails with OpenZaak 400 and the process sticks at OpenZaakAanmaken — nothing progresses at all. (The verify-* scripts seed via infra/openzaak/seed_catalogus.py with OZ_PUBLISH=1 and recreate acl pointed at the server-assigned URL. Note the local acl also hardcodes Acl__OpenZaak__BaseUrl, with no override.)

  2. diploma-eligibility DMN not deployed. The local flowable-init deploys only registratie.bpmn — not workflows/diploma-eligibility.dmn. The CI infra/docker-compose.yml flowable-init deploys both (the DMN via /flowable-rest/dmn-api/dmn-repository/deployments). Completing WachtOpDocumenten runs the DMN routing task and Flowable returns 404 "No decision found for key: diploma-eligibility", so the case never routes to Beoordelen (the task the werkbak lists).

  3. No NRC abonnement registered. The event-subscriber starts but never subscribes, so OpenZaak's zaken notifications (create + status-set) go into NRC and are delivered nowhere → register_projection stays empty → the openbaar register (GET /openbaar/register) shows nothing, including approved (INGESCHREVEN) rows. (Registered by the verify scripts via infra/verify-notification-driver.py.)

What you expected:

A fresh make local should be able to run the full demo end-to-end in the browser — submit → upload diploma → appear in the werkbak → goedkeuren → appear in the openbaar register as INGESCHREVEN — with no manual seeding.

Steps to reproduce:

  1. make down && make local.
  2. Log in at http://localhost:8140 (jan-burger / test123), submit a registration, upload a diploma.
  3. Open the behandel werkbak (http://localhost:8142, merel-behandelaar / test123) → the registration never appears (stuck at OpenZaakAanmaken; once that's fixed, stuck at WachtOpDocumenten because the DMN 404s).
  4. Open the openbaar register (http://localhost:8141) → empty even for approved registrations.

Environment: main (at c8fdfbb), Fedora, rootless Podman via make local (infra/docker-compose.local.yml). Reproduced live in-session; the CI verify-* stack is unaffected because those scripts do all three setup steps.

Logs / evidence:

  • ACL → OpenZaak POST /zaken400 (placeholder zaaktype); domain OpenZaakAanmaken "leaving it for redelivery".
  • Flowable POST /runtime/tasks/{id} (complete WachtOpDocumenten) → 404 {"exception":"No decision found for key: diploma-eligibility ..."}.
  • dmn-repository/decisions total 0; NRC has 0 abonnementen; register_projection empty; event-subscriber log shows only startup.
  • Confirmed fixable in-session: seed zaaktype at the OpenZaak container IP (single-label host fails OpenZaak's URLValidator) + recreate acl pointed at it; deploy the DMN via dmn-api; POST the abonnement to NRC pointed at http://<es-ip>:8080/notifications with Bearer big-reference-notifications. After all three, a fresh submit flowed to the werkbak and the openbaar register correctly. These manual fixes are ephemeral (lost on the next make down && make local).

Proposed fix: bring docker-compose.local.yml bring-up up to parity with the verify-* setup — deploy the DMN in flowable-init, seed + publish a BIG zaaktype and wire the ACL to it (allow overriding Acl__OpenZaak__BaseUrl), and register the NRC abonnement on startup — so a fresh make local completes the flow. Follows S-B01/S-B02/S-B03.

Suspected area: area:infra (also touches workflow / event-subscriber / acl wiring, but the fix lives in the local compose + seed).

**What happened:** On the `make local` stack (`infra/docker-compose.local.yml`, the host-browser-friendly path), a registration submitted through the portals never completes the flow: it doesn't reach the behandel werkbak, and nothing appears in the openbaar (public) register. Three pieces of setup that the `verify-*` scripts perform against the CI stack are **not** done by the local stack's bring-up, so the compose file has drifted behind slices S-06, S-10a, and S-13: 1. **Unseeded zaaktype + unwired ACL.** `acl` defaults `Acl__Defaults__ZaaktypeUrl` to the all-zeros placeholder UUID. No published BIG zaaktype is seeded and the ACL is never repointed at it, so zaak creation fails with OpenZaak `400` and the process sticks at `OpenZaakAanmaken` — nothing progresses at all. (The `verify-*` scripts seed via `infra/openzaak/seed_catalogus.py` with `OZ_PUBLISH=1` and recreate `acl` pointed at the server-assigned URL. Note the local `acl` also hardcodes `Acl__OpenZaak__BaseUrl`, with no override.) 2. **`diploma-eligibility` DMN not deployed.** The local `flowable-init` deploys only `registratie.bpmn` — not `workflows/diploma-eligibility.dmn`. The CI `infra/docker-compose.yml` `flowable-init` deploys **both** (the DMN via `/flowable-rest/dmn-api/dmn-repository/deployments`). Completing `WachtOpDocumenten` runs the DMN routing task and Flowable returns `404 "No decision found for key: diploma-eligibility"`, so the case never routes to `Beoordelen` (the task the werkbak lists). 3. **No NRC abonnement registered.** The event-subscriber starts but never subscribes, so OpenZaak's `zaken` notifications (create + status-set) go into NRC and are delivered nowhere → `register_projection` stays empty → the openbaar register (`GET /openbaar/register`) shows nothing, including approved (INGESCHREVEN) rows. (Registered by the verify scripts via `infra/verify-notification-driver.py`.) **What you expected:** A fresh `make local` should be able to run the full demo end-to-end in the browser — submit → upload diploma → appear in the werkbak → goedkeuren → appear in the openbaar register as INGESCHREVEN — with no manual seeding. **Steps to reproduce:** 1. `make down && make local`. 2. Log in at http://localhost:8140 (`jan-burger / test123`), submit a registration, upload a diploma. 3. Open the behandel werkbak (http://localhost:8142, `merel-behandelaar / test123`) → the registration never appears (stuck at `OpenZaakAanmaken`; once that's fixed, stuck at `WachtOpDocumenten` because the DMN 404s). 4. Open the openbaar register (http://localhost:8141) → empty even for approved registrations. **Environment:** `main` (at c8fdfbb), Fedora, rootless Podman via `make local` (`infra/docker-compose.local.yml`). Reproduced live in-session; the CI `verify-*` stack is unaffected because those scripts do all three setup steps. **Logs / evidence:** - ACL → OpenZaak `POST /zaken` → `400` (placeholder zaaktype); domain `OpenZaakAanmaken` "leaving it for redelivery". - Flowable `POST /runtime/tasks/{id}` (complete WachtOpDocumenten) → `404 {"exception":"No decision found for key: diploma-eligibility ..."}`. - `dmn-repository/decisions` total 0; NRC has 0 abonnementen; `register_projection` empty; event-subscriber log shows only startup. - Confirmed fixable in-session: seed zaaktype at the OpenZaak container IP (single-label host fails OpenZaak's URLValidator) + recreate `acl` pointed at it; deploy the DMN via `dmn-api`; POST the abonnement to NRC pointed at `http://<es-ip>:8080/notifications` with `Bearer big-reference-notifications`. After all three, a fresh submit flowed to the werkbak and the openbaar register correctly. These manual fixes are ephemeral (lost on the next `make down && make local`). **Proposed fix:** bring `docker-compose.local.yml` bring-up up to parity with the `verify-*` setup — deploy the DMN in `flowable-init`, seed + publish a BIG zaaktype and wire the ACL to it (allow overriding `Acl__OpenZaak__BaseUrl`), and register the NRC abonnement on startup — so a fresh `make local` completes the flow. Follows S-B01/S-B02/S-B03. **Suspected area:** area:infra (also touches workflow / event-subscriber / acl wiring, but the fix lives in the local compose + seed).
not added the type:bugarea:infra labels 2026-07-22 08:41:29 +00:00
not added this to the Iteration 2 — Flow Completeness milestone 2026-07-22 08:44:15 +00:00
not closed this issue 2026-07-22 12:44:30 +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#110