The ZGW Documenten API property is indicatieGebruiksrecht (camelCase); the
all-lowercase key was silently dropped on write (DRF camel-case mapping),
leaving the field null so the zaak still could not close. Correct the JSON
name on the DTO and both assertions to match the ZGW spec.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Records 'no usage-rights restrictions' explicitly so OpenZaak allows the
related zaak to be closed on behandelaar approval, fixing the verify-stack
e2e regression introduced by S-10b diploma upload.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The behandelaar approval closes the zaak via OpenZaak. A related
informatieobject with indicatieGebruiksrecht left null makes OpenZaak
reject the close (400 indicatiegebruiksrecht-unset), surfacing as a 500
and failing the registration e2e flow.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Records the ACL-fronted Documenten create+relate, the base64-JSON transport chosen
over proposal #107's multipart, the informatieobjecttype seeding, and the S-10c
(zaak-close) carve-off.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- ACL integration test: stores a real document against a published Diploma
informatieobjecttype and asserts it is persisted (bestandsnaam, informatieobjecttype,
bestandsomvang) and related to the zaak.
- e2e: the registration journey now selects a PDF and uploads it (setInputFiles)
before the behandelaar step.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replaces the S-10a stub button with a labelled file input (accept application/pdf);
the component base64-encodes the chosen file client-side and posts it (with its name
and type) keyed by the reference, confirming on success and surfacing a retryable
failure. The upload button stays disabled until a file is chosen.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
RED: after submitting, the citizen picks a PDF and uploads it; the component base64-
encodes it client-side and posts { contentBase64, fileName, contentType } keyed by the
reference, then confirms. Replaces the S-10a stub button.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The self-service documents endpoint takes { contentBase64, fileName, contentType }
as JSON (bsn from the token) and forwards it via IDomainClient.ProvideDocumentsAsync.
Regenerates openapi.json + the Angular client (postSelfServiceRegistrationsIdDocuments
now takes a ProvideDocumentsRequest body).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
RED: the self-service documents endpoint takes the base64 file (+ fileName/contentType)
as JSON — the portal encodes client-side — with the bsn from the token, and forwards
all of it to the domain. IDomainClient.ProvideDocumentsAsync grows accordingly.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
IAclClient.StoreDiplomaAsync + AclHttpClient (base64 JSON to the ACL /documenten
endpoint). ProvideDocuments stores the uploaded bytes against the zaak (when opened)
before completing WachtOpDocumenten; the domain endpoint accepts the file base64-encoded.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
RED: ProvideDocuments now carries the file bytes, stores them against the zaak via
IAclClient before completing the WachtOpDocumenten wait; owner-scoped; best-effort
when no zaak/process exists yet.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
seed_catalogus.py (OZ_PUBLISH) creates a "Diploma" informatieobjecttype, relates it
to the zaaktype (zaaktype-informatieobjecttypen, while both concept), publishes both,
and prints INFORMATIEOBJECTTYPE_URL. verify-domain captures it and recreates the ACL
with Acl__Defaults__InformatieobjecttypeUrl (placeholder default in compose otherwise).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
IZaakGateway.StoreDocumentAsync creates an enkelvoudiginformatieobject (base64
inhoud, buffered non-chunked body, no CRS) and relates it via zaakinformatieobjecten;
AclService.StoreDiplomaAsync default-fills the ZGW document fields (informatieobjecttype,
bronorganisatie, taal nld, creatiedatum); POST /documenten exposes it. Adds the
InformatieobjecttypeUrl default (wired in a following infra commit).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
RED: StoreDocumentAsync creates the informatieobject in the Documenten API (base64
inhoud, bestandsomvang, definitief) with a Bearer token and a buffered (non-chunked)
body and no CRS headers, then relates it to the zaak via zaakinformatieobjecten, and
surfaces an OpenZaak rejection.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>