Repository navigation
Conversation
Pull request dashboard statusWaiting on reviewers · refreshed 2026-10-29 14:39 UTC Review the latest changes. Status above doesn't look right?
|
dashpole
force-pushed
the
exporter-auth
branch
from
October 28, 2026 13:49
b5f4c80 to
1b8bd49
Compare
dashpole
marked this pull request as ready for review
October 28, 2026 15:22
aabmass
reviewed
Oct 28, 2026
dashpole
force-pushed
the
exporter-auth
branch
from
October 29, 2026 12:45
b3c2fe6 to
e0f27f0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related to #1344, #4390, open-telemetry/opentelemetry-configuration#257, open-telemetry/opentelemetry-java-contrib#2020, open-telemetry/opentelemetry-go#4536
Changes
This OTEP proposes introducing an
AuthenticatorSDK plugin component for dynamic client authentication in exporters (with initial support onotlp/httpandotlp/grpcacross traces, metrics, and logs), configured programmatically or via Declarative Configuration (authenticator/development).Specifically, this proposal draws a boundary between cross-language behavioral requirements (which are specified) and language-idiomatic transport interfaces (which are left to each SDK):
New Common SDK
AuthenticatorSpecification (specification/auth/sdk.md): DefinesAuthenticatoras a general HTTP/gRPC exporter authentication plugin component (supporting per-request dynamic headers/metadata or language-native HTTP transport wrappers / gRPC per-RPC credentials, request context with endpoint and timeout/cancellation, and optionalShutdown) operating strictly at the transport layer without requiringbyte[]payload materialization.OTLP Exporter Specification (
specification/protocol/exporter.md): Specifies per-attempt execution (including retries), case-insensitive header/metadata precedence over staticHeaders, preservation of exporter TLS/mTLS and compression settings when using transport/credential wrappers, shared export timeout budget, telemetry-induced-telemetry loop suppression, error handling, andShutdownpropagation.Declarative Configuration (
specification/configuration/sdk.md&opentelemetry-configuration): Adds[exporter authenticator](ExperimentalAuthenticator) to the supported SDK plugin components table and adds an optionalauthenticator/developmentproperty to OTLP HTTP and gRPC exporters.Related issues Exporter authentication #1344, Limited OTLP exporter request authentication methods #4390, Add ability to configure dynamic auth headers opentelemetry-configuration#257
Related OTEP(s) N/A
Links to the prototypes (when adding or changing features):
opentelemetry-configuration): open-telemetry/opentelemetry-configuration@main...dashpole:opentelemetry-configuration:exporter-authopentelemetry-go,http.RoundTripper+credentials.PerRPCCredentialsinsdk/auth/x): open-telemetry/opentelemetry-go@main...dashpole:opentelemetry-go:exporter-authopentelemetry-java,Authenticator+ Declarative ConfigComponentProvider): open-telemetry/opentelemetry-java@main...dashpole:opentelemetry-java:exporter-authopentelemetry-python,Authenticator+ entry-point plugin): open-telemetry/opentelemetry-python@main...dashpole:opentelemetry-python:exporter-authopentelemetry-js,Authenticatoracross Node HTTP, Fetch, and gRPC): open-telemetry/opentelemetry-js@main...dashpole:opentelemetry-js:exporter-authCHANGELOG.mdfile updated for non-trivial changesSpec compliance matrix updated if necessary (N/A for an OTEP)
Declarative config data model is updated if SDK config surface is changed (N/A for an OTEP)