Logboek dataverwerkingen

Logius Standaard
Werkversie

Deze versie:
https://logius-standaarden.github.io/logboek-dataverwerkingen/
Laatst gepubliceerde versie:
https://logius-standaarden.github.io/logboek-dataverwerkingen/
Laatste werkversie:
https://logius-standaarden.github.io/logboek-dataverwerkingen/
Redacteurs:
Jeroen Mulder (Ministerie van Binnenlandse Zaken en Koninkrijksrelaties)
Pieter Teekens (Ministerie van Binnenlandse Zaken en Koninkrijksrelaties)
Nil Barua (Logius)
Martin van der Plas (Logius)
Auteurs:
Eelco Hotting (Ministerie van Binnenlandse Zaken en Koninkrijksrelaties)
Vedran Bilanovic (Ministerie van Binnenlandse Zaken en Koninkrijksrelaties)
Doe mee:
GitHub Logius-standaarden/logboek-dataverwerkingen
Dien een melding in
Revisiehistorie
Pull requests

Dit document is ook beschikbaar in dit niet-normatieve formaat: pdf


Samenvatting

De overheid wil voor burgers en bedrijven zo transparant mogelijk zijn in de omgang met hun gegevens. Daarom is het bij de informatieverwerking in datasets belangrijk om voor elke mutatie of raadpleging vast te leggen wie deze actie wanneer uitvoert, en waarom. Deze herleidbaarheid speelt zowel een rol in het kader van de wetgeving op het gebied van privacy als ook het streven naar openheid en transparantie bij de overheid. Voor een optimale samenwerking over organisaties en bronnen heen is voor deze logging een algemene standaard nodig.

Het project Logboek Dataverwerkingen (voorheen: Verwerkingenlogging) maakt deel uit van het actieplan Data bij de Bron en onderzoekt met Digilab in samenwerking met diverse overheidspartijen (ministeries, uitvoeringsorganisaties en gemeenten) of we op basis van de tot nu toe opgedane inzichten een overheidsbrede standaard kunnen vaststellen.

bron: Digitale overheid.nl

Verwijzingen

De Logboek Dataverwerkingen (LDV) standaard bestaat uit de volgende vier documenten:

Beschrijving van het document Gepubliceerde versie Werk versie Repository
1. De LDV Normatieve Standaard - Logboek dataverwerkingen (werkversie) logboek-dataverwerkingen
2. De Algemene Inleiding - De Algemene Inleiding (werkversie) logboek-dataverwerkingen_Inleiding
3. het Juridische Beleidskader - Juridisch Beleidskader (werkversie) logboek-dataverwerkingen_Juridisch-beleidskader
4. LDV Extensie voor objecten - Onderzoek logboek dataverwerkingen voor (geo) objecten logboek-dataverwerkingen-voor-objecten

Status van dit document

Dit is een werkversie die op elk moment kan worden gewijzigd, verwijderd of vervangen door andere documenten. Het is geen door het TO goedgekeurde consultatieversie.

1. Conformiteit

Naast onderdelen die als niet normatief gemarkeerd zijn, zijn ook alle diagrammen, voorbeelden, en noten in dit document niet normatief. Verder is alles in dit document normatief.

De trefwoorden AANBEVOLEN, MAG en MOET in dit document moeten worden geïnterpreteerd als in BCP 14 [RFC2119] [RFC8174] als, en alleen als deze in hoofdletters zijn weergegeven, zoals hier getoond.

2. Feedback en Issues

Dit onderdeel is niet normatief.

We moedigen gebruikers aan om meldingen of suggesties aan te maken via GitHub. Mocht dit niet mogelijk zijn, dan kunt u ook een e-mail sturen naar api@logius.nl.

3. Introductie

Deze sectie geeft een introductie op de standaard. Sectie 2 beschrijft de architectuur van systemen die de standaard gebruiken. Sectie 3 beschrijft de interfaces en het gedrag van componenten die de standaard volgen in detail.

