getsentry / getsentry/sentry-dotnet

DataCollection phase 2: migrate GraphQL instrumentation

Open
#5,432 1 comment 0 reactions 0 assignees View on GitHub
.NET Feature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.