B3891 - Wijzigbaarheid en historie

Besluit

  • Het verwerkingenlog is fysiek onwijzigbaar (immutable)
    • Er mogen geen record gewist of gemuteerd worden .
    • Er mogen wel records toegevoegd worden.
  • Het verwerkingenlog is logisch muteerbaar
  • Wijzigingen moeten traceerbaar zijn
    • Van verwerkingenlogentries moet formele historie bijgehouden worden

In de toelichting is uitgewerkt hoe het formele historie patroon geïmplementeerd kan worden zonder records te muteren.

Toelichting

De hieronder getoond uitwerking is absoluut geen implementatievoorschrift. Het beschreven patroon is een controle of de genomen besluiten in samenhang implementeerbaar zijn uitgaande van een immutable verwerkingenlog. Het is aan een leverancier om een besluit te nemen over toepassing van dit patroon.

We beschouwen een verwerking die we bewust allerlei wijzigingen laten ondergaan. We beginnen met de initiële entry:

Op de y-as is te zien dat de entry in het systeem geregistreerd is op t=0. Betekenis van de informatie van links naar rechts:

  • Verwerkingsactiviteit = BRP Registratie
  • Handeling = Registratie Foobar
  • Betrokken persoon: BSN 2308572
  • Bewaartermijn: Onbekend
  • Vertrouwelijkheid: Vertrouwelijk

Bij de configuratie van de software is iets verkeerd gegaan. Daardoor verwijst de verwerking naar de verkeerde verwerkingsactiviteit.

Op t=1 wordt een nieuwe entry opgenomen waarin de verwerkingsactiviteit gecorrigeerd is.

Op t=2 wordt de vertrouwelijkheid opgeheven.

Op t=3 wordt de bewaartermijn vastgelegd.

Op t=4 wordt de entry opnieuw vertrouwelijk gemaakt.

Op t=6 wordt de entry logisch verwijderd.

Op basis van een verwerkingenlog waarin alleen nieuwe records toegevoegd mogen worden zou dit op onderstaande wijze geïmplementeerd kunnen worden:

  • Record ID: Technisch ID dat het systeem gebruikt om de records uit elkaar te houden. Gebruikte nummers/format is slechts een voorbeeld en niet relevant.
  • ID: Logische identificator van de verwerking. Hoort volgens het gegevensmodel een UUID te zijn. Dat werd een beetje te groot, daarom afgekort tot 42.
  • Verwerkingsactiviteit: Dit is normaal gesproken het UUID van de verwerkingsactiviteit. Omwille van de leesbaarheid is die vervangen door de naam.
  • Handeling: Door systeem uitgevoerde handeling.
  • BSN: Dit is eigenlijk het objecttype Verwerkt object waarbij in het veld Objecttype ‘persoon’ staat, in het veld Soort Object ID ‘BSN’ en als Object ID het daadwerkelijke BSN. Omwille van de leesbaarheid ingekort tot alleen het BSN.
  • Bewaartermijn: Bewaartermijn in jaren.
  • Vertrouwelijkheid: Normaal, Vertrouwelijk of (Vertrouwelijkheid) Opgeheven.
  • Tijdstip registratie: Tijdstip waarop de entry in het verwerkingenlog is opgeslagen. Bepaald door het verwerkingenlog, niet door de loggende applicatie.
  • Vervallen: Ja of Nee.

Toelichting op de inhoud:

  • Het verwerkingenlog toont op deze manier altijd de laatste situatie.
  • Het logisch verwijderen kan alleen door een nieuw record op te nemen waarbij het veld Vervallen op Ja is gezet. Verplichte waarden zullen ingevuld moeten worden, maar doen er inhoudelijk niet meer toe.
  • De tabel hierboven is, omwille van de eenvoud, niet genormaliseerd .

Algoritme om meest actuele record eruit te filteren:

  1. Groepeer op logisch ID
  2. Sorteer op datum
  3. Bewaar alleen het meest actuele record
  4. Laat het meest actuele record weg indien het veld Vervallen = Ja