getsentry / getsentry/sentry-dotnet

DataCollection phase 1: resolver and SendDefaultPii bridge

Open
#5,426 1 comment 0 reactions 0 assignees View on GitHub
Feature Task
Dominant language
C#
Stars
770
Forks
248
Avg merge
2d 22h
Merged PRs (30d)
51

Description

Part of getsentry/sentry-dotnet#5420. Phase 1 — foundation.

Add the internal resolved config and the legacy bridge; make it the single read path.

* Internal `ResolvedDataCollection` (all fields populated), resolved once at SDK init and exposed internally (e.g. via `SentryOptions`).
* Resolution precedence: (1) fields explicitly set on `DataCollection`; (2) if `DataCollection` is set at all, missing fields use the new spec defaults (`UserInfo=true`, all `HttpBodies`, denyList behaviors, `FrameContextLines=5`); (3) if `DataCollection` is absent, derive everything from `SendDefaultPii`:
* `true` → everything on.
* `false`/unset → `UserInfo=false`, `HttpBodies=None`, `GenAI` off, `DatabaseQueryData=false`, deny-lists extended with GDPR terms (`forwarded`, `-ip`, `remote-`, `via`, `-user`).
* If both `DataCollection` and `SendDefaultPii` are set, `SendDefaultPii` is ignored.
* No consumer migrated yet — that happens per-area in Phase 2.

JS references: `resolveDataCollectionOptions.ts`, `defaultPiiToCollectionOptions.ts` ([getsentry/sentry-javascript#20967](), [getsentry/sentry-javascript#20970]()).

Contributor guide

Open the contributing guide

Research direction

Locate DataCollection, SentryOptions, and the SDK initialization path, then read the referenced JS resolver files resolveDataCollectionOptions.ts and defaultPiiToCollectionOptions.ts for precedence and defaults. Done means an internally exposed ResolvedDataCollection is resolved once, the legacy bridge follows the stated SendDefaultPii rules, and no consumers are migrated yet.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
developer-experience
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.