OAuth 2.0 Client Auth Extension design doc#3571
Conversation
Pull request dashboard statusStatus last refreshed: 2026-07-26 00:04:13 UTC.
This automated status or its linked feedback items may be incorrect. If something looks wrong, please report it with the result you expected. |
There was a problem hiding this comment.
Pull request overview
Adds a draft design document for a proposed urn:otel:extension:oauth2_client_auth extension in rust/otap-dataflow, describing a provider-neutral OAuth2 token acquisition/refresh component that would expose tokens via the existing BearerTokenProvider capability for use by OTLP exporters.
Changes:
- Added a new design doc covering goals, architecture, configuration schema, lifecycle, telemetry, and security/performance considerations for an OAuth 2.0 client auth extension.
- Documented intended integration points with the engine extension lifecycle (Active + Shared, readiness gating) and consumer usage patterns (fast-path cache, watch-based stream).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3571 +/- ##
==========================================
- Coverage 86.88% 86.87% -0.01%
==========================================
Files 782 782
Lines 319341 319341
==========================================
- Hits 277444 277439 -5
- Misses 41373 41378 +5
Partials 524 524
🚀 New features to boost your workflow:
|
drewrelmas
left a comment
There was a problem hiding this comment.
Looks good to me! Excited to see the generic implementation coming in!
85a6448 to
13053b1
Compare
13053b1 to
bd887de
Compare
… and shared TLS config
bd887de to
6b75e36
Compare
|
Moved out from merge queue, as @pritishnahar95 is making some updates to align the design with the Azure identity extension. |
Change Summary
Adds a design doc for a proposed OAuth 2.0 Client Auth extension (urn:otel:extension:oauth2_client_auth) — the generic, provider-neutral counterpart to the Azure Identity Auth extension, modeled on the Go collector's oauth2clientauthextension.
The extension acquires and background-refreshes OAuth 2.0 access tokens (client-credentials + JWT-bearer grants) and exposes them to data-path nodes through the existing
BearerTokenProvidercapability — so the OTLP exporters can inject a refreshed Authorization: Bearer header without embedding static credentials or doing token work on the hot path.Key design points covered:
BearerTokenProvidercapability (no new capability machinery).Active + Sharedexecution, watch-based token cache, slow-path coalescing viafetch_lock, background refresh with expiry_buffer, jittered scheduling + bounded exponential-backoff retry.startup_timeout.otap_df_config::tls::TlsClientConfig; custom CA, mTLS client cert, SNI.What issue does this PR close?
BearerTokenProvider) #3479How are these changes tested?
n/a
Are there any user-facing changes?
no
Changelog
.chloggen/*.yamlentrychore(indicated in title)