3.1 Doel

De standaard Logboek Dataverwerkingen beschrijft een manier om technisch interoperabele functionaliteit voor het loggen van dataverwerkingen te implementeren, door voor de volgende functionaliteit de interface en het gedrag voor te schrijven:

Door Dataverwerkingen te loggen volgens de standaard kunnen organisaties het datagebruik verantwoorden. De standaard is gericht op verantwoording van Dataverwerkingen door Nederlandse (overheids)organisaties, gelet op onder meer de Algemene Verordening Gegevensbescherming en de Algemene Wet Bestuursrecht.

3.1.1 Werkingsgebied

Functioneel toepassingsgebied: De standaard Logboek Dataverwerkingen kan worden toegepast als data wordt verwerkt in geautomatiseerde systemen. Uitgangspunt is de verantwoordingsplicht van de overheid over de uitvoering van haar taken en de wetten en kaders die daarbij horen.

Organisatorisch werkingsgebied: Nederlandse overheden (Rijk, provincies, gemeenten en waterschappen) en instellingen uit de (semi-) publieke sector.

3.1.2 Doelgroep

De standaard heeft als doelgroep iedereen die zich bezighoudt met het implementeren van logging rond dataverwerkingen en beschrijft alleen wat relevant is voor de implementatie. Alle achterliggende overwegingen zijn te vinden in de Algemene inleiding en het Juridisch Beleidskader.

3.2 Terminologie

De volgende lijst beschrijft terminologie in de betekenis zoals deze wordt gebruikt in dit document.

Actie

Een Dataverwerking bestaat uit één of meerdere kleinere discrete stappen. Een Actie is één discrete stap binnen een Dataverwerking.

Applicatie

Iedere softwaretoepassing waarmee dataverwerkingen worden uitgevoerd.

Betrokkene

Als persoonsgegevens worden verwerkt, wordt de persoon van wie de organisatie persoonsgegevens verwerkt de 'Betrokkene' genoemd. Dat is dus degene over wie de dataverwerking gaat. De Betrokkene is degene op wie een persoonsgegeven betrekking heeft en die daarmee geïdentificeerd kan worden. Als identificeerbaar wordt beschouwd een natuurlijke persoon die direct of indirect kan worden geïdentificeerd, met name aan de hand van een identificator zoals een naam, een identificatienummer, locatiegegevens, een online identificator of van een of meer elementen die kenmerkend zijn voor de fysieke, fysiologische, genetische, psychische, economische, culturele of sociale identiteit van die natuurlijke persoon [NORA: De Privacy Baseline/Persoonsgegevens en bijzondere persoonsgegevens]

Dataverwerking

Iedere bewerking (of ieder geheel van bewerkingen) met betrekking tot gegevens, al dan niet uitgevoerd via geautomatiseerde procedures, zoals het verzamelen, vastleggen, ordenen, structureren, opslaan, bijwerken of wijzigen, opvragen, raadplegen, gebruiken, verstrekken door middel van doorzending, verspreiden of op andere wijze ter beschikking stellen, aligneren of combineren, afschermen, wissen of vernietigen van gegevens wordt opgevat als een Dataverwerking. Iedere Dataverwerking bestaat uit één of meerdere Acties. Voor verwerking van persoonsgegevens sluit dit aan bij de Algemene Verordening Gegevensbescherming (art. 4 lid 2).

Inzage

De Betrokkene heeft het recht om van de Verantwoordelijke uitsluitsel te verkrijgen over het al dan niet verwerken van hem betreffende persoonsgegevens en, wanneer dat het geval is, om inzage te verkrijgen van die persoonsgegevens ([AVG], art. 15, lid 1). Met Inzage doelen we op de handeling waarmee uitvoering wordt gegeven aan dat recht.

Logboek

Softwaretoepassing waarmee het log van Dataverwerkingen wordt bijgehouden.

