Skip to content

fix(property-source): the BRP and KvK bindings ask the way their registries answer - #2665

Merged
rubenvdlinde merged 1 commit into
developmentfrom
refactor/r2-brp-source-reads-haalcentraal
Oct 12, 2026
Merged

rubenvdlinde merged 1 commit into
developmentfrom
refactor/r2-brp-source-reads-haalcentraal

Conversation

@rubenvdlinde

@rubenvdlinde rubenvdlinde commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

What

The brp and kvk property sources could not read a record from their own seeded sources.

  • They asked /brp/{bsn}, /brp/suggest, /kvk/{kvkNummer} and /kvk/suggest. Haal Centraal BRP Personen v2 takes a POST to /personen. KvK Zoeken v2 takes a GET on /zoeken. Neither registry has the paths the bindings used.
  • They read a flat record. The registries answer an envelope: personen and resultaten.

The unit tests passed because they handed the gateway double a made-up flat record.

Now:

  • BrpPropertySource::resolve posts a RaadpleegMetBurgerservicenummer question to /personen and returns the person. The number travels in the body, never in the URL. fields in the declared configuration overrides the default field list, because a municipality's authorisation decides which fields it may ask.
  • BrpPropertySource::suggest answers only for a whole burgerservicenummer and asks the registry nothing otherwise. Haal Centraal has no free search.
  • KvkPropertySource::resolve and suggest use /zoeken, by kvkNummer and by naam. resolve returns the head office row of that number.
  • RegistrySourceGateway::read takes an optional JSON body and then posts.

Why now

Dossiq held the working wire knowledge in its own BRP and KvK clients. Those clients leave dossiq (ADR-118, hydra design section 5). This is the integriq half of that pair. The dossiq halves: ConductionNL/dossiq#3819 retires the KvK client, and a later dossiq PR moves the one BRP caller onto this binding.

Verified

  • Red first: RegistryProviderContractTest reads the mock answers out of lib/Settings/register.d/brp-haalcentraal-source.json and kvk-source.json. Against development 5 of its 7 tests failed, 3 of them with "returned no record" on the shipped answer (refactor/r2/logs/b1-red.log, exit 2).
  • Green: tests/Unit/PropertySource, 35 tests, 99 assertions, exit 0. Includes a new RegistrySourceGatewayTest for the GET and POST paths.
  • phpcs (0 errors), phpmd and phpstan on the three changed lib files: exit 0.
  • composer check:strict did not get a build slot before hand-back, so it has not run on this head. CI is the full check.
  • Not verified: a call to the Haal Centraal proefomgeving or the KvK test API. That needs credentials on the sources and is owed as a live pass.

Rollout

No schema, route or version change. Nothing to configure.

Open

Whether the call engine's mock mode answers a POST the same as a GET is not checked here. The live pass covers it.

…stries answer

The bindings asked /brp/{bsn} and /kvk/{nummer}, paths neither registry has,
and read a flat record neither returns, so they could not read the mock
answer their own seeded sources ship. BRP now posts
RaadpleegMetBurgerservicenummer to /personen, KvK asks /zoeken. The contract
test reads the answers out of the shipped source fragments.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/integriq @ 64da324

Check PHP Vue Security License Tests
lint ✅
phpcs ✅
phpmd ✅
psalm ✅
phpstan ✅
phpmetrics ✅
eslint ✅
stylelint ✅
build ✅
build ✅
check-specs ✅
test-l10n ✅
format ✅
check-schema-l10n ✅
check-l10n-js ✅
composer ✅ ✅ 143/143
npm ✅ ✅ 647/647
app:check-code ⏭️
info.xml ✅
REUSE ❌
lockfile sync ✅
PHPUnit ✅ 5447/5447 · 1 skipped
Newman ✅ 130/130
Playwright ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development.
Hydra gates ✅
Hydra gates (axe) ✅

Quality workflow — 2026-10-12 13:32 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit a4a22ca into development Oct 12, 2026
47 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant