getsentry / getsentry/sentry-dotnet
DataCollection phase 2: migrate GraphQL instrumentation
- Dominant language
- C#
- Stars
- 770
- Forks
- 248
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 51
Description
Part of #5420. Phase 2 — behavior-neutral consumer migration.
Migrate the GraphQL client instrumentation to `GraphQL.Document` / `GraphQL.Variables`:
- `src/Sentry/SentryGraphQLHttpFailedRequestHandler.cs:67-80` — request query body (`sentryRequest.Data`) and response body currently gated on `SendDefaultPii`; split gating: document vs variables per spec.
- `src/Sentry/GraphQLContentExtractor.cs`, `GraphQLRequestContent.cs` — extraction points.
Note the JS default: `graphQL` remains `true` even in the legacy-false bridge, because documents were historically attached (with redaction) — verify what sentry-dotnet's historical behavior implies for the bridge here (today the .NET handler attaches the body **only** when `SendDefaultPii` is true, so the .NET bridge should map `false` → GraphQL off, unlike JS).
Contributor guide
Research direction
Start with src/Sentry/SentryGraphQLHttpFailedRequestHandler.cs:67-80, then trace extraction through src/Sentry/GraphQLContentExtractor.cs and GraphQLRequestContent.cs. Compare the current SendDefaultPii behavior with the GraphQL.Document and GraphQL.Variables specification and the JS legacy-false bridge. Done means the consumer migration is behavior-neutral and the .NET bridge maps false to GraphQL off as required.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- api, backend-api-design
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100