Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
2ad7ca1
chore(bugbot): Add testing conventions code review rules (#18433)
Lms24 Dec 10, 2025
ec8c8c6
feat(core): Parse individual cookies from cookie header (#18325)
s1gr1d Dec 10, 2025
5c5c7d4
feat(node): Add instrument OpenAI export to node (#18461)
RulaKhaled Dec 10, 2025
847daf0
feat(profiling): Add support for Node v24 in the prune script (#18447)
JPeer264 Dec 10, 2025
0591b1b
feat(bun): Expose spotlight option in TypeScript (#18436)
JPeer264 Dec 10, 2025
5affac5
fix(tanstack-router): Check for `fromLocation` existence before repor…
logaretm Dec 11, 2025
065ce1a
fix(tracing): Set span operations for AI spans with model ID only (#1…
RulaKhaled Dec 11, 2025
4b18ffd
fix(node-core): passthrough node-cron context (#17835)
sebws Dec 11, 2025
0617362
Merge pull request #18470 from getsentry/master
github-actions[bot] Dec 11, 2025
907d13f
chore: Add external contributor to CHANGELOG.md (#18473)
HazAT Dec 11, 2025
d4301fd
chore: upgrade Playwright to ~1.56.0 for WSL2 compatibility (#18468)
BYK Dec 11, 2025
9c2ebf3
feat(node): Support `propagateTraceparent`
timfish Dec 11, 2025
7752d60
chore(tests): Added test variant flag (#18458)
logaretm Dec 11, 2025
2abba7d
Merge branch 'develop' into timfish/feat/node-propagateTraceparent
timfish Dec 11, 2025
eaa3c56
fix(tracing): add system prompt, model to google genai (#18424)
isaacs Dec 8, 2025
80d5f5e
less otel changes
timfish Dec 12, 2025
dc8d781
chore(deps): bump next from 15.5.7 to 15.5.9 in /dev-packages/e2e-tes…
dependabot[bot] Dec 12, 2025
805f8dc
Merge branch 'timfish/feat/node-propagateTraceparent' of github.com:g…
timfish Dec 12, 2025
3bc1437
chore(deps): bump next from 15.5.7 to 15.5.9 in /dev-packages/e2e-tes…
dependabot[bot] Dec 12, 2025
529f933
chore(deps): bump next from 16.0.7 to 16.0.9 in /dev-packages/e2e-tes…
dependabot[bot] Dec 12, 2025
053487f
chore(deps): bump next from 16.0.7 to 16.0.9 in /dev-packages/e2e-tes…
dependabot[bot] Dec 12, 2025
f1f2604
chore(deps): bump next from 16.0.7 to 16.0.9 in /dev-packages/e2e-tes…
dependabot[bot] Dec 12, 2025
c448386
Revert
timfish Dec 12, 2025
89f1ee2
Test http
timfish Dec 12, 2025
d9fa8ba
More tests and bump size limit
timfish Dec 12, 2025
e9b2df9
feat(nuxt): Bump `@sentry/vite-plugin` and `@sentry/rollup-plugin` to…
Lms24 Dec 12, 2025
6fd995e
chore(deps): bump next from 16.0.9 to 16.0.10 in /dev-packages/e2e-te…
dependabot[bot] Dec 12, 2025
2e7a29e
feat(tracing): strip inline media from messages (#18413)
isaacs Dec 4, 2025
356776c
chore(deps): bump next from 14.2.32 to 14.2.35 in /dev-packages/e2e-t…
dependabot[bot] Dec 15, 2025
f78aa3f
fix(browser): Stringify span context in linked traces log statement (…
s1gr1d Dec 15, 2025
4132f4a
Working?
timfish Dec 15, 2025
d1b86bd
feat(browser): Add support for GraphQL persisted operations (#18505)
TBeeren Dec 15, 2025
a8490c9
chore(deps): bump next from 14.2.25 to 14.2.35 in /dev-packages/e2e-t…
dependabot[bot] Dec 15, 2025
51b1b89
Fix
timfish Dec 15, 2025
025b5af
Merge remote-tracking branch 'upstream/develop' into timfish/feat/nod…
timfish Dec 15, 2025
4134dab
Improve logic
timfish Dec 15, 2025
3cd6b36
Include in fields
timfish Dec 15, 2025
8ce9ede
Oops
timfish Dec 15, 2025
c73437f
ref(browser): Improve profiling debug statement (#18507)
s1gr1d Dec 16, 2025
b0c4b09
Merge branch 'develop' into timfish/feat/node-propagateTraceparent
timfish Dec 16, 2025
861ed3f
fix(google-cloud-serverless): Move @types/express to optional peerDep…
JPeer264 Dec 16, 2025
0cd1d4a
feat(node): Add ESM support for postgres.js instrumentation (#17961)
onurtemizkan Dec 16, 2025
ffe1614
chore(deps): bump next from 16.0.9 to 16.0.10 in /dev-packages/e2e-te…
dependabot[bot] Dec 16, 2025
e42e912
feat(core): Export `captureException` and `captureMessage` parameter …
chargome Dec 16, 2025
4068b57
test(cloudflare-mcp): Pin mcp sdk to 1.24.0 (#18524)
JPeer264 Dec 16, 2025
a882862
chore(deps): bump next from 14.2.32 to 14.2.35 in /dev-packages/e2e-t…
dependabot[bot] Dec 16, 2025
6f0b8b4
feat(core): Add additional exports for `captureException` and `captur…
chargome Dec 16, 2025
87d04c4
Merge branch 'develop' into timfish/feat/node-propagateTraceparent
timfish Dec 16, 2025
8acba7f
feat(node): Support `propagateTraceparent`
timfish Dec 16, 2025
47e82e3
meta(changelog): Update changelog for 10.31.0
andreiborza Dec 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .cursor/BUGBOT.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,16 @@ Do not flag the issues below if they appear in tests.
convention as the `SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN` value.
- When calling `startSpan`, check if error cases are handled. If flag that it might make sense to try/catch and call `captureException`.
- When calling `generateInstrumentationOnce`, the passed in name MUST match the name of the integration that uses it. If there are more than one instrumentations, they need to follow the pattern `${INSTRUMENTATION_NAME}.some-suffix`.

## Testing Conventions

- When reviewing a `feat` PR, check if the PR includes at least one integration or E2E test.
If neither of the two are present, add a comment, recommending to add one.
- When reviewing a `fix` PR, check if the PR includes at least one unit, integration or e2e test that tests the regression this PR fixes.
Usually this means the test failed prior to the fix and passes with the fix.
If no tests are present, add a comment recommending to add one.
- Check that tests actually test the newly added behaviour.
For instance, when checking on sent payloads by the SDK, ensure that the newly added data is asserted thoroughly.
- Flag usage of `expect.objectContaining` and other relaxed assertions, when a test expects something NOT to be included in a payload but there's no respective assertion.
- Flag usage of conditionals in one test and recommend splitting up the test for the different paths.
- Flag usage of loops testing multiple scenarios in one test and recommend using `(it)|(test).each` instead.
2 changes: 1 addition & 1 deletion .size-limit.js
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ module.exports = [
import: createImport('init'),
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
gzip: true,
limit: '160 KB',
limit: '162 KB',
},
{
name: '@sentry/node - without tracing',
Expand Down
68 changes: 68 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,74 @@

- "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott

## 10.31.0

### Important Changes

- **feat(browser): Add support for GraphQL persisted operations ([#18505](https://github.com/getsentry/sentry-javascript/pull/18505))**

The `graphqlClientIntegration` now supports GraphQL persisted operations (queries). When a persisted query is detected, the integration will capture the operation hash and version as span attributes:

- `graphql.persisted_query.hash.sha256` - The SHA-256 hash of the persisted query
- `graphql.persisted_query.version` - The version of the persisted query protocol

Additionally, the `graphql.document` attribute format has changed to align with OpenTelemetry semantic conventions. It now contains only the GraphQL query string instead of the full JSON request payload.

**Before:**

```javascript
"graphql.document": "{\"query\":\"query Test { user { id } }\"}"
```

**After:**

```javascript
"graphql.document": "query Test { user { id } }"
```

### Other Changes

- feat(node): Support `propagateTraceparent` option ([#18476](https://github.com/getsentry/sentry-javascript/pull/18476))
- feat(bun): Expose spotlight option in TypeScript ([#18436](https://github.com/getsentry/sentry-javascript/pull/18436))
- feat(core): Add additional exports for `captureException` and `captureMessage` parameter types ([#18521](https://github.com/getsentry/sentry-javascript/pull/18521))
- feat(core): Export `captureException` and `captureMessage` parameter types ([#18509](https://github.com/getsentry/sentry-javascript/pull/18509))
- feat(core): Parse individual cookies from cookie header ([#18325](https://github.com/getsentry/sentry-javascript/pull/18325))
- feat(node): Add instrument OpenAI export to node ([#18461](https://github.com/getsentry/sentry-javascript/pull/18461))
- feat(nuxt): Bump `@sentry/vite-plugin` and `@sentry/rollup-plugin` to 4.6.1 ([#18349](https://github.com/getsentry/sentry-javascript/pull/18349))
- feat(profiling): Add support for Node v24 in the prune script ([#18447](https://github.com/getsentry/sentry-javascript/pull/18447))
- feat(tracing): strip inline media from messages ([#18413](https://github.com/getsentry/sentry-javascript/pull/18413))
- feat(node): Add ESM support for postgres.js instrumentation ([#17961](https://github.com/getsentry/sentry-javascript/pull/17961))
- fix(browser): Stringify span context in linked traces log statement ([#18376](https://github.com/getsentry/sentry-javascript/pull/18376))
- fix(google-cloud-serverless): Move @types/express to optional peerDeps ([#18452](https://github.com/getsentry/sentry-javascript/pull/18452))
- fix(node-core): passthrough node-cron context ([#17835](https://github.com/getsentry/sentry-javascript/pull/17835))
- fix(tanstack-router): Check for `fromLocation` existence before reporting pageload ([#18463](https://github.com/getsentry/sentry-javascript/pull/18463))
- fix(tracing): add system prompt, model to google genai ([#18424](https://github.com/getsentry/sentry-javascript/pull/18424))
- fix(tracing): Set span operations for AI spans with model ID only ([#18471](https://github.com/getsentry/sentry-javascript/pull/18471))
- ref(browser): Improve profiling debug statement ([#18507](https://github.com/getsentry/sentry-javascript/pull/18507))

<details>
<summary> <strong>Internal Changes</strong> </summary>

- chore: Add external contributor to CHANGELOG.md ([#18473](https://github.com/getsentry/sentry-javascript/pull/18473))
- chore: upgrade Playwright to ~1.56.0 for WSL2 compatibility ([#18468](https://github.com/getsentry/sentry-javascript/pull/18468))
- chore(bugbot): Add testing conventions code review rules ([#18433](https://github.com/getsentry/sentry-javascript/pull/18433))
- chore(deps): bump next from 14.2.25 to 14.2.35 in /dev-packages/e2e-tests/test-applications/create-next-app ([#18494](https://github.com/getsentry/sentry-javascript/pull/18494))
- chore(deps): bump next from 14.2.32 to 14.2.35 in /dev-packages/e2e-tests/test-applications/nextjs-orpc ([#18520](https://github.com/getsentry/sentry-javascript/pull/18520))
- chore(deps): bump next from 14.2.32 to 14.2.35 in /dev-packages/e2e-tests/test-applications/nextjs-pages-dir ([#18496](https://github.com/getsentry/sentry-javascript/pull/18496))
- chore(deps): bump next from 15.5.7 to 15.5.9 in /dev-packages/e2e-tests/test-applications/nextjs-15 ([#18482](https://github.com/getsentry/sentry-javascript/pull/18482))
- chore(deps): bump next from 15.5.7 to 15.5.9 in /dev-packages/e2e-tests/test-applications/nextjs-15-intl ([#18483](https://github.com/getsentry/sentry-javascript/pull/18483))
- chore(deps): bump next from 16.0.7 to 16.0.9 in /dev-packages/e2e-tests/test-applications/nextjs-16 ([#18480](https://github.com/getsentry/sentry-javascript/pull/18480))
- chore(deps): bump next from 16.0.7 to 16.0.9 in /dev-packages/e2e-tests/test-applications/nextjs-16-cacheComponents ([#18479](https://github.com/getsentry/sentry-javascript/pull/18479))
- chore(deps): bump next from 16.0.7 to 16.0.9 in /dev-packages/e2e-tests/test-applications/nextjs-16-tunnel ([#18481](https://github.com/getsentry/sentry-javascript/pull/18481))
- chore(deps): bump next from 16.0.9 to 16.0.10 in /dev-packages/e2e-tests/test-applications/nextjs-16 ([#18514](https://github.com/getsentry/sentry-javascript/pull/18514))
- chore(deps): bump next from 16.0.9 to 16.0.10 in /dev-packages/e2e-tests/test-applications/nextjs-16-tunnel ([#18487](https://github.com/getsentry/sentry-javascript/pull/18487))
- chore(tests): Added test variant flag ([#18458](https://github.com/getsentry/sentry-javascript/pull/18458))
- test(cloudflare-mcp): Pin mcp sdk to 1.24.0 ([#18524](https://github.com/getsentry/sentry-javascript/pull/18524))

</details>

Work in this release was contributed by @sebws and @TBeeren. Thank you for your contributions!

## 10.30.0

- feat(nextjs): Deprecate Webpack top-level options ([#18343](https://github.com/getsentry/sentry-javascript/pull/18343))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ sentryTest('it does not download the SDK if the SDK was loaded in the meanwhile'
let cdnLoadedCount = 0;
let sentryEventCount = 0;

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
sentryEventCount++;

return route.fulfill({
Expand Down
2 changes: 1 addition & 1 deletion dev-packages/browser-integration-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
"dependencies": {
"@babel/core": "^7.27.7",
"@babel/preset-typescript": "^7.16.7",
"@playwright/test": "~1.53.2",
"@playwright/test": "~1.56.0",
"@sentry-internal/rrweb": "2.34.0",
"@sentry/browser": "10.30.0",
"@supabase/supabase-js": "2.49.3",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Basic test with eviction, update, and no async tasks', async ({ getL
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Flag evaluations in forked scopes are stored separately.', async ({
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ sentryTest("Feature flags are added to active span's attributes on span end.", a
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('GrowthBook onError: basic eviction/update and no async tasks', async
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({ status: 200, contentType: 'application/json', body: JSON.stringify({ id: 'test-id' }) });
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('GrowthBook onError: forked scopes are isolated', async ({ getLocalTe
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({ status: 200, contentType: 'application/json', body: JSON.stringify({ id: 'test-id' }) });
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ sentryTest(
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({ status: 200, contentType: 'application/json', body: JSON.stringify({}) });
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Basic test with eviction, update, and no async tasks', async ({ getL
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Flag evaluations in forked scopes are stored separately.', async ({
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ sentryTest("Feature flags are added to active span's attributes on span end.", a
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Basic test with eviction, update, and no async tasks', async ({ getL
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Flag evaluation error hook', async ({ getLocalTestUrl, page }) => {
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Flag evaluations in forked scopes are stored separately.', async ({
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ sentryTest("Feature flags are added to active span's attributes on span end.", a
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Basic test with eviction, update, and no async tasks', async ({ getL
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Flag evaluations in forked scopes are stored separately.', async ({
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ sentryTest("Feature flags are added to active span's attributes on span end.", a
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ sentryTest('Logs and returns if isEnabled does not match expected signature', as
const bundleKey = process.env.PW_BUNDLE || '';
const hasDebug = !bundleKey.includes('_min');

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Basic test with eviction, update, and no async tasks', async ({ getL
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ sentryTest('Flag evaluations in forked scopes are stored separately.', async ({
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ sentryTest("Feature flags are added to active span's attributes on span end.", a
sentryTest.skip();
}

await page.route('https://dsn.ingest.sentry.io/**/*', route => {
await page.route(/^https:\/\/dsn\.ingest\.sentry\.io\//, route => {
return route.fulfill({
status: 200,
contentType: 'application/json',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ const query = `query Test{
pet
}
}`;
const queryPayload = JSON.stringify({ query });

sentryTest('should update spans for GraphQL fetch requests', async ({ getLocalTestUrl, page }) => {
if (shouldSkipTracingTest()) {
Expand Down Expand Up @@ -55,7 +54,7 @@ sentryTest('should update spans for GraphQL fetch requests', async ({ getLocalTe
'server.address': 'sentry-test.io',
'sentry.op': 'http.client',
'sentry.origin': 'auto.http.browser',
'graphql.document': queryPayload,
'graphql.document': query,
}),
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Sentry.init({
integrations: [
Sentry.browserTracingIntegration(),
graphqlClientIntegration({
endpoints: ['http://sentry-test.io/foo'],
endpoints: ['http://sentry-test.io/foo', 'http://sentry-test.io/graphql'],
}),
],
tracesSampleRate: 1,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
const requestBody = JSON.stringify({
operationName: 'GetUser',
variables: { id: '123' },
extensions: {
persistedQuery: {
version: 1,
sha256Hash: 'ecf4edb46db40b5132295c0291d62fb65d6759a9eedfa4d5d612dd5ec54a6b38',
},
},
});

fetch('http://sentry-test.io/graphql', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: requestBody,
});
Loading
Loading