Skip to content

LDV standaard compliance: validatie en foreign_operation.span_id#25

Merged
ericwout-overheid merged 2 commits intomainfrom
ldv-standaard-compliance
Feb 19, 2026
Merged

LDV standaard compliance: validatie en foreign_operation.span_id#25
ericwout-overheid merged 2 commits intomainfrom
ldv-standaard-compliance

Conversation

@ericwout-overheid
Copy link
Contributor

@ericwout-overheid ericwout-overheid commented Feb 19, 2026

Summary

  • Verwijder dpl.core.foreign_operation.span_id attribuut (niet in de LDV standaard; parent-child relatie wordt al afgehandeld door OpenTelemetry via setParent(context))
  • Valideer alle verplichte dpl.core attributen in ProcessingHandler.addLogboekContextToSpan: isNullOrEmpty checks + URI-validatie voor processing_activity_id
  • Vereenvoudig LogboekContext tot een simpele data holder (validatie op één plek in ProcessingHandler)
  • KDoc voor encryptievereiste dataSubjectId

Test plan

  • Alle 51 bestaande + nieuwe tests slagen
  • Verify dat processing_activity_id met ongeldige URI een IllegalArgumentException gooit
  • Verify dat lege of null verplichte velden een IllegalArgumentException gooien
  • Verify dat foreign_operation.span_id niet meer wordt gezet op spans

🤖 Generated with Claude Code

ericwout-overheid and others added 2 commits February 19, 2026 14:35
…ijderd

- Verwijder dpl.core.foreign_operation.span_id (niet in de standaard,
  parent-child relatie wordt al afgehandeld door OpenTelemetry via
  setParent(context))
- Valideer alle verplichte dpl.core attributen in
  ProcessingHandler.addLogboekContextToSpan: isNullOrEmpty checks voor
  processing_activity_id, data_subject_id en data_subject_id_type plus
  URI-validatie voor processing_activity_id
- LogboekContext is nu een eenvoudige data holder zonder validatielogica
- KDoc toegevoegd voor encryptievereiste dataSubjectId

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ericwout-overheid
Copy link
Contributor Author

ericwout-overheid commented Feb 19, 2026

Lokale test met foute activity ID:

2026-02-19 14:53:57,009 ERROR [io.quarkus.vertx.http.runtime.QuarkusErrorHandler] (executor-thread-1) HTTP Request to /api/profielservice/v1/BSN/myBSN failed, error id: 629d8418-700c-4fa7-8ef5-368de60f2e30-1: java.lang.IllegalArgumentException: dpl.core.processing_activity_id must be an absolute URI: 028
        at nl.mijnoverheidzakelijk.ldv.logboekdataverwerking.ProcessingHandler.addLogboekContextToSpan(ProcessingHandler.kt:63)
        at nl.mijnoverheidzakelijk.ldv.logboekdataverwerking.ProcessingHandler_ClientProxy.addLogboekContextToSpan(Unknown Source)
        at nl.mijnoverheidzakelijk.ldv.logboekdataverwerking.LogboekInterceptor.log(LogboekInterceptor.kt:78)
        at nl.mijnoverheidzakelijk.ldv.logboekdataverwerking.LogboekInterceptor_Bean.intercept(Unknown Source)                                                                                                                                                                                                      
        at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:42)                                                                                                                                                                                                                          
        at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:30)                                                                                                                                                                                                         
        at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:27)                                                                                                                                                                                                                   
        at nl.rijksoverheid.moz.controller.ProfielController_Subclass.getPartij(Unknown Source)                                                                                                                                                                                                                     
        at nl.rijksoverheid.moz.controller.ProfielController$quarkusrestinvoker$getPartij_6976fd003d00b391fa8f53c5f0e45962c97b820d.invoke(Unknown Source)                                                                                                                                                           
        at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)                                                                                                                                                                                                          
        at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:190)                                                                                                                                                          
        at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)                                                                                                                                                                                    
        at io.quarkus.vertx.core.runtime.VertxCoreRecorder$15.runWith(VertxCoreRecorder.java:666)                                                                                                                                                                                                                   
        at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2651)                                                                                                                                                                                                                  
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2630)                                                                                                                                                                                                                        
        at org.jboss.threads.EnhancedQueueExecutor.runThreadBody(EnhancedQueueExecutor.java:1622)                                                                                                                                                                                                                   
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1589)                                                                                                                                                                                                                  
        at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)                                                                                                                                                                                                                                     
        at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)                                                                                                                                                                                                                 
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)                                                                                                                                                                                                                    
        at java.base/java.lang.Thread.run(Thread.java:1583)                                                                                                                                                                                                                                                         

De andere twee tests kunnen we niet testen omdat we geen keten hebben en/of niet nodig, unit tests dekken dit al af.

@ericwout-overheid ericwout-overheid merged commit 6394dd4 into main Feb 19, 2026
5 checks passed
@ericwout-overheid ericwout-overheid deleted the ldv-standaard-compliance branch February 19, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants