Skip to content

fix(filter): reject unknown config fields#3572

Open
gnanirahulnutakki wants to merge 1 commit into
open-telemetry:mainfrom
gnanirahulnutakki:gnanirahulnutakki/issue-3568-reject-unknown-filter-config
Open

fix(filter): reject unknown config fields#3572
gnanirahulnutakki wants to merge 1 commit into
open-telemetry:mainfrom
gnanirahulnutakki:gnanirahulnutakki/issue-3568-reject-unknown-filter-config

Conversation

@gnanirahulnutakki

@gnanirahulnutakki gnanirahulnutakki commented Jul 24, 2026

Copy link
Copy Markdown

Change Summary

Reject unknown top-level fields in processor:filter configuration so --validate-and-exit catches typos instead of silently discarding them.

The filter processor already registers validate_typed_config::<Config>, but its typed config was the exception among strict engine and component schemas because it did not use Serde's deny_unknown_fields. This adds that schema contract and a focused regression test that verifies the offending field is named in the diagnostic.

What issue does this PR close?

How are these changes tested?

  • cargo +1.96.1 check -p otap-df-core-nodes
  • cargo +1.96.1 test -p otap-df-core-nodes rejects_unknown_top_level_field -- --nocapture
  • Before/after df_engine --validate-and-exit reproduction using the issue configuration
  • python3 tools/sanitycheck.py
  • Changelog validation with the repository-pinned chloggen v0.30.0
  • cargo +1.96.1 xtask check

Are there any user-facing changes?

Yes. Invalid filter processor configuration now fails validation with an explicit unknown-field error instead of being accepted.

Changelog

  • Added a .chloggen/*.yaml entry
  • This PR is a chore (indicated in title)
  • This is a documentation-only PR.

AI tooling assisted with code navigation and drafting; the behavior was reproduced and the full repository-required validation suite was run by the contributor.

Make filter processor startup validation fail fast on unrecognized top-level keys and cover the diagnostic with a typed-config regression test.

Add the required Rust pipeline changelog entry for issue open-telemetry#3568.

Assisted-by: OpenAI Codex
Signed-off-by: Gnani Rahul Nutakki <gnani.nutakki@gmail.com>
@linux-foundation-easycla

Copy link
Copy Markdown

CLA Missing ID

  • ❌ The email address for the commit (a3b0679) is not linked to the GitHub account, preventing the EasyCLA check. Consult this Help Article and GitHub Help to resolve. (To view the commit's email address, add .patch at the end of this PR page's URL.) For further assistance with EasyCLA, please visit our EasyCLA portal and chat with our support bot.

@github-actions github-actions Bot added area:pipeline Rust Pipeline Related Tasks lang:rust Pull requests that update Rust code area:processor Core and Contrib processor nodes labels Jul 24, 2026
@opentelemetry-pr-dashboard

opentelemetry-pr-dashboard Bot commented Jul 24, 2026

Copy link
Copy Markdown

Pull request dashboard status

Status last refreshed: 2026-07-26 19:03:32 UTC.

  • Waiting on: Author
  • Next step: Investigate required status check failures.

This automated status or its linked feedback items may be incorrect. If something looks wrong, please report it with the result you expected. If you believe this pull request is incorrectly routed as waiting on the author, comment /dashboard route:reviewers to route it from waiting on the author to waiting on reviewers. If the last refreshed time above predates your latest reply or push, the dashboard hasn't processed it yet.

@lquerel lquerel left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

@lquerel

lquerel commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

@gnanirahulnutakki could you sign the CLA and mark the PR ready for review.

@codecov

codecov Bot commented Jul 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.91%. Comparing base (cbc8dd8) to head (a3b0679).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3572      +/-   ##
==========================================
- Coverage   86.91%   86.91%   -0.01%     
==========================================
  Files         782      782              
  Lines      319143   319150       +7     
==========================================
- Hits       277389   277386       -3     
- Misses      41230    41240      +10     
  Partials      524      524              
Components Coverage Δ
otap-dataflow 87.98% <100.00%> (-0.01%) ⬇️
query_engine 89.57% <ø> (ø)
otel-arrow-go 52.45% <ø> (ø)
quiver 92.20% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@gnanirahulnutakki
gnanirahulnutakki marked this pull request as ready for review July 24, 2026 18:51
@gnanirahulnutakki
gnanirahulnutakki requested a review from a team as a code owner July 24, 2026 18:51
@gnanirahulnutakki

Copy link
Copy Markdown
Author

Marked the PR ready for review. EasyCLA is now the only remaining gate; it is still blocked because the commit email needs to be linked and verified on my GitHub account before I can complete the contributor agreement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:pipeline Rust Pipeline Related Tasks area:processor Core and Contrib processor nodes lang:rust Pull requests that update Rust code size/S

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Config validation (--validate-and-exit) accepts invalid processor:filter config with unknown keys

3 participants