Closed johannesbattjes closed 1 year ago
Het niet kunnen wijzigen van het documenttype is onwerkbaar. Het kunnen wijzigen van metadata van documenten is nodig om het digitale archief goed te kunnen bijhouden. Behoudens het unieke documentkenmerk zie ik eigenlijk geen metadata die je niét zou moeten kunnen wijzigen na initiële registratie.
Dit gaat dus over de relatie Informatieobject is van informatieobjecttype, niet over het informatieobjecttype in de ZTC.
Op zich vind ik de userstory aannemelijk. Wel moet het gedrag van de API dan zo zijn dat wanneer het informtatieobjecttype aangepast wordt ook de overige attributen die door dit type bepaald worden overgenomen worden.
Bijvoorbeeld vertrouwelijkheidsaanduiding. Stel dat ik eerst een informatieobject aanmaak van een type met vertrouwelijkheid "openbaar" en dit wordt later gewijzigd naar een type met vertrouwelijkheid "vertrouwelijk" moet dat wel bijgewerkt worden. Anders zijn vertrouwelijke documenten ineens openbaar terwijl dat niet de bedoeling is.
Ook mag alleen maar een geldig informatieobjecttype gekozen worden.
@hdksi Zie jij nog dingen die ik over het hoofd zie?
@michielverhoef @hdksi Ik wil graag informeren hoe het staat met de voortgang rond dit punt van Johannes. We ondervinden hiervan al in testfase de ongemakken van (eigenlijk niet te doen). Bij ingang van de omgevingswet wanneer iedereen in productie gaat moet dit eigenlijk opgelost zijn anders hebben we als organisaties een probleem. Het is namelijk niet reëel om er vanuit te gaan dat documenten altijd correct binnenkomen met het juist documenttype. Bij het OLO lukte dit tot het niveau van 70% zuiverheid, bij het DSO denk ik dat we dit percentage zeker niet gaan halen. Daarnaast moet corrigeren in mijn ogen ook altijd mogelijk zijn. Hebben graag een antwoord zodat we weten waar we aan toe zijn, hopen natuurlijk op een oplossing voor live gang.
Ik zou heel voorzichtig zijn met dit soort business rules in API's. Het kunnen corrigeren van fouten is in de praktijk regelmatig nodig. En inderdaad kan dat betekenen dat gerelateerde gegevens mee aangepast moeten worden.
Dit gaat dus over de relatie Informatieobject is van informatieobjecttype, niet over het informatieobjecttype in de ZTC.
Op zich vind ik de userstory aannemelijk. Wel moet het gedrag van de API dan zo zijn dat wanneer het informtatieobjecttype aangepast wordt ook de overige attributen die door dit type bepaald worden overgenomen worden.
Bijvoorbeeld vertrouwelijkheidsaanduiding. Stel dat ik eerst een informatieobject aanmaak van een type met vertrouwelijkheid "openbaar" en dit wordt later gewijzigd naar een type met vertrouwelijkheid "vertrouwelijk" moet dat wel bijgewerkt worden. Anders zijn vertrouwelijke documenten ineens openbaar terwijl dat niet de bedoeling is.
Ook mag alleen maar een geldig informatieobjecttype gekozen worden.
@hdksi Zie jij nog dingen die ik over het hoofd zie?
Dit staat al lang open, maar is nog steeds actueel.
Wat betreft het overnemen van vertrouwelijkheid, dat hoeft volgens mij niet de verantwoordelijkheid van de DRC te zijn. Dit kan, afhankelijk van de use-case, de verantwoordelijkheid zijn van de client-applictie of zelfs van de eindgebruiker. Het lijkt me juist onwenselijk als de DRC "klakkeloos" de vertrouwelijkheid van het nieuw gekozen informatieobjecttype overneemt. Bij een hoger vetrouwelijkheidsniveau is dat misschien correct, maar bij een lager niveau mogelijk juist niet. Ook is het mogelijk dat er bij het specifieke document al bewust een ander niveau is gekozen dan geconfigureerd in het oorspronkelijke informatieobjecttype.
Dus als de DRC dat automatisch gaat doen, wordt de oplossing complexer terwijl het eindresultaat niet per se beter is. Ik kan me wel voorstellen dat client-applicaties een waarschuwing geven als de eindgebruiker een informatieobjecttype kiest met een ander vertrouwelijkheidsniveau. Maar dat is dan een implementatiekeuze in de client-applicatie.
Misschien even aanvullend op het verhaal van MNIJ hoe dit nu dagelijks verloopt, zijn verhaal sluit daar het beste op aan. Wij zien de vertrouwelijkheid bij een informatieobjecttype als “start” vertrouwelijkheid bij creatie of registratie. Deze is in tegenstelling tot wat de ZTC-OW aangeeft altijd lager dan openbaar, dit doen we al 10 jaar ivm met privacy gaan we uit van bewust openbaar.
We starten met zelf te creëren documenten op “Vertrouwelijk” of “intern”, alleen intern zichtbaar. Te ontvangen documenten starten met “Beperkt openbaar”, zodat zaak betrokken en aanvrager hun informatieobjecten zien op de persoonlijke site. Naarmate een document een andere “status” krijgt verandert de vertrouwelijkheid mee. Een begeleidende brief die adresgegevens bevat zal dan ook bij status “Definitief/Verzendbaar” nooit verder komen als “beperkt openbaar” en alleen zichtbaar op persoonlijke pagina’s. Het besluit dat geen persoonsgegevens bevat of geanonimiseerd is zal “openbaar” krijgen. Ontvangen stukken worden na redigeren omgezet naar eenduidig archiefwaardig formaat en op “Openbaar” worden gezet. Deze "Openbare" stukken worden gepubliceerd en worden zichtbaar in een digitaal bouwarchief dat voor iedereen toegankelijk is. Wijzigen van informatieobjecttype zou dan geen invloed moeten hebben.
Voor wat betreft vertrouwelijkheid: in zowel de documentatie bij de standaard als in het RGBZ vind ik niet expliciet terug waarvoor Enkelvoudiginformatieobject.vertrouwelijkheidaanduiding
nu precies bedoeld is. Wel constateer ik dat het vullen hiervan volgens de Documenten API niet verplicht is, terwijl die verplichting wel geldt het vullen van Informatieobejcttype.vertrouwelijkheidaanduiding
in de Catalogi API.
Ik maak daaruit op dat Enkelvoudiginformatieobject.vertrouwelijkheidaanduiding
bedoeld is als een soort 'override' voor gevallen waarin de vertrouwelijkheid van een specifiek document afwijkt van de standaardwaarde die geldt voor documenten van het bijbehorende type. Is die aanname correct?
Zo ja, dan lijkt het me allereerst goed dit in de documentatie te verduidelijken. Het zou het oplossen van deze user story in ieder geval vergemakkelijken: het eventueel aanpassen van Enkelvoudiginformatieobject.vertrouwelijkheidaanduiding
naar aanleiding van het bijwerken van Enkelvoudiginformatieobject.informatieobjecttype
is dan noch gewenst, noch nodig.
Verder zie ik geen bezwaren tegen het laten vervallen van de gedragsspecificatie die het wijzigen van informatieobjecttypen verhindert.
Afgaande op de reactie van @hdksi hierboven:
enkelvoudiginformatieobjecten.vertrouwlijkheidsaanduiding
.
Default geldt de waarde van het informatieobjecttype uit de Catalogi API. Afwijkingen kunnen worden vastgelegd in de Documenten API en hoeven dan niet aangepast te worden wanneer het zaaktype aangepast wordt.Eens. Alleen bedoel je denk ik Informatieobjecttype waar je zaaktype schrijft.
Ja, suf, dank je voor de aanvulling!
informatieobjecttype wijzigbaar maken. Dit is een aanpassing van DRC-001
Om precies te zijn, de aanpassing betreft het weglaten van de laatste regel van DRC-001:
Als er geprobeerd wordt om het informatieobjecttype
van een bestaand EnkelvoudigInformatieObject
bij te werken (enkelvoudiginformatieobject_update
, enkelvoudiginformatieobject_partial_update
), dan MOET het DRC antwoorden met een HTTP 400
foutbericht.
Vanuit het patroon zaak(type) bepaalt default vertrouwelijkheid informatieobject(type) nog even kritisch te kijken naar de verplichting een vertrouwelijkheidsaanduiding mee te geven bij creatie van een informatieobjecttype in de Catalogi API.
Dit is ook een wens vanuit de gemeente Nieuwegein
Dit is een issue die ik ook al bij de leverancier heb neergelegd. Het is absoluut niet handig dat wijzigingen/toevoegingen van informatieobjecttypen niet doorwerken in de inmiddeels aangemaakte zaken. De wens komt vaak voor vanuit een constatering in een bestaande zaak. De gewenste en doorgevoerde aanpassing werkt vervolgens niet door in desbetreffende zaken. Vervolgens moet er dan in de bestaande zaken een niet passend alter worden gekozen. Dit voor de eenduidigheid en werkbaarheid gewoonweg vervelend. Het kunnen aanpassen van informatieobjecttypen welke in reeds aangemaakte zaken doorwerken is zeer wenselijk. Het voorstel wordt door de gemeente Nunspeet van harte indersteund.
Vanuit het patroon zaak(type) bepaalt default vertrouwelijkheid informatieobject(type) nog even kritisch te kijken naar de verplichting een vertrouwelijkheidsaanduiding mee te geven bij creatie van een informatieobjecttype in de Catalogi API.
@hdksi Regel drc-007 zegt hier het één en ander over.
Deze regel eist niet dat de vertrouwelijkheidsaanduiding die bij het InformatieObject wordt meegegeven gelijk of hoger moet zijn dan de waarde in het Informatieobjecttype. Lijkt mij wel wenselijk. Eens? Zo ja, dan zou ik bij het wijzigen van het Informatieobjecttype bij een bestaand Informatieobject ook een validatieregel toevoegen die checkt dat na de wijziging InformatieObject.InformatieObjectType.vertrouwelijkheidaanduiding
niet een hogere vertrouwelijkheid heeft dan InformatieObject.vertrouwelijkheidaanduiding
.
informatieobjecttype wijzigbaar maken. Dit is een aanpassing van DRC-001
Om precies te zijn, de aanpassing betreft het weglaten van de laatste regel van DRC-001:
~Als er geprobeerd wordt om het
informatieobjecttype
van een bestaandEnkelvoudigInformatieObject
bij te werken (enkelvoudiginformatieobject_update
,enkelvoudiginformatieobject_partial_update
), dan MOET het DRC antwoorden met eenHTTP 400
foutbericht.~
Ook zal DCR-001 verder worden aangepast zodat ook bij het wijzigen van het type van een bestaand informatieobject er wordt gevalideerd of het nieuwe type bestaat c.q. geldig is.
Deze regel eist niet dat de vertrouwelijkheidsaanduiding die bij het InformatieObject wordt meegegeven gelijk of hoger moet zijn dan de waarde in het Informatieobjecttype. Lijkt mij wel wenselijk. Eens? Zo ja, dan zou ik bij het wijzigen van het Informatieobjecttype bij een bestaand Informatieobject ook een validatieregel toevoegen die checkt dat na de wijziging InformatieObject.InformatieObjectType.vertrouwelijkheidaanduiding niet een hogere vertrouwelijkheid heeft dan InformatieObject.vertrouwelijkheidaanduiding.
Bij nader inzien zou ik voor nu toch maar geen extra validatieregel willen toevoegen, ook indien mogelijk wenselijk, omdat de aanpassing niet backwards compatible is.
Bij deze het voorstel voor de aanpassing van DRC-001 in de vorm van een pull request: #2203.
@johannesbattjes Is de voorgestelde oplossing naar wens (zie pull request: https://github.com/VNG-Realisatie/gemma-zaken/pull/2203)?
@MNIJ @Jinze82 @johannesbattjes @NolWitte is dit voorstel #2203 voldoende om dit issue op te lossen?
@MatthijsBekendam zoals besproken inbouwen in de referentie implementatie
Verwerkt in PR https://github.com/VNG-Realisatie/documenten-api/pull/201
Hoi @michielverhoef ik snap niet wat ik moet lezen in #2033 - dat is een pull request en ik weet niet hoe dat werkt. Het gaat toch om de aanpassing van een business rule? De aanpassing van Henri lijkt me goed: "Om precies te zijn, de aanpassing betreft het weglaten van de laatste regel van DRC-001: Als er geprobeerd wordt om het informatieobjecttype van een bestaand EnkelvoudigInformatieObject bij te werken (enkelvoudiginformatieobject_update, enkelvoudiginformatieobject_partial_update), dan MOET het DRC antwoorden met een HTTP 400 foutbericht. Ook zal DCR-001 verder worden aangepast zodat ook bij het wijzigen van het type van een bestaand informatieobject er wordt gevalideerd of het nieuwe type bestaat c.q. geldig is."
@johannesbattjes Het gaat om pull request #2203 en niet om #2033 waarnaar jij verwijst. Als het goed is, zijn de aanpassingen die jij noemt opgenomen in de eerst genoemde pull request (#2203).
Hoi Henri, dank voor de correctie maar mijn punt was dat ik niet wist wat ik moet doen met een pull request (dacht dat dat iets voor developers is) en ik zag niets inhoudelijks op genoemde pagina. Maar nu in tweede instantie zie ik dat je kunt zien bij "files changed" wat de wijziging is. Ziet er goed uit. Weer wat geleerd, dank je.
De Documenten API 1.3.0 is uitgerold: https://documenten-api.vng.cloud/api/v1/schema/
In de documentatie is DRC-001 aangepast volgens het voorstel van @HenriKorver : https://vng-realisatie.github.io/gemma-zaken/standaard/documenten/#drc-001
@michielverhoef @HenriKorver nog een opmerking: in DRC-010 staat dit
Bijwerken van documenten (drc-010) overgenomen uit de openapi.yaml Bij het werken wordt gevalideerd of:
Een correcte lock waarde aanwezig is (zie (drc-009) De status NIET definitief is Het informatieobjecttype niet gewijzigd wordt
Moet de laatste opmerking hier niet weg?
Dank voor de oplettendheid @johannesbattjes . Ik heb het gelijk aangepast.
Enkelvoudiginformatieobject - informatieobjecttype ("documenttype") is een verplicht veld. Dat betekent dat zodra het informatieobject wordt aangemaakt dit type moet worden meegegeven. Het informatieobjecttype mag niet gewijzigd worden.
Dit geeft een probleem: Als een document automatisch wordt toegevoegd, bijvoorbeeld uit een webformulier, en de behandelaar constateert dat de toekenning van het informatieobjecttype niet klopt, dan kan hij/zij dit niet meer wijzigen. Als het documenttype door een iniatiefnemer wordt bepaald (bijvoorbeeld in het omgevingskloket van DSO) en de zaakbehandelaar constateert dat het informatieobjecttype niet klopt dan kan hij/zij dit niet meer wijzigen.
Voorstel: maak informatieobjecttype wijzigbaar