Dit is een Kotlin implementatie van de - in ontwikkeling zijnde - standaard Logboek Dataverwerkingen (LDV) onder regie van Logius. De library is bruikbaar vanuit zowel Kotlin als Java projecten.
  • Kotlin 96.7%
  • Shell 2.6%
  • Dockerfile 0.7%
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Eric Wout van der Steen 0f08400ad0
Projectdocumentatie t.a.v. Open Source toevoegen volgens ADR 0012 (#13)
* Start-template GOVERNANCE.md vanuit Mijn Bureau toegevoegd

* Open Source documentatie overgenomen van MijnOverheidZakelijk

* MijnOverheidZakelijk navolgen

* Niet per se issues in deze repository
2026-03-17 13:26:31 +01:00
.clusterfuzzlite Workflow en Dockerfile versies pinnen (#23) 2026-02-18 14:25:42 +01:00
.github Projectdocumentatie t.a.v. Open Source toevoegen volgens ADR 0012 (#13) 2026-03-17 13:26:31 +01:00
.mvn/wrapper GitHub projectconfiguratie richtlijnen toepassen (#4) 2026-01-20 12:15:48 +01:00
src Bugfix opentel 2026-03-05 13:27:09 +01:00
.gitignore Maven Central requirements 2025-12-10 15:06:15 +01:00
compose.yml Code review verbeteringen en documentatie updates (#24) 2026-02-19 13:55:43 +01:00
GOVERNANCE.md Projectdocumentatie t.a.v. Open Source toevoegen volgens ADR 0012 (#13) 2026-03-17 13:26:31 +01:00
LICENSE andere org en andere licentie 2025-12-11 10:58:36 +01:00
mvnw initial commit 2025-11-26 10:16:09 +01:00
pom.xml versie opgehoogd voor bugfix 2026-03-05 14:23:42 +01:00
publiccode.yml Projectdocumentatie t.a.v. Open Source toevoegen volgens ADR 0012 (#13) 2026-03-17 13:26:31 +01:00
README.md Code review verbeteringen en documentatie updates (#24) 2026-02-19 13:55:43 +01:00
SUPPORT.md Projectdocumentatie t.a.v. Open Source toevoegen volgens ADR 0012 (#13) 2026-03-17 13:26:31 +01:00

Logboek Dataverwerkingen JVM implementatie

Project Pre-Alpha Status OpenSSF Scorecard

Dit is een Kotlin implementatie van de - in ontwikkeling zijnde - standaard Logboek Dataverwerkingen (LDV) van Logius. De library is bruikbaar vanuit zowel Kotlin als Java projecten.

Inleiding

Vanuit het programma MijnOverheid Zakelijk sluiten we zoveel mogelijk aan op de standaarden uit het stelsel Generieke Digitale Infrastructuur: https://www.digitaleoverheid.nl/mido/generieke-digitale-infrastructuur-gdi/. Een van de onderdelen daarvan is de standaard Logboek Dataverwerkingen van Logius: Voor meer informatie over de LDV standaard, zie: https://github.com/Logius-standaarden/logboek-dataverwerkingen.

Doel

Dit Open Source project is opgezet om de LDV standaard eenvoudig aan nieuwe of bestaande Java/Kotlin oplossingen toe te voegen.

Afhankelijkheden

  • Clickhouse database - Deze implementatie is gemaakt met een Clickhouse database voor het opslaan van de logging: https://clickhouse.com/
  • Verwerkingsactiviteiten register - Bij het loggen van de activiteit wordt verwezen naar een ID van een verwerkingsactiviteit in een activiteiten register. Meer informatie hierover is te vinden in de documentatie van de standaard. Hierbij wordt geen richtlijn opgegeven voor de technische implementatie en deze is daarom niet inbegrepen bij deze implementatie.

Hoe te gebruiken

Om deze package te gebruiken moet je in je (maven) project de volgende variablen in je application.properties file toevoegen:

logboekdataverwerking.enabled=true
logboekdataverwerking.service-name=service-name
logboekdataverwerking.clickhouse.endpoint=http://localhost:8123
logboekdataverwerking.clickhouse.username=user
logboekdataverwerking.clickhouse.password=password
logboekdataverwerking.clickhouse.database=db_name
logboekdataverwerking.clickhouse.table=table_name

of application.yml:

logboekdataverwerking:
    enabled: true
    service-name: service-name
    clickhouse:
        endpoint: http://localhost:8123
        username: user
        password: password
        database: db_name
        table: table_name

Hierna kun je endpoints voorzien van de @Logboek() annotatie:

@Logboek(name = "behandelen-aanvraag", processingActivityId = "1234")

Hierbij is name de beschrijving van je eigen trace log en processingActivityId is de verwijzing naar een Register met meer informatie over de Verwerkingsactiviteit.

Daarnaast kan er in de betreffende functie extra informatie aan de Span worden toegevoegd:

Kotlin:

@Inject
lateinit var handler: ProcessingHandler

@Inject
lateinit var logboekContext: LogboekContext

@GET
@Path("/{identificatieType}/{identificatieNummer}")
@Logboek(name = "test", processingActivityId = "1")
fun test(): Response {
    val innerSpan = handler.startSpan("span-2", null)
    val innerContext = LogboekContext().apply {
        status = StatusCode.ERROR
        dataSubjectId = "123"
        dataSubjectType = "BSN"
        processingActivityId = "4321"
    }
    handler.addLogboekContextToSpan(innerSpan, innerContext)
    innerSpan.end()

    logboekContext.dataSubjectId = "000000000"
    logboekContext.dataSubjectType = "KVK"
    logboekContext.status = StatusCode.OK

    return Response.ok("Hello world").build()
}

Java:

@Inject
ProcessingHandler handler;

@Inject
LogboekContext logboekContext;

@GET
@Path("/{identificatieType}/{identificatieNummer}")
@Logboek(name = "test", processingActivityId = "1")
public Response test() {
    var innerSpan = handler.startSpan("span-2", null);
    LogboekContext innerContext = new LogboekContext();
    innerContext.setStatus(StatusCode.ERROR);
    innerContext.setDataSubjectId("123");
    innerContext.setDataSubjectType("BSN");
    innerContext.setProcessingActivityId("4321");
    handler.addLogboekContextToSpan(innerSpan, innerContext);
    innerSpan.end();

    logboekContext.setDataSubjectId("000000000");
    logboekContext.setDataSubjectType("KVK");
    logboekContext.setStatus(StatusCode.OK);

    return Response.ok("Hello world").build();
}

Uitschakelen tijdens testen

Om de database en OpenTelemetry functionaliteit uit te schakelen tijdens testen, stel je logboekdataverwerking.enabled=false in je test configuratie bestand:

test/resources/application.properties:

logboekdataverwerking.enabled=false

Wanneer uitgeschakeld, worden er geen verbindingen met de database gemaakt.