Skip to content

ref(integrations): route HTTP header filtering through data collection config#6788

Open
ericapisani wants to merge 9 commits into
masterfrom
py-2584-update-wsgi-filter-headers
Open

ref(integrations): route HTTP header filtering through data collection config#6788
ericapisani wants to merge 9 commits into
masterfrom
py-2584-update-wsgi-filter-headers

Conversation

@ericapisani

@ericapisani ericapisani commented Jul 8, 2026

Copy link
Copy Markdown
Member

_filter_headers follows the legacy send_default_pii/use_annotated_value behaviour when the data collection behaviour is not enabled in _experiments.

When data collection is enabled, it now delegates to _apply_key_value_collection_filtering from sentry_sdk.data_collection, so header scrubbing respects the new data_collection.http_headers.request allowlist/denylist/off configuration when data collection.

Work to scrub cookies in a more granular way will be tackled as part of PY-2581/#6741.

Fixes PY-2584
Fixes #6744

…n config

`_filter_headers` previously used a hardcoded sensitive-header tuple and a
`send_default_pii`/`use_annotated_value` toggle. It now delegates to
`_apply_key_value_collection_filtering` from `sentry_sdk.data_collection`,
so header scrubbing respects the new `data_collection.http_headers.request`
allowlist/denylist/off configuration.

Cookie and set-cookie headers are
always redacted regardless of mode. Drops the now-unused
`use_annotated_value` parameter from all call sites.

Work to scrub cookies in a more granular way will be tackled as part of
PY-2581/#6741.

Fixes PY-2584
Fixes #6744
@linear-code

linear-code Bot commented Jul 8, 2026

Copy link
Copy Markdown

PY-2584

PY-2581

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Codecov Results 📊

91315 passed | ⏭️ 6302 skipped | Total: 97617 | Pass Rate: 93.54% | Execution Time: 312m 31s

📊 Comparison with Base Branch

Metric Change
Total Tests 📈 +295
Passed Tests 📈 +295
Failed Tests
Skipped Tests

All tests are passing successfully.

✅ Patch coverage is 100.00%. Project has 2446 uncovered lines.
✅ Project coverage is 89.77%. Comparing base (base) to head (head).

Files with missing lines (1)
File Patch % Lines
sentry_sdk/data_collection.py 100.00% ⚠️ 1 partials
Coverage diff
@@            Coverage Diff             @@
##          main       #PR       +/-##
==========================================
+ Coverage    89.75%    89.77%    +0.02%
==========================================
  Files          193       193         —
  Lines        23880     23921       +41
  Branches      8246      8276       +30
==========================================
+ Hits         21434     21475       +41
- Misses        2446      2446         —
- Partials      1351      1352        +1

Generated by Codecov Action

Comment thread sentry_sdk/data_collection.py
Comment thread sentry_sdk/integrations/_wsgi_common.py
…ures

The new lambda_functions_with_embedded_sdk fixture directories were
missing the .gitignore that the other fixtures use to keep everything
except index.py untracked. As a result, certifi and urllib3 packages
installed by the test setup got committed, and ruff failed CI linting
against them since they're unmodified third-party code.

Add the missing .gitignore to each new fixture directory and remove
the committed vendored packages; they are regenerated automatically at
test time via `uv pip install --target`.
Comment on lines +118 to +122
headers = _get_headers(asgi_scope)

request_data["headers"] = _filter_headers(
headers,
use_annotated_value=False,

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This change was done because when if the headers are filtered with "allowlist" and no terms are provided, and the "host" header is present, then the constructed URL in _get_url below would contain [Filtered] within the URL.

Doing this ensures that it gets filtered from the headers to respect data collection, but still correctly appears in the url

@ericapisani ericapisani marked this pull request as ready for review July 9, 2026 22:48
@ericapisani ericapisani requested a review from a team as a code owner July 9, 2026 22:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update _filter_headers to check data collection settings when available

1 participant