2026-06-23 - 2026-09-23
Overview
1 Release published by 1 user
Published
v2026.07.0
2026.07.0
64 Pull requests merged by 2 users
Merged
#176 ci(deploy): deploy the stack to Talos on merge to main (closes #175)
Merged
#171 ci(k8s): gate the Helm chart in CI + a compose↔chart drift check (closes #168)
Merged
#172 docs(nav): publish every ADR and runbook, gated by a nav check (closes #169)
Merged
#167 S-24/#25 · Helm chart + Kubernetes deployment, and Caddy for the portals (#166)
Merged
#165 fix(e2e): bound the Playwright run and make a failed login say why (closes #161)
Merged
#164 S-26/#162 · Werkbak refreshes itself when a registration is ready for beoordeling
Merged
#158 S-15c · Enforce MFA on the medewerker (Keycloak) realm
Merged
#160 docs(architecture): import the FDS architecture decisions from the lab repo (closes #159)
Merged
#157 fix(observability): stop single-binary Tempo evicting its only ingester (closes #156)
Merged
#155 feat: read projection sourced from the register in Objecten (closes #153)
Merged
#154 feat(infra): Objecten publishes register events to NRC (closes #152)
Merged
#151 S-19a · ACL writes the RegisterRecord to Objecten on approval (closes #149)
Merged
#146 S-18c · RegisterRecord objecttype defined + registered (closes #141)
Merged
#148 perf: cap OpenZaak + NRC uWSGI workers — shrink verify-stack footprint (closes #147)
Merged
#145 fix: cap Objecten/Objecttypen uWSGI to 1 worker — unstarve verify-stack e2e (closes #144)
Merged
#143 S-18b · Objecten API up in compose, wired to Objecttypen (closes #140)
Merged
#142 feat(infra): Objecttypen API up in compose with a seeded static token (closes #139)
Merged
#138 feat(portal-beheer): ACL default-fill configuration editor (closes #131)
Merged
#137 ci: richer step reports via Gitea 1.27 job summaries (closes #136)
Merged
#135 ci: unstick verify-stack on Gitea 1.27 + act_runner 2.0.0 (closes #134)
Merged
#133 feat(portal-beheer): beheer portal + read-only catalogus viewer (closes #130)
Merged
#129 feat(obs): Prometheus metrics on /metrics + golden-signal Grafana dashboard (closes #124)
Merged
#128 ci: parallelise jobs at runner capacity >1, keep heavy jobs apart (closes #127)
Merged
#126 feat(obs): distributed traces across the .NET services (S-16b, closes #123)
Merged
#125 feat(infra): observability backplane — Tempo + Prometheus + Grafana (S-16a, closes #122)
Merged
#121 feat(domain): herregistratie reminder sweep on a Quartz cron (S-17, closes #18)
Merged
#119 feat: self-service resume of an existing registration after refresh (S-26, closes #111)
Merged
#118 feat(acl): resolve the zaaktype by identificatie, not a pinned URL (S-27, closes #113)
Merged
#114 fix(infra): docker-compose.local self-seeds zaaktype, DMN + NRC abonnement (closes #110)
Merged
#116 fix(e2e): run Playwright single-worker to stop OOM page-crash in verify-stack (closes #115)
Merged
#112 docs(backlog): add S-26 self-service resume slice (refs #111)
Merged
#109 feat(acl,domain): cancel the ZGW zaak on document-timeout expiry (S-10c, closes #106)
Merged
#108 feat(acl): diploma upload stored in the ZGW Documenten API (S-10b, closes #103)
Merged
#105 feat(workflow): document-wait task + 30-day timeout cancellation (S-10a, closes #102)
Merged
#101 feat(workflow): diploma-eligibility DMN routes foreign diplomas via CBGV-advies (S-13, closes #14)
Merged
#99 feat(workflow): beoordeling escalation to teamlead after 14 days (S-14, closes #15)
Merged
#97 fix(infra): engine-portable portal nginx resolver (closes #96)
Merged
#95 fix(infra): local event-subscriber Acl:BaseUrl parity (closes #94)
Merged
#93 feat(self-service): trek aanvraag in — withdrawal action (S-11c-2, closes #12)
Merged
#92 fix(infra): local compose parity + host-browser OIDC (closes #91)
Merged
#90 feat(bff): owner-scoped self-service withdraw endpoint (S-11c-1, refs #12)
Merged
#89 feat(domain): withdrawal cancels the registratie process (S-11b, refs #12)
Merged
#88 feat(domain): withdrawal — INGETROKKEN transition + endpoint (S-11a, refs #12)
Merged
#87 feat(behandel): behandel-portal — werkbak + beoordeling (closes #13)
Merged
#86 feat(#13): S-12c-2 — behandel decide → domain + complete workflow task
Merged
#85 feat(#13): S-12c-1 — behandel BFF auth + werkbak (ADR-0013)
Merged
#83 feat(#13): S-12b — Workflow Client user-tasks + Beoordelen userTask
Merged
#82 feat(#13): S-12a — beoordeling decision model (domain)
Merged
#81 chore(release): 2026.07.0
Merged
#79 feat(#78): one citizen reference across self-service and the openbaar register
Merged
#77 S-09b: Approval flow — temp admin endpoint + status transition to projection
Merged
#76 S-09: Openbaar Register portal — public lookup
Merged
#74 ci: speed up pipeline — NuGet cache + prebuilt Playwright image
Merged
#72 test(e2e): serve the portal + walking-skeleton Playwright e2e (closes #68)
Merged
#71 feat(portal-self-service): NL DS + DigiD self-service submit form (closes #67)
Merged
#70 feat(api-client): generated BFF client library (closes #66)
Merged
#69 feat(portal-self-service): Nx workspace + self-service app scaffold (closes #65)
Merged
#64 feat(bff): BFF with one endpoint per portal + OIDC validation (closes #8)
Merged
#61 feat(domain): BIG Domain Service skeleton with the Registration aggregate (closes #6)
Merged
#59 feat(event-subscriber): NRC event subscriber + rebuildable read projection (closes #7)
Merged
#57 feat(infra): wire OpenZaak → Open Notificaties notifications (closes #56)
Merged
#54 test(acl): ACL integration test against real OpenZaak (closes #46)
Merged
#52 test(acl): ACL mutation-score baseline with Stryker.NET (closes #47)
Merged
#50 ci(infra): Gitea Actions CI pipeline + full-stack compose smoke (closes #30)
1 Pull request proposed by 1 user
Proposed
#178 feat(k8s): terminate TLS in the cluster for a public domain (closes #177)
78 Issues closed from 2 users
Closed
#175 Deploy the stack to the Talos cluster when a PR is merged to main
Closed
#168 CI gates the Helm chart: k8s-lint plus a compose↔chart drift check
Closed
#169 Published docs omit every ADR after 0010 and all runbooks but ci.md
Closed
#166 ADR: Caddy serves the portals, replacing nginx
Closed
#25 S-24 · Helm chart (sketch) + Kubernetes manifests for the platform
Closed
#161 flaky: verify-e2e hangs on catalogus.spec.ts (beheerder ziet catalogus)
Closed
#162 S-26 · Live refresh on Werkbak when new registration is submitted
Closed
#132 S-15c · Enforce MFA on the medewerker (Keycloak) realm
Closed
#159 docs(architecture): import the FDS architecture decisions from the lab repo
Closed
#156 verify-tracing is flaky — Tempo intermittently drops spans under runner load
Closed
#153 S-19b-2 · Read projection sourced from Objecten instead of NRC zaak events
Closed
#152 S-19b-1 · Objecten publishes to NRC (broker, worker, kanaal, notifications config)
Closed
#150 S-19b · Read projection sourced from Objecten instead of NRC zaak events
Closed
#149 S-19a · ACL writes the RegisterRecord to Objecten on approval
Closed
#20 S-19 · ACL extension: write register-record to Objecten on approval
Closed
#141 S-18c · RegisterRecord objecttype defined + registered
Closed
#147 perf: cap OpenZaak + NRC uWSGI workers to shrink verify-stack footprint
Closed
#144 verify-stack e2e P0: Maykin uWSGI defaults (4×4 procs) starve the shared runner
Closed
#140 S-18b · Objecten API up in compose, wired to Objecttypen
Closed
#139 S-18a · Objecttypen API up in compose
Closed
#19 S-18 · Objecten + Objecttypen up in compose; Register objecttype defined
Closed
#131 S-15b · Beheer-portal — ACL default-fill configuration CRUD
Closed
#136 CI: use Gitea 1.27 job summaries for richer step reports (mutation, frontend, unit, e2e, verify-stack)
Closed
#134 verify-stack stuck in "waiting", never dispatched, after Gitea 1.27 + act_runner 2.0.0 upgrade
Closed
#130 S-15a · Beheer-portal skeleton + read-only catalogi viewer
Closed
#16 S-15 · Beheer-portal — catalogus & default-fill rules
Closed
#124 S-16c · Prometheus metrics + golden-signal Grafana dashboards
Closed
#127 chore(ci): parallelise CI jobs now the runner has capacity >1, without re-triggering the e2e OOM
Closed
#123 S-16b · Distributed traces across the .NET services
Closed
#122 S-16a · Observability backplane — Tempo + Prometheus + Grafana in compose
Closed
#17 S-16 · OpenTelemetry traces + Grafana dashboard
Closed
#120 ADR: Quartz.NET for time-triggered fleet sweeps (herregistratie reminder), pumps stay
Closed
#18 S-17 · Quartz.NET scheduler — herregistratie reminder sweep
Closed
#111 S-26 · Self-service: resume an existing registration after page refresh
Closed
#113 S-27 · ACL resolves its zaaktype by identificatie (not a pinned server-assigned URL)
Closed
#117 adr-proposal: ACL resolves its zaaktype by identificatie, not a pinned URL (S-27)
Closed
#110 S-B04 · docker-compose.local.yml can't complete the flow: unseeded zaaktype, undeployed DMN, no NRC abonnement
Closed
#115 verify-stack e2e crashes under memory pressure (2 Chromium workers on the 8GB runner)
Closed
#106 S-10c · Close the ZGW zaak on document-timeout expiry
Closed
#107 ADR: diploma upload stored in the ZGW Documenten API, fronted by the ACL (S-10b)
Closed
#103 S-10b · Diploma upload via ACL Documenten API + self-service portal
Closed
#104 ADR: document-wait timeout cancellation (S-10a) — Verlopen status + interrupting P30D timer worker
Closed
#102 S-10a · Document-wait task + 30-day timeout cancellation (workflow spine)
Closed
#11 S-10 · Document upload + boundary timer for document timeout (Flow 2)
Closed
#100 ADR: diploma-eligibility DMN evaluated as a BPMN businessRuleTask (S-13)
Closed
#14 S-13 · DMN decision: diploma eligibility (Flow 4)
Closed
#98 ADR: beoordeling escalation reassigns via external-worker task (S-14)
Closed
#15 S-14 · Beoordeling escalation (Flow 5)
Closed
#96 S-B03 · portal nginx resolver hardcodes Docker DNS → 502 on podman
Closed
#94 S-B02 · local event-subscriber missing Acl:BaseUrl (crashes at startup)
Closed
#12 S-11 · Withdrawal (Flow 3)
Closed
#91 S-B01 · docker-compose.local.yml missing domain + portals; host-browser OIDC unwired
Closed
#13 S-12 · Behandel-portal — werkbak + beoordeling
Closed
#84 adr-proposal: behandel-portal wiring — multi-realm BFF auth, werkbak source, decision→task correlation (S-12)
Closed
#80 chore: cut release 2026.07.0 (end of Iteration 1 — Walking Skeleton)
Closed
#78 adr-proposal: correlate the citizen reference with the openbaar register (enrich projection via the ACL)
Closed
#75 S-09b · Approval flow — temp admin endpoint + status transition to projection
Closed
#10 S-09 · Openbaar Register portal — public lookup
Closed
#73 chore(ci): speed up pipeline — NuGet cache + prebuilt Playwright image
Closed
#68 S-08d · Playwright happy-path e2e + compose serving of the self-service app
Closed
#67 S-08c · Self-service submit form — NL DS + DigiD auth + component tests + axe
Closed
#66 S-08b · Generated API client lib from the BFF OpenAPI spec
Closed
#65 S-08a · Nx monorepo + Angular tooling + CI Node lane
Closed
#9 S-08 · Self-Service portal (Angular, NL DS) — submit a registration
Closed
#63 ADR proposal · BFF OIDC validation + downstream boundaries
Closed
#8 S-07 · BFF with one endpoint per portal + OIDC validation
Closed
#6 S-05 · BIG Domain Service skeleton with the Registration aggregate
Closed
#60 ADR proposal · External-task job-worker pattern for the Domain Service ↔ Flowable
Closed
#62 mutation CI job fails at report upload — Gitea artifact backend returns 500
Closed
#7 S-06 · Event Subscriber + Read Projection (minimal)
Closed
#58 Consolidate ZGW integration checks into one full-stack CI stage
Closed
#56 S-01-c · Wire OpenZaak → Open Notificaties (enable & publish notifications)
Closed
#53 ADR proposal: provisioning strategy for the ACL OpenZaak integration test
Closed
#55 S-04c · Run the ACL integration test on the CI runner (compose-network)
Closed
#46 S-04a · ACL integration test against real OpenZaak (Testcontainers)
Closed
#51 ADR: Adopt Stryker.NET for .NET mutation testing
Closed
#47 S-04b · ACL mutation-score baseline (Stryker.NET)
Closed
#30 S-00-c · Gitea Actions CI (lint, build, unit, compose-up smoke)
64 Issues created by 1 user
Opened
#51 ADR: Adopt Stryker.NET for .NET mutation testing
Opened
#53 ADR proposal: provisioning strategy for the ACL OpenZaak integration test
Opened
#55 S-04c · Run the ACL integration test on the CI runner (compose-network)
Opened
#56 S-01-c · Wire OpenZaak → Open Notificaties (enable & publish notifications)
Opened
#58 Consolidate ZGW integration checks into one full-stack CI stage
Opened
#60 ADR proposal · External-task job-worker pattern for the Domain Service ↔ Flowable
Opened
#62 mutation CI job fails at report upload — Gitea artifact backend returns 500
Opened
#63 ADR proposal · BFF OIDC validation + downstream boundaries
Opened
#65 S-08a · Nx monorepo + Angular tooling + CI Node lane
Opened
#67 S-08c · Self-service submit form — NL DS + DigiD auth + component tests + axe
Opened
#68 S-08d · Playwright happy-path e2e + compose serving of the self-service app
Opened
#66 S-08b · Generated API client lib from the BFF OpenAPI spec
Opened
#73 chore(ci): speed up pipeline — NuGet cache + prebuilt Playwright image
Opened
#75 S-09b · Approval flow — temp admin endpoint + status transition to projection
Opened
#78 adr-proposal: correlate the citizen reference with the openbaar register (enrich projection via the ACL)
Opened
#80 chore: cut release 2026.07.0 (end of Iteration 1 — Walking Skeleton)
Opened
#84 adr-proposal: behandel-portal wiring — multi-realm BFF auth, werkbak source, decision→task correlation (S-12)
Opened
#91 S-B01 · docker-compose.local.yml missing domain + portals; host-browser OIDC unwired
Opened
#94 S-B02 · local event-subscriber missing Acl:BaseUrl (crashes at startup)
Opened
#96 S-B03 · portal nginx resolver hardcodes Docker DNS → 502 on podman
Opened
#98 ADR: beoordeling escalation reassigns via external-worker task (S-14)
Opened
#100 ADR: diploma-eligibility DMN evaluated as a BPMN businessRuleTask (S-13)
Opened
#102 S-10a · Document-wait task + 30-day timeout cancellation (workflow spine)
Opened
#103 S-10b · Diploma upload via ACL Documenten API + self-service portal
Opened
#104 ADR: document-wait timeout cancellation (S-10a) — Verlopen status + interrupting P30D timer worker
Opened
#106 S-10c · Close the ZGW zaak on document-timeout expiry
Opened
#107 ADR: diploma upload stored in the ZGW Documenten API, fronted by the ACL (S-10b)
Opened
#111 S-26 · Self-service: resume an existing registration after page refresh
Opened
#110 S-B04 · docker-compose.local.yml can't complete the flow: unseeded zaaktype, undeployed DMN, no NRC abonnement
Opened
#113 S-27 · ACL resolves its zaaktype by identificatie (not a pinned server-assigned URL)
Opened
#115 verify-stack e2e crashes under memory pressure (2 Chromium workers on the 8GB runner)
Opened
#117 adr-proposal: ACL resolves its zaaktype by identificatie, not a pinned URL (S-27)
Opened
#120 ADR: Quartz.NET for time-triggered fleet sweeps (herregistratie reminder), pumps stay
Opened
#122 S-16a · Observability backplane — Tempo + Prometheus + Grafana in compose
Opened
#124 S-16c · Prometheus metrics + golden-signal Grafana dashboards
Opened
#123 S-16b · Distributed traces across the .NET services
Opened
#127 chore(ci): parallelise CI jobs now the runner has capacity >1, without re-triggering the e2e OOM
Opened
#130 S-15a · Beheer-portal skeleton + read-only catalogi viewer
Opened
#131 S-15b · Beheer-portal — ACL default-fill configuration CRUD
Opened
#132 S-15c · Enforce MFA on the medewerker (Keycloak) realm
Opened
#134 verify-stack stuck in "waiting", never dispatched, after Gitea 1.27 + act_runner 2.0.0 upgrade
Opened
#136 CI: use Gitea 1.27 job summaries for richer step reports (mutation, frontend, unit, e2e, verify-stack)
Opened
#139 S-18a · Objecttypen API up in compose
Opened
#140 S-18b · Objecten API up in compose, wired to Objecttypen
Opened
#141 S-18c · RegisterRecord objecttype defined + registered
Opened
#144 verify-stack e2e P0: Maykin uWSGI defaults (4×4 procs) starve the shared runner
Opened
#147 perf: cap OpenZaak + NRC uWSGI workers to shrink verify-stack footprint
Opened
#149 S-19a · ACL writes the RegisterRecord to Objecten on approval
Opened
#150 S-19b · Read projection sourced from Objecten instead of NRC zaak events
Opened
#152 S-19b-1 · Objecten publishes to NRC (broker, worker, kanaal, notifications config)
Opened
#153 S-19b-2 · Read projection sourced from Objecten instead of NRC zaak events
Opened
#156 verify-tracing is flaky — Tempo intermittently drops spans under runner load
Opened
#159 docs(architecture): import the FDS architecture decisions from the lab repo
Opened
#161 flaky: verify-e2e hangs on catalogus.spec.ts (beheerder ziet catalogus)
Opened
#162 S-26 · Live refresh on Werkbak when new registration is submitted
Opened
#163 ADR: werkbak live refresh — client-side polling, not push (refs #162)
Opened
#166 ADR: Caddy serves the portals, replacing nginx
Opened
#168 CI gates the Helm chart: k8s-lint plus a compose↔chart drift check
Opened
#169 Published docs omit every ADR after 0010 and all runbooks but ci.md
Opened
#170 ADR: production posture for the Kubernetes deployment — secrets, HA, backup
Opened
#173 docs are never built or published — no mkdocs workflow exists
Opened
#174 Stryker runs the ACL integration tests in its initial run — the mutation score is measured with 8 failing tests
Opened
#175 Deploy the stack to the Talos cluster when a PR is merged to main
Opened
#177 ADR proposal: publish the portals over TLS from an in-cluster Caddy edge