Logregel

Resultaat van een enkele gebeurtenis in de logging NEN7513: Medische informatica - logging - vastleggen van acties op persoonlijke gezondheidsinformatie.

Register

Register waarin statische gegevens over Verwerkingsactiviteiten worden geregistreerd en ter beschikking gesteld, zoals het Register van Verwerkingsactiviteiten uit [AVG] art. 30.

Trace

Concept waarmee bij elkaar behorende Dataverwerkingen binnen de grenzen van een systeem worden gegroepeerd.

Verwerkingsverantwoordelijke

Een natuurlijke persoon of rechtspersoon, een overheidsinstantie, een dienst of een ander orgaan die/dat, alleen of samen met anderen, het doel van en de middelen voor de verwerking van gegevens vaststelt. Deze definitie is gebaseerd op ([AVG] art. 4, lid 7.), maar laat de verantwoordelijkheid betrekking hebben op de verwerking van álle gegevens, niet alleen persoonsgegevens.

| In de standaard wordt de Verwerkingsverantwoordelijke aangeduid als de Verantwoordelijke voor de leesbaarheid.

Verwerker

Een natuurlijke persoon of rechtspersoon, een overheidsinstantie, een dienst of een ander orgaan die/dat ten behoeve van de Verwerkingsverantwoordelijke persoonsgegevens verwerkt. Deze definitie is gebaseerd op ([AVG] art. 4, lid 8.), maar laat de verantwoordelijkheid betrekking hebben op de verwerking van álle gegevens, niet alleen persoonsgegevens.

Verwerkingsactiviteit

Verwerkingsactiviteiten zijn de activiteiten die een organisatie onderkent heeft als activiteiten waarbinnen Dataverwerkingen plaatsvinden.

3.3 Algemene werking van de standaard

Applicaties loggen metadata over Dataverwerkingen in een daarvoor ingerichte softwaretoepassing, het Logboek Dataverwerkingen. Elke Dataverwerking wordt apart gelogd. Dataverwerkingen binnen dezelfde context (bijvoorbeeld een organisatie of een verantwoordelijkheid binnen een organisatie) worden gegroepeerd met behulp van een Trace. Wanneer een Dataverwerking een andere Dataverwerking tot gevolg heeft worden de logregels van beide Dataverwerkingen aan elkaar gelinkt. Statische informatie over Dataverwerkingen kan worden opgezocht in Registers op basis van een verwijzing die in elke logregel wordt opgenomen.

3.3.1 Extensies

De standaard Logboek Dataverwerkingen specificeert de basis voor het loggen en aan elkaar relateren van Dataverwerkingen. Aanvullende functionaliteit wordt gestandaardiseerd in extensies:

  • Extensie Betrokkenen
    Met deze extensie wordt meer precies uitgewerkt hoe de identiteit van een Betrokkene wordt gerelateerd aan een verwerking, zodat actief informeren of het faciliteren van inzageverzoeken gestandaardiseerd mogelijk wordt. Dit is een nadere uitwerking van wat in de kern van de standaard al mogelijk is rond vastlegging van de Betrokkene.

  • Extensie Verwerkte Data
    Deze extensie specificeert een uniforme manier om verwerkte data in logregels op te nemen.

  • Extensie Inzage
    Deze extensie heeft een afhankelijkheid van de extensies Betrokkenen en Verwerkte Data, en biedt een interface op de logs vanuit een bepaald perspectief.

  • Extensie (geo)objecten
    Deze extensie specificeert hoe dataverwerkingen voor objecten kunnen worden vastgelegd en beheerd in een logboek.

3.3.2 Profielen

In een profiel worden aanvullende beperkingen en verplichtingen vastgelegd over het gebruik van de standaard. Op deze manier kan een groep organisaties interoperabiliteit organiseren. Voorbeelden van aanvullende afspraken in een profiel zijn:

  • De combinatie van extensies die gebruikt wordt
  • Afspraken over specifieke aanvullende eisen (bijvoorbeeld over TLS configuratie)
  • Afspraken over data-retentie
  • De wijze waarop pseudonimisering van persoonsgegevens plaatsvindt

