Skip to content

How to finalize the request context propagation through the persistent queue #13242

Open
@dmitryax

Description

@dmitryax

Several recent PRs (#13188, #13220, #13232) introduced the ability to store parts of the request context in the persistent queue.

One part of the context that is still not persisted is client.Auth, an interface implemented by various auth extensions.

It's unclear how we should proceed. Implementing plain Marshal/Unmarshal interfaces on the extension side isn't sufficient, since the payload could contain sensitive information that should not be written to disk in plaintext.

If we decide to support persisting Auth information, the Collector needs to ensure exclusive access to the data. This likely means using symmetric encryption with a configurable key. The open questions are:

  • Where should the encryption key be configured?
    • The auth extension seems like the most natural place.
    • Alternatively, the exporter configuration could own it. Especially if the encryption will applied more broadly to client metadata. However, the mashaling/unmarshaling of the client metadata could also be managed by the header setter extension.

If we don't go down this path, we may need to explicitly document that auth extensions are incompatible with persistent queues.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions