feat(config): extensions section, capabilities bindings, and config-level validation#2538
Open
gouslu wants to merge 2 commits intoopen-telemetry:mainfrom
Open
feat(config): extensions section, capabilities bindings, and config-level validation#2538gouslu wants to merge 2 commits intoopen-telemetry:mainfrom
gouslu wants to merge 2 commits intoopen-telemetry:mainfrom
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2538 +/- ##
==========================================
+ Coverage 88.34% 88.38% +0.04%
==========================================
Files 612 613 +1
Lines 221481 223188 +1707
==========================================
+ Hits 195665 197266 +1601
- Misses 25292 25398 +106
Partials 524 524
🚀 New features to boost your workflow:
|
4eec6cc to
18e9f65
Compare
18e9f65 to
a520a65
Compare
Contributor
|
The architecture doc link doesn't work. Can you please fix that? I'd like to understand what this is being built against. |
Contributor
|
I believe this is ready to review because this PR1 is consistent with the original extensions design document. If there are objections to #2510, let them surface now! I will merge that PR before I merge this one, but both are ready to review. |
jmacd
approved these changes
Apr 6, 2026
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.
Change Summary
This is PR 1 based on #2510.
Add config parsing for pipeline extensions — the first building block of the extension system (architecture doc).
Extensions are standalone pipeline components that provide shared capabilities (auth, storage, etc.) to data-path nodes. This PR adds config-level support only — no runtime behavior. Extensions are parsed and validated but not created or started.
Config changes:
extensions:section in pipeline config, separate fromnodes:capabilities:field on nodes for binding capabilities to extension instancesNodeKind::Extensionvariant for URN parsing (e.g.,urn:otel:extension:auth)ExtensionConfigstruct in engine configPipelineConfigBuilder::add_extension()for programmatic config constructionValidations added:
extensions:sectioncapabilities:bindings (they provide capabilities, not consume them)nodes:section →ExtensionInNodesSectionerrorextensions:at group level rejected by serde (deny_unknown_fields)Example config:
What issue does this PR close?
How are these changes tested?
13 new config tests covering:
All 168 config tests pass. Example config YAML added to
configs/.Are there any user-facing changes?
Yes — pipeline YAML configs now support
extensions:andcapabilities:sections. These are optional and have no runtime effect in this PR.