3.3.3 Use case

Een typische use case voor het gebruik van de standaard is een samenwerking tussen meerdere organisaties die interoperabiliteit willen bereiken bij het loggen van Dataverwerkingen, om zo op eenduidige manier te kunnen verantwoorden over de dataverwerking.

4. Architectuur

Deze sectie beschrijft de algemene architectuur voor het loggen van dataverwerkingen bij toepassing van deze standaard.

4.1 Context

Op hoog abstractieniveau zijn voor het begrijpen van deze standaard de volgende componenten te onderscheiden:

Applicaties schrijven logs over Dataverwerkingen weg in een Logboek. Logregels in het Logboek verwijzen naar nadere informatie in een Register.

Een Dataverwerking kan plaatsvinden over de grenzen van een verantwoordelijkheid. In dat geval roept een Applicatie van Verantwoordelijke A de Applicatie van Verantwoordelijke B aan. Denk bijvoorbeeld aan het bevragen of muteren van gegevens via een Application Programming Interface (API).

Een Verantwoordelijke is bijvoorbeeld een organisatie, maar kan ook bestaan uit meerdere organisaties die allemaal onder dezelfde Verantwoordelijke werk uitvoeren. Denk daarbij aan Verwerkers in het kader van de AVG.

Iedere Verantwoordelijke kan een veelheid aan Applicaties, Logboeken en Registers gebruiken. Iedere Verantwoordelijke houdt alleen Logregels bij over eigen Dataverwerkingen. Op basis van metadata die tussen Applicaties wordt uitgewisseld is het mogelijk om bij elkaar behorende Logregels in meerdere Logboeken aan elkaar te relateren.

Registers bevatten statische informatie waar vanuit Logregels naar verwezen kan worden voor extra informatie over een Dataverwerking.

architecture
Figuur 1 Componenten in context

De standaard beschrijft de interfaces (in het diagram aangeduid met groene lijnen), en het gedrag van de componenten voor zover relevant om technisch interoperabel te worden.

De relatie tussen Logboek en Registers is los. Een Register hoeft niet digitaal te bestaan, wel moet een relatie gelegd kunnen worden vanuit de logregels in het Logboek naar aanvullende gegevens in Registers die de Logregels van nedere context voorzien.

4.2 Componenten

4.2.1 Applicatie

Een Applicatie is een softwarecomponent of groep van softwarecomponenten waarmee een Dataverwerking wordt uitgevoerd. Een Applicatie kan in allerlei vormen voorkomen. Voor de architectuur is niet relevant welke vorm de Applicatie heeft, het is slechts relevant dat dit de component is waar een Dataverwerking wordt uitgevoerd.

In een Applicatie is de context van de Dataverwerking bekend, zoals welke Verwerkingsactiviteit wordt uitgevoerd met de Dataverwerking. Het is dan ook de Applicatie die het loggen van de Dataverwerking initiëert.

4.2.2 Logboek

Een Logboek is een Applicatie met een specifieke rol in de context van deze standaard. In het Logboek worden Dataverwerkingen gelogd.

Dataverwerkingen in het Logboek zelf worden niet gelogd in een Logboek Dataverwerkingen, dit zou een oneindige recursiviteit veroorzaken.

4.2.3 Register

Een Register bevat statische informatie over Dataverwerkingen. Elk record in een Register heeft een unieke identificatiecode waarmee de Verwerkingsactiviteit kan worden aangeduid. Deze identificatiecode wordt gebruikt om vanuit een Logregel te linken naar aanvullende informatie in een Register.

Het Register kan een Applicatie zijn, in dat geval is het een Applicatie met een specifieke rol in de context van deze standaard. Eventueel kan het ook een Register in de vorm van een document zijn.

