When using the "tracing" extension (e.g. the lacinia-timing header in pedestal), the "validation" field always looks like {:startOffset nil, :duration nil} instead of having an offset and duration.
Both com.walmartlabs.lacinia.pedestal.internal/on-enter-prepare-query and com.walmartlabs.lacina/execute-parsed-query-async seem to add this to the parsed-query map, not its parent map.
As a workaround in lacinia-pedestal, I insert the following interceptor somewhere in-between l.pedestal2/prepare-query-interceptor and l.pedestal2/query-executor-handler to copy the validation data to the place execute-query expects, although I think execute-query is probably the code that should change here.
When using the "tracing" extension (e.g. the
lacinia-timing
header in pedestal), the "validation" field always looks like{:startOffset nil, :duration nil}
instead of having an offset and duration.I believe this is because lacinia
execute-query
pulls the::timing/validation
entry off the context map instead of the parsed-query map.Both
com.walmartlabs.lacinia.pedestal.internal/on-enter-prepare-query
andcom.walmartlabs.lacina/execute-parsed-query-async
seem to add this to the parsed-query map, not its parent map.As a workaround in
lacinia-pedestal
, I insert the following interceptor somewhere in-betweenl.pedestal2/prepare-query-interceptor
andl.pedestal2/query-executor-handler
to copy the validation data to the placeexecute-query
expects, although I thinkexecute-query
is probably the code that should change here.