Repository navigation
[OpenSpec] zgw-catalogi-served #2542
Copy link
Copy link
Open
Labels
openspecOpenSpec-driven changeOpenSpec-driven changeopenspec:tasksOpenSpec phase: TasksOpenSpec phase: Tasks
Description
⚠️ OpenSpec-managed issue — this content is automatically synced
from theopenspec/directory. Manual edits will be overwritten on next sync.
Artifacts
Summary
Serve the read half of the VNG Catalogi API (catalogussen and informatieobjecttypen) over the OpenRegister schema that holds the organisation's document types, so a Documenten API needs no second catalogue.
- Rows: Woo row 17.18 "The product serves the catalogue a standard document store needs, so no second catalogue is kept" (not statutory).
- Wave: 2.
- Depends on:
filinq/document-register(outside this plan; [OpenSpec] document-register filinq#481) for thedocumentTypeschema, and reusesintegriq/objecten-api-facade(no issue; https://github.com/ConductionNL/integriq/tree/development/openspec/changes/objecten-api-facade). - Decision: none governs this row directly; the TOOI source for the information categories follows D3 (2026-10-05), the TOOI lists live once, in OpenRegister's concept register.
Build rules: openspec/woo-build-rules.md
Specs
Tasks
- Implement
- Test: PHPUnit
CatalogiBindingTest::testNoBindingResolvesToNull,::testTheDefaultFieldMap; a test that grepslib/Service/Catalogi/for an app id (filinq,docudesk) and fails on a hit, asZgwSetCataloguedemands - Implement. Read
objecten-api-facadedesign D7 first; the handlers take their OpenRegister access as callables and the wiring class hands them the production side. - Test: PHPUnit
InformatieobjecttypeEndpointHandlerTest::testATypeIsServedWithItsOwnUrl,::testListsArePaged,::testWritesAnswer405,::testAnUnboundFacadeAnswersNotConfigured;CatalogusEndpointHandlerTest::testTheCatalogueResolves. Double OpenRegister'sObjectServicewithenvironmentAwareDoubleafter reading its realfindAll()andfind()signatures onopenregisterdevelopment. - Wiring:
CatalogiWiringTest::testEveryHandlerIsBuiltWithItsSeamsbootsApplication::register()and asserts no handler is autowired with a null seam. The objecten facade shipped exactly that defect once (every route 401 or 404); this test is why. -
testATypeIsServedWithItsOwnUrlmust be shown failing ondevelopmentbefore the change. Paste the failing line in the PR body. - Implement
- Test: PHPUnit
CatalogiTokenServiceTest::testAMissingScopeIsRefusedBeforeAnyRead;InformatieobjecttypeEndpointHandlerTest::testConceptTypesAreHiddenByDefault,::testAConceptReaderSeesConceptsWhenAsked - Implement. Read the TOOI scheme through OpenRegister's concept register service; read its real method signature on
openregisterdevelopmentand name it in the PR body. Do not bundle a copy of the category list (decision D3). - Test: PHPUnit
WooStarterSetTest::testOnlyMissingCategoriesAreCreated,::testAMissingSchemeRefuses;CatalogiAdminControllerTest::testANonAdminIsRefused; the route-reachability gate - Implement
- Test: Newman collection and Playwright spec above
- Own clone,
git checkout --no-track -b <branch> origin/development,TMPDIRa sibling outside the clone. - PHPUnit judged by the
Tests:line, or with--no-coverage; a green suite exits 1 without a coverage driver. -
run-hydra-gates.sh --base origin/development, counting the gates that ran. - Once before push:
COMPOSER_PROCESS_TIMEOUT=0 composer check:strict,npm run lint,npm run format,npm run check:l10n,npm run check:l10n-js,npm run check:manifest,npm run check:schema-l10n,npm run check:register. - CI runs the gates on the full tree; the coverage guard needs a test for every added statement.
-
openspec validate zgw-catalogi-served --type change --strictpasses. - One PR,
--base development; mergedevelopmentin, never rebase; noCo-Authored-Bytrailer. - Done means merged on
developmentwith CI green. Row 17.18 isproductiononly once a store release carries it.
Synced from openspec/changes/zgw-catalogi-served by OpenSpec workflow
App: integriq
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
openspecOpenSpec-driven changeOpenSpec-driven changeopenspec:tasksOpenSpec phase: TasksOpenSpec phase: Tasks
Activity
[-]zgw-catalogi-served: serve informatieobjecttypen so no second catalogue is kept[/-][+][OpenSpec] zgw-catalogi-served[/+]