Dataverwerkingen in het Register worden gelogd in een Logboek Dataverwerkingen.

Voor alle Dataverwerkingen waarbij persoonsgegevens worden verwerkt is wettelijk geregeld dat de Verwerkingsactiviteiten moeten worden beschreven in het zogenaamde Register van Verwerkingsactiviteiten (AVG art. 30). Dit Register wordt verondersteld aanwezig te zijn in iedere organisatie die de standaard Logboek Dataverwerkingen toepast.

4.3 Scope

In deze sectie wordt de scope van de standaard afgebakend.

4.3.1 Vastlegging door Verantwoordelijke

Voor een juiste toepassing van de standaard is het nodig om strict de grenzen aan te houden die passen bij de Verantwoording die een Verantwoordelijke af moet kunnen leggen. Het wordt AANBEVOLEN om alle Dataverwerkingen te loggen alsof zij persoonsgegevens bevatten, ook wanneer de Dataverwerking geen persoonsgegevens betreft. Dit omdat het wettelijk kader dat leidt tot verantwoordingsplicht breder is dan alleen de AVG. Logregels kunnen ook worden gebruikt voor bijvoorbeeld het verantwoorden welke gegevens gebruikt zijn bij het nemen van een besluit.

Belangrijk uitgangspunt is dat een Verantwoordelijke alleen Logregels bijhoudt voor Dataverwerkingen die onder eigen verantwoordelijkheid plaatsvinden.

Een zogenaamde Verwerker die Dataverwerkingen uitvoert in opdracht van een Verantwoordelijke wordt in deze standaard beschouwd als deel van de Verantwoordelijke. Van welke Logboeken en Registers een Verwerker gebruik maakt is een implementatiekeuze.

4.3.2 Geen inhoudelijke uitwisseling tussen Verantwoordelijken

Er wordt met de standaard geen inhoudelijke informatie over Dataverwerkingen uitgewisseld tussen Verantwoordelijken. Dit is niet nodig, aangezien iedere Verantwoordelijke alleen Logregels over eigen Dataverwerkingen vastlegt. De informatie die wordt uitgewisseld is beperkt tot zogenaamde Trace-informatie waarmee Logregels van de ene Verantwoordelijke gerelateerd kunnen worden aan Logregels bij de andere Verantwoordelijke.

architecture
Figuur 2 Context Dataverwerking meegeven over Grenzen

4.3.3 Geen specificatie voor het beheren van Logboeken

De standaard specificeert een interface voor het wegschrijven van Logregels. Dit is het deel dat in alle organisaties hetzelfde moet zijn om interoperabel te zijn. Het beheren van een Logboek is vrij in te vullen per implementatie.

Dit betekent o.a. dat de standaard geen gedrag of interfaces specificeert voor:

  • het verwijderen of muteren van Logregels
  • het regelen van toegang tot het Logboek
  • het regelen van duurzame toegankelijkheid
  • het regelen van archivering en verwijdering van Logregels

4.3.4 Geen gegevens over gebruikers in Logregels

In Logregels ligt geen informatie vast over welke specifieke medewerker van de Verantwoordelijke ofwel de gebruiker de Dataverwerking heeft uitgevoerd. Deze informatie hoort niet in het Logboek maar in een auditlog, en is daarmee buiten scope van de standaard. Wel is het mogelijk om vanuit auditlogs de relatie te leggen naar specifieke Logregels in het Logboek. (toevoegen link naar Algemene inleiding, besluit over gebruikers)

4.4 Flows

4.4.1 Wegschrijven van een logregel na een Dataverwerking

Applicatie
Logboek
Dataverwerking in Applicatie
Schrijf logregel in Logboek
ack
Applicatie
Logboek

