Forward Client Headers For Event Triggers (NOT related to Auth X-Hasura-* Headers!)
I have searched quite a bit of places in the issues and found lots of very good, mature discussions about forwarding the x-hasura-* client headers from the JWT to event handlers (https://github.com/hasura/graphql-engine/issues/4448 discusses something kind of like this but NOT to the extent needed here, so I feel this is a separate issue).
This makes sense to me and works well for headers derivable from a JWT.
HOWEVER, there is an important use case that this does not cover. For end-to-end tracing systems (Jaeger, Zipkin, NewRelic, anything like that or other APM systems), a MAJOR feature (For many enterprises, including us) is having the ability to see span correlation across front end, ingress, backend, and response. From all systems.
Part of this is having a "span id" that allows the various systems involved from the second the user touches a button on the app, to sends a graphql request, to handling that request within/in Hasura, to an event trigger/action, to giving the data back, and the client app processing it, is that this "span id" goes along with it.
This span ID is usually generated at the client, passed off to the HTTP server in a header (or in the GraphQL request by ensuring your client library passes it), but since it is PER REQUEST and not something STATIC on a JWT, this pattern is BROKEN in Hasura.
How can we pass this header from the client request to event handlers, so that the CRUD event handlers are able to know what "span id" triggered that given event so the work they do can be correlated in the APM systems we use?
Actions appear to allow for this using "forward client headers in webhook" (BUT that moves those headers into the payload object, which defeats this...), but this is important for Events as well.
We would be willing to try to make this change perhaps if we could even get some guidance on where/how to make these changes (we are not a Haskell shop, either, but, willing to put some effort towards that if we must).
Or is this a feature others need and we can create a feature request?
Things like CNCF's https://opentelemetry.io/, etc...