Deze transactie is geoptimaliseerd op eenvoud en snelheid, want deze heeft rechtstreeks invloed op de snelheid van Dataverwerkingen. Deze transactie moet schaalbaar zijn naar bijv. honderdduizenden transacties per seconde, o.a. omdat wanneer bij een enkele Dataverwerking meerdere Betrokkenen gerelateerd zijn, voor elk van deze Betrokkenen een logregel wordt weggeschreven.

4.4.2 Tonen van informatie over een Dataverwerking

Voor het op betekenisvolle manier tonen van informatie over Dataverwerkingen aan bijvoorbeeld een Betrokkene is het nodig om gegevens op te vragen uit zowel het Logboek als het Register. Deze flow mag wat complexer zijn, omdat deze niet voor alle vastgelegde data wordt uitgevoerd en het belang van de bevraging rechtvaardigt dat een bevraging wat langer kan duren.

Inzage Applicatie
Logboek
Register
Betrokkene vraagt om inzage
Vraag logregels van Betrokkene
logregels
Vraag Verwerkingsactiviteiten bij logregels
verwerkingsactiviteiten
Combineeer
Inzage Applicatie
Logboek
Register

5. Specificaties

Deze sectie geeft de specificatie voor de te gebruiken protocollen en interfaces en het verwachte gedrag van de componenten.

5.1 Protocollen

De protocollen die worden gebruikt tussen applicatie en logboek en voor het uitvoeren van transacties tussen applicaties worden niet voorgeschreven in de standaard. Dit biedt de vrijheid om de standaard toe te voegen aan vrijwel iedere softwareoplossing.

Het is AANBEVOLEN om het OpenTelemetry Protocol (OTLP) te gebruiken in de interactie tussen Applicatie en Logboek.

OpenTelemetry is een standaard en open source framework voor het beheren, genereren, verzamelen en exporteren van telemetriegegevens. Door het gebruik van deze open standaard kunnen leverancierspecifieke integraties voorkomen worden. OpenTelemetry is a CNCF incubating project.

Als gebruik wordt gemaakt van HTTP/1.1 [RFC9112] of HTTP/2 [RFC9113] voor het uitvoeren van dataverwerkingen in meerdere applicaties MOET gebruik worden gemaakt van de Trace Context specificatie voor het uitwisselen van metagegevens over Traces.

5.2 Component: Logboek

Voor ieder Logboek waarin Dataverwerkingen worden gelogd gelden de volgende specificaties voor gedrag en interface.

5.2.1 Gedrag

Het Logboek MOET TLS afdwingen op connecties volgens de binnen de organisatie gangbare standaard.

Het Logboek MOET het wegschrijven van elke logregel bevestigen.

5.2.2 Interface

De interface MOET de volgende velden implementeren:

Veld Type optioneel Omschrijving
trace_id 16 byte verplicht Unieke identificerende code van Trace die Dataverwerking volgt
span_id 8 byte verplicht Unieke identificerende code van Actie binnen de Dataverwerking
status_code enum verplicht Status van de Actie
name string verplicht Naam van de specifieke Actie binnen de Dataverwerking
start_time timestamp (ms) verplicht Tijdstip waarop de Actie gestart is
end_time timestamp (ms) verplicht Tijdstip waarop de Actie beëindigd is
parent_span_id 8 byte optioneel Unieke identificerende code aanroepende Actie binnen huidige Trace
foreign_operation message optioneel Unieke identificerende code aanroepende Actie bij externe partij
resource message optioneel Zie toelichting hieronder
attributes list verplicht Verplichte key-value pairs

Het veld span_id is in implementaties voor logging.

Het veld status_code is een enumeratie die de volgende waarden kan bevatten:

  • 0: STATUS_CODE_UNKNOWN:
  • 1: STATUS_CODE_OK:
  • 2: STATUS_CODE_ERROR:

Het veld foreign_operation is een message, opgebouwd uit de volgende velden:

Veld Type optioneel Omschrijving
trace_id 16 byte verplicht Unieke identificerende code van Trace bij externe partij
span_id 8 byte verplicht Unieke identificerende code van de Actie bij externe partij
entity URI verplicht URI verwijzend naar externe partij

Deze velden worden optioneel aangeboden door een aanroepende Applicatie, zie de specificatie van het gedrag van Applicaties.

Het veld resource is een bericht, opgebouwd uit het volgende veld:

  • attributes: Lijst attributen in de vorm van KeyValue pairs. De organisatie kan deze lijst gebruiken om een systeem, applicatie of component aan te duiden op een manier die binnen de organisatie gebruikelijk is. Dit zijn bijvoorbeeld naam en versienummer van een applicatie, of een verwijzing naar een record in een CMDB.

Het veld attributes is een lijst van key-value pairs, in een namespace met prefix dpl. (data processing log). De volgende attributen zijn mogelijk in de namespace core:

  • dpl.core.processing_activity_id: URI; Verwijzing naar Register met meer informatie over de Verwerkingsactiviteit
  • dpl.core.data_subject_id: Unieke identificerende code van de Betrokkene; versleuteld. Hiermee wordt aangeduid welke persoon Betrokkene is bij de verwerking, gelet op de AVG.
  • dpl.core.data_subject_id_type: Type van het veld data_subject_id. Dit is bijvoorbeeld BSN, Personeelsnummer of Vreemdelingennummer, of een URI naar een Register waar het veld meer precies wordt geduid.

5.3 Component: Applicatie

Voor iedere Applicatie waarin Dataverwerkingen plaatsvinden gelden de volgende specificaties voor gedrag.

5.3.1 Gedrag

Het gespecificeerde gedrag van Applicaties is erop gericht om de interface van het Logboek te gebruiken. Voor alle metadata geldt dat de specificatie te vinden is in de interface van het Logboek.

De Applicatie MOET een nieuwe Trace met een uniek trace_id starten voor iedere nieuwe Dataverwerking. In een Trace wordt de metadata bijgehouden die nodig is om de interface van een Logboek te gebruiken.

Een Dataverwerking kan uit meerdere acties bestaan. De applicatie MOET een voor iedere nieuwe actie een unieke span_id bijhouden. Iedere Trace heeft tenminste één span_id.

Wanneer een actie binnen een Applicatie is gestart door een andere actie, dan MOET de Applicatie de trace_id ongewijzigd overnemen en de span_id opnemen in een veld genaamd parent_span_id voor deze nieuwe actie.

Als een Dataverwerking meerdere Betrokkenen heeft dan MOET de applicatie voor iedere Betrokkene een aparte logregel wegschrijven. Een logregel kan naar 0 of 1 Betrokkenen verwijzen.

De Applicatie MOET voor iedere actie (span_id) een logregel wegschrijven via de interface van het Logboek.

De Applicatie MOET bijhouden of een actie geslaagd of mislukt is en dit per Dataverwerking als status (status_code) meegeven in de Logregel.

Als de Applicatie een verzoek van een andere Applicatie kan ontvangen, MOET de Applicatie metagegevens volgens de W3C Trace Context standaard kunnen verwerken en gebruiken in de eigen Trace(s). Metadata verkregen via W3C Trace Context MOET als foreign_operation worden opgenomen in de Logregel.

Als de Applicatie een verzoek aan een andere Applicatie kan versturen, MOET de Applicatie metagegevens volgens de W3C Trace Context standaard meegeven aan dit verzoek.

De Applicatie MAG NIET gebruik maken van Log Sampling.

5.3.1.1 Loggen van Dataverwerkingen met persoonsgegevens

Voor iedere Betrokkene moet iedere Dataverwerking apart gelogd worden. De Applicatie MOET in elke Logregel een identificerende code van de Betrokkene opnemen in dpl.core.data_subject_id en aan te duiden welk soort identificerende code wordt gebruikt in dpl.core.data_subject_id_type. Het wordt AANBEVOLEN om de identificerende code te pseudonimiseren.

Wanneer een enkele Dataverwerking meerdere Betrokkenen heeft, MOET de Applicatie voor elke Betrokkene een nieuwe actie met unieke span_id starten en deze onder de reeds bekende actie voegen door het span_id daarvan op te nemen als parent_span_id in de nieuwe actie. Voor iedere betrokkene wordt een child operation bijgehouden.

Let op: het kan zijn dat pas na een antwoord van een externe Applicatie bekend is dat er meerdere Betrokkenen zijn bij een Dataverwerking, in dat geval moeten na ontvangst van het antwoord de nieuwe acties ten behoeve van correcte logging gestart worden.

Iedere Dataverwerking van persoonsgegevens betreft een Verwerkingsactiviteit die in het Register van Verwerkingsactiviteiten moet zijn opgenomen. De Applicatie MOET in de Logregel een verwijzing naar de juiste Verwerkingsactiviteit in het Register van Verwerkingsactiviteiten opnemen in het veld dpl.core.processing_activity_id.

5.3.1.2 Loggen van Dataverwerkingen zonder persoonsgegevens

Dataverwerkingen zonder persoonsgegevens zijn over het algemeen niet als Verwerkingsactiviteit opgenomen in het Register van Verwerkingsactiviteiten. Het wordt aanbevolen om wel een soortgelijk register bij te houden voor alle Dataverwerkingen zonder persoonsgegevens.

Het wordt AANBEVOLEN dat de Applicatie in de Logregel een verwijzing naar de juiste Verwerkingsactiviteit in een daarvoor aan te wijzen Register opneemt in het veld dpl.core.processing_activity_id.

5.4 Component: Register

Voor ieder Register met statische gegevens over Dataverwerkingen gelden de volgende specificaties voor het gedrag en de interface.

5.4.1 Gedrag

Het Register MOET iedere relevante wijziging van een Verwerkingsactiviteit opslaan met een nieuwe identifier, zodat de dpl.core.processing_activity_id naar een eenduidige versie van de verwerkingsactiviteit verwijst.

5.4.2 Interface

Voor de werking van het Logboek is het niet nodig de Registers te ontsluiten met een API. Wel moeten de Verwerkingsactiviteiten die gebruikt worden in de logregels ook voorkomen in een register. Wanneer bij het raadplegen van de logregels geautomatiseerd context aan de logregels moet worden gegeven is een read-only interface op het Register nodig. Deze interface wordt hieronder gespecificeerd.

Nog uitwerken, REST API, Read-only OpenAPI 3 specificatie.

6. Lijst met figuren

A. Index

A.1 Begrippen gedefinieerd door deze specificatie

A.2 Begrippen gedefinieerd door verwijzing

B. Referenties

B.1 Normatieve referenties

[AVG]
Algemene Verordening Gegevensbescherming. Verordening (EU) 2016/679 van het Europees Parlement. 27 april 2016. URL: https://eur-lex.europa.eu/legal-content/NL/TXT/?uri=CELEX%3A32016R0679
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174
[RFC9112]
HTTP/1.1. R. Fielding, Ed.; M. Nottingham, Ed.; J. Reschke, Ed.. IETF. June 2022. Internet Standard. URL: https://httpwg.org/specs/rfc9112.html
[RFC9113]
HTTP/2. M. Thomson, Ed.; C. Benfield, Ed.. IETF. June 2022. Proposed Standard. URL: https://httpwg.org/specs/rfc9113.html
[trace-context-1]
Trace Context. Sergey Kanzhelev; Morgan McLean; Alois Reitbauer; Bogdan Drutu; Nik Molnar; Yuri Shkuro. W3C. 23 November 2021. W3C Recommendation. URL: https://www.w3.org/TR/trace-context-1/
Logius Standaard - Werkversie
Syntax error in graphmermaid version 9.0.0