From 663530533a1aa2f145bd62fd9b45b01ed65b9a61 Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Thu, 13 Apr 2023 12:18:05 +0200 Subject: [PATCH 01/11] Update Sentry and wait for 4.78.0 Waiting for https://github.com/getsentry/sentry-docs/pull/6641 --- packages/services/api/package.json | 4 +- packages/services/emails/package.json | 2 +- packages/services/rate-limit/package.json | 3 +- packages/services/schema/package.json | 3 +- packages/services/server/.env.template | 1 + packages/services/server/package.json | 5 +- packages/services/service-common/package.json | 8 +- .../services/service-common/src/sentry.ts | 17 +- packages/services/storage/package.json | 4 +- packages/services/stripe-billing/package.json | 3 +- packages/services/tokens/package.json | 3 +- .../services/usage-estimator/package.json | 3 +- packages/services/usage-ingestor/package.json | 3 +- packages/services/usage/package.json | 3 +- packages/services/webhooks/package.json | 3 +- packages/web/app/package.json | 4 +- pnpm-lock.yaml | 220 ++++++++---------- 17 files changed, 120 insertions(+), 169 deletions(-) diff --git a/packages/services/api/package.json b/packages/services/api/package.json index 9c233530d9..16ea9323d3 100644 --- a/packages/services/api/package.json +++ b/packages/services/api/package.json @@ -16,8 +16,8 @@ "@aws-sdk/s3-request-presigner": "3.312.0", "@graphql-inspector/core": "4.0.3", "@octokit/app": "13.1.2", - "@sentry/node": "7.44.2", - "@sentry/types": "7.44.2", + "@sentry/node": "7.47.0", + "@sentry/types": "7.47.0", "@slack/web-api": "6.8.1", "@theguild/buddy": "0.1.0", "@trpc/client": "10.20.0", diff --git a/packages/services/emails/package.json b/packages/services/emails/package.json index a86ba9dfc8..78acaf9e2c 100644 --- a/packages/services/emails/package.json +++ b/packages/services/emails/package.json @@ -11,7 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.44.2", + "@sentry/node": "7.47.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", "bullmq": "3.10.4", diff --git a/packages/services/rate-limit/package.json b/packages/services/rate-limit/package.json index f353ee3f8d..61dae513db 100644 --- a/packages/services/rate-limit/package.json +++ b/packages/services/rate-limit/package.json @@ -11,8 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.44.2", - "@sentry/tracing": "7.44.2", + "@sentry/node": "7.47.0", "@trpc/client": "10.20.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", diff --git a/packages/services/schema/package.json b/packages/services/schema/package.json index a1371664d9..f06bae1afd 100644 --- a/packages/services/schema/package.json +++ b/packages/services/schema/package.json @@ -13,8 +13,7 @@ "@apollo/federation": "0.38.1", "@graphql-tools/stitch": "8.7.48", "@graphql-tools/stitching-directives": "2.3.34", - "@sentry/node": "7.44.2", - "@sentry/tracing": "7.44.2", + "@sentry/node": "7.47.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", "dotenv": "16.0.3", diff --git a/packages/services/server/.env.template b/packages/services/server/.env.template index f8c5d5d36c..e8290b57a4 100644 --- a/packages/services/server/.env.template +++ b/packages/services/server/.env.template @@ -1,3 +1,4 @@ +ENVIRONMENT=local LOG_LEVEL=debug POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres diff --git a/packages/services/server/package.json b/packages/services/server/package.json index 1aeaf267d7..464b04b126 100644 --- a/packages/services/server/package.json +++ b/packages/services/server/package.json @@ -19,9 +19,8 @@ "@escape.tech/graphql-armor-max-depth": "1.8.4", "@escape.tech/graphql-armor-max-directives": "1.6.5", "@escape.tech/graphql-armor-max-tokens": "1.3.2", - "@sentry/integrations": "7.44.2", - "@sentry/node": "7.44.2", - "@sentry/tracing": "7.44.2", + "@sentry/integrations": "7.47.0", + "@sentry/node": "7.47.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", "@whatwg-node/server": "0.7.5", diff --git a/packages/services/service-common/package.json b/packages/services/service-common/package.json index 7134d28ae2..3d8cdf7cbe 100644 --- a/packages/services/service-common/package.json +++ b/packages/services/service-common/package.json @@ -6,7 +6,6 @@ "private": true, "peerDependencies": { "@sentry/node": "^7.0.0", - "@sentry/tracing": "^7.0.0", "@sentry/utils": "^7.0.0", "@trpc/server": "10.20.0" }, @@ -19,9 +18,8 @@ "zod": "3.21.4" }, "devDependencies": { - "@sentry/node": "7.44.2", - "@sentry/tracing": "7.44.2", - "@sentry/types": "7.44.2", - "@sentry/utils": "7.44.2" + "@sentry/node": "7.47.0", + "@sentry/types": "7.47.0", + "@sentry/utils": "7.47.0" } } diff --git a/packages/services/service-common/src/sentry.ts b/packages/services/service-common/src/sentry.ts index 73c928cb9b..65f5975654 100644 --- a/packages/services/service-common/src/sentry.ts +++ b/packages/services/service-common/src/sentry.ts @@ -1,14 +1,12 @@ import type { FastifyInstance, FastifyPluginAsync, FastifyRequest } from 'fastify'; import fp from 'fastify-plugin'; import * as Sentry from '@sentry/node'; -import '@sentry/tracing'; -import { Transaction } from '@sentry/tracing'; -import type { ExtractedNodeRequestData, TraceparentData } from '@sentry/types'; +import type { ExtractedNodeRequestData, TraceparentData, Transaction } from '@sentry/types'; import { extractTraceparentData, normalize } from '@sentry/utils'; import { cleanRequestId } from './helpers'; const plugin: FastifyPluginAsync = async server => { - server.decorateRequest('sentryTransaction', null); + server.decorateReply('sentryTransaction', null); function shouldIgnore(request: FastifyRequest) { if ( @@ -22,7 +20,7 @@ const plugin: FastifyPluginAsync = async server => { return false; } - server.addHook('onRequest', async request => { + server.addHook('onRequest', async (request, reply) => { if (shouldIgnore(request)) { return; } @@ -53,11 +51,10 @@ const plugin: FastifyPluginAsync = async server => { }, { request: extractedRequestData }, ); - (request as any).sentryTransaction = transaction; + (reply as any).sentryTransaction = transaction; + transaction.sampled = true; - Sentry.getCurrentHub().configureScope(scope => { - scope.setSpan(transaction); - }); + Sentry.configureScope(scope => scope.setSpan(transaction)); return; }); @@ -68,7 +65,7 @@ const plugin: FastifyPluginAsync = async server => { } setImmediate(() => { - const transaction: Transaction = (request as any).sentryTransaction; + const transaction: Transaction = (reply as any).sentryTransaction; transaction.setData('url', request.url); transaction.setData('query', request.query); diff --git a/packages/services/storage/package.json b/packages/services/storage/package.json index dba7c00477..52d48212da 100644 --- a/packages/services/storage/package.json +++ b/packages/services/storage/package.json @@ -12,7 +12,7 @@ "db:generate": "schemats generate --config schemats.cjs -o src/db/types.ts" }, "dependencies": { - "@sentry/node": "7.44.2", + "@sentry/node": "7.47.0", "@theguild/buddy": "0.1.0", "dotenv": "16.0.3", "got": "12.6.0", @@ -23,7 +23,7 @@ "zod": "3.21.4" }, "devDependencies": { - "@sentry/types": "7.44.2", + "@sentry/types": "7.47.0", "@tgriesser/schemats": "9.0.1", "@types/node": "18.15.11", "@types/pg": "8.6.6", diff --git a/packages/services/stripe-billing/package.json b/packages/services/stripe-billing/package.json index e6d19f54fd..559262c258 100644 --- a/packages/services/stripe-billing/package.json +++ b/packages/services/stripe-billing/package.json @@ -11,8 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.44.2", - "@sentry/tracing": "7.44.2", + "@sentry/node": "7.47.0", "@trpc/client": "10.20.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", diff --git a/packages/services/tokens/package.json b/packages/services/tokens/package.json index 57eb1a86dc..7c718c13ab 100644 --- a/packages/services/tokens/package.json +++ b/packages/services/tokens/package.json @@ -10,8 +10,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.44.2", - "@sentry/tracing": "7.44.2", + "@sentry/node": "7.47.0", "@trpc/server": "10.20.0", "dotenv": "16.0.3", "ioredis": "5.3.1", diff --git a/packages/services/usage-estimator/package.json b/packages/services/usage-estimator/package.json index 917db3da2b..309b9f9fbf 100644 --- a/packages/services/usage-estimator/package.json +++ b/packages/services/usage-estimator/package.json @@ -11,8 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.44.2", - "@sentry/tracing": "7.44.2", + "@sentry/node": "7.47.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", "dotenv": "16.0.3", diff --git a/packages/services/usage-ingestor/package.json b/packages/services/usage-ingestor/package.json index 52f6552e05..07cc917439 100644 --- a/packages/services/usage-ingestor/package.json +++ b/packages/services/usage-ingestor/package.json @@ -10,8 +10,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.44.2", - "@sentry/tracing": "7.44.2", + "@sentry/node": "7.47.0", "agentkeepalive": "4.3.0", "date-fns": "2.29.3", "dotenv": "16.0.3", diff --git a/packages/services/usage/package.json b/packages/services/usage/package.json index d6a6f2d1df..387c6a907d 100644 --- a/packages/services/usage/package.json +++ b/packages/services/usage/package.json @@ -10,8 +10,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.44.2", - "@sentry/tracing": "7.44.2", + "@sentry/node": "7.47.0", "@trpc/client": "10.20.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", diff --git a/packages/services/webhooks/package.json b/packages/services/webhooks/package.json index d805dfd3e6..d75168cfba 100644 --- a/packages/services/webhooks/package.json +++ b/packages/services/webhooks/package.json @@ -11,8 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.44.2", - "@sentry/tracing": "7.44.2", + "@sentry/node": "7.47.0", "@trpc/server": "10.20.0", "bullmq": "3.10.4", "dotenv": "16.0.3", diff --git a/packages/web/app/package.json b/packages/web/app/package.json index e589635698..1da035b9da 100644 --- a/packages/web/app/package.json +++ b/packages/web/app/package.json @@ -34,8 +34,8 @@ "@radix-ui/react-toggle-group": "1.0.3", "@radix-ui/react-toolbar": "1.0.3", "@radix-ui/react-tooltip": "1.0.5", - "@sentry/nextjs": "7.44.2", - "@sentry/types": "7.44.2", + "@sentry/nextjs": "7.47.0", + "@sentry/types": "7.47.0", "@stripe/react-stripe-js": "2.1.0", "@stripe/stripe-js": "1.52.1", "@tanstack/react-table": "8.0.0-beta.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0c95e41fd9..c66b929da5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -504,11 +504,11 @@ importers: specifier: 13.1.2 version: 13.1.2 '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@sentry/types': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@slack/web-api': specifier: 6.8.1 version: 6.8.1 @@ -705,8 +705,8 @@ importers: packages/services/emails: dependencies: '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -800,11 +800,8 @@ importers: packages/services/rate-limit: dependencies: '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 - '@sentry/tracing': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@trpc/client': specifier: 10.20.0 version: 10.20.0(@trpc/server@10.20.0) @@ -858,11 +855,8 @@ importers: specifier: 2.3.34 version: 2.3.34(graphql@16.6.0) '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 - '@sentry/tracing': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -923,7 +917,7 @@ importers: version: 4.0.6(@envelop/core@3.0.6)(graphql@16.6.0) '@envelop/sentry': specifier: 5.1.1 - version: 5.1.1(@envelop/core@3.0.6)(@sentry/node@7.44.2)(graphql@16.6.0) + version: 5.1.1(@envelop/core@3.0.6)(@sentry/node@7.47.0)(graphql@16.6.0) '@envelop/types': specifier: 3.0.2 version: 3.0.2 @@ -940,14 +934,11 @@ importers: specifier: 1.3.2 version: 1.3.2 '@sentry/integrations': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 - '@sentry/tracing': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -1032,23 +1023,20 @@ importers: version: 3.21.4 devDependencies: '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 - '@sentry/tracing': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@sentry/types': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@sentry/utils': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 packages/services/storage: dependencies: '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@theguild/buddy': specifier: 0.1.0 version: 0.1.0(patch_hash=ryylgra5xglhidfoiaxehn22hq) @@ -1075,8 +1063,8 @@ importers: version: 3.21.4 devDependencies: '@sentry/types': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@tgriesser/schemats': specifier: 9.0.1 version: 9.0.1 @@ -1099,11 +1087,8 @@ importers: packages/services/stripe-billing: dependencies: '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 - '@sentry/tracing': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@trpc/client': specifier: 10.20.0 version: 10.20.0(@trpc/server@10.20.0) @@ -1145,11 +1130,8 @@ importers: packages/services/tokens: dependencies: '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 - '@sentry/tracing': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -1197,11 +1179,8 @@ importers: packages/services/usage: dependencies: '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 - '@sentry/tracing': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@trpc/client': specifier: 10.20.0 version: 10.20.0(@trpc/server@10.20.0) @@ -1255,11 +1234,8 @@ importers: packages/services/usage-estimator: dependencies: '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 - '@sentry/tracing': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -1295,11 +1271,8 @@ importers: packages/services/usage-ingestor: dependencies: '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 - '@sentry/tracing': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 agentkeepalive: specifier: 4.3.0 version: 4.3.0 @@ -1344,11 +1317,8 @@ importers: packages/services/webhooks: dependencies: '@sentry/node': - specifier: 7.44.2 - version: 7.44.2 - '@sentry/tracing': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -1447,11 +1417,11 @@ importers: specifier: 1.0.5 version: 1.0.5(@types/react@18.0.37)(react-dom@18.2.0)(react@18.2.0) '@sentry/nextjs': - specifier: 7.44.2 - version: 7.44.2(next@13.2.4)(react@18.2.0) + specifier: 7.47.0 + version: 7.47.0(next@13.2.4)(react@18.2.0) '@sentry/types': - specifier: 7.44.2 - version: 7.44.2 + specifier: 7.47.0 + version: 7.47.0 '@stripe/react-stripe-js': specifier: 2.1.0 version: 2.1.0(@stripe/stripe-js@1.52.1)(react-dom@18.2.0)(react@18.2.0) @@ -7252,7 +7222,7 @@ packages: tslib: 2.5.0 dev: true - /@envelop/sentry@5.1.1(@envelop/core@3.0.6)(@sentry/node@7.44.2)(graphql@16.6.0): + /@envelop/sentry@5.1.1(@envelop/core@3.0.6)(@sentry/node@7.47.0)(graphql@16.6.0): resolution: {integrity: sha512-Ca2QMWUH8Ipc9l7AHki10bL6gO3NRy23Gb2XHRlc2sT7bpO200VNMwcqXJaeac8hkeqSWmivmWd3v+94cBEZhQ==} peerDependencies: '@envelop/core': ^3.0.6 @@ -7260,7 +7230,7 @@ packages: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@envelop/core': 3.0.6 - '@sentry/node': 7.44.2 + '@sentry/node': 7.47.0 graphql: 16.6.0 tslib: 2.5.0 dev: false @@ -12526,24 +12496,24 @@ packages: string-argv: 0.3.1 dev: false - /@sentry-internal/tracing@7.44.2: - resolution: {integrity: sha512-3nteYNWiQDbO4yROBqduWTVR0Jah+FiU/2Tz44FcWvWyBboRP4gggaN7BDJahRwbhcRQKE9lTjGCbQLgNOuUCw==} + /@sentry-internal/tracing@7.47.0: + resolution: {integrity: sha512-udpHnCzF8DQsWf0gQwd0XFGp6Y8MOiwnl8vGt2ohqZGS3m1+IxoRLXsSkD8qmvN6KKDnwbaAvYnK0z0L+AW95g==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.44.2 - '@sentry/types': 7.44.2 - '@sentry/utils': 7.44.2 + '@sentry/core': 7.47.0 + '@sentry/types': 7.47.0 + '@sentry/utils': 7.47.0 tslib: 1.14.1 - /@sentry/browser@7.44.2: - resolution: {integrity: sha512-pF2lyXkIjjCoIWUHN17zGO0R2n0/5yb7k+LehbEC1UhvSEBZW/zrRS+AeebjVF0eG2Wir3SoSe4TWt+CRQFOiA==} + /@sentry/browser@7.47.0: + resolution: {integrity: sha512-L0t07kS/G1UGVZ9fpD6HLuaX8vVBqAGWgu+1uweXthYozu/N7ZAsakjU/Ozu6FSXj1mO3NOJZhOn/goIZLSj5A==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.44.2 - '@sentry/core': 7.44.2 - '@sentry/replay': 7.44.2 - '@sentry/types': 7.44.2 - '@sentry/utils': 7.44.2 + '@sentry-internal/tracing': 7.47.0 + '@sentry/core': 7.47.0 + '@sentry/replay': 7.47.0 + '@sentry/types': 7.47.0 + '@sentry/utils': 7.47.0 tslib: 1.14.1 dev: false @@ -12590,26 +12560,26 @@ packages: tslib: 1.14.1 dev: false - /@sentry/core@7.44.2: - resolution: {integrity: sha512-m2nOHP4YX+kmWFQTzgBEsdblCuNFSB7017oLaR6/VH0a0mVWdrW7Q1gHMpw4/08uWRiA+oC2dXqCH7A1FwfGIQ==} + /@sentry/core@7.47.0: + resolution: {integrity: sha512-EFhZhKdMu7wKmWYZwbgTi8FNZ7Fq+HdlXiZWNz51Bqe3pHmfAkdHtAEs0Buo0v623MKA0CA4EjXIazGUM34XTg==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.44.2 - '@sentry/utils': 7.44.2 + '@sentry/types': 7.47.0 + '@sentry/utils': 7.47.0 tslib: 1.14.1 - /@sentry/integrations@7.44.2: - resolution: {integrity: sha512-KA4YAexZUtTxPMUDEuxsAtaHMDJiiiJW8K95YuxotCcg9gC3A6mThc1dY2xgEXLe8Ds4VBHnh9yVifunWdoS4g==} + /@sentry/integrations@7.47.0: + resolution: {integrity: sha512-PUSeBYI3fCOswn+K+PLjtl2epr8/ceqebWqVcxHclczSY3EOZE+osznDFgZmeVgrHavsgfE4oFVqJeFvDJwCog==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.44.2 - '@sentry/utils': 7.44.2 + '@sentry/types': 7.47.0 + '@sentry/utils': 7.47.0 localforage: 1.10.0 tslib: 1.14.1 dev: false - /@sentry/nextjs@7.44.2(next@13.2.4)(react@18.2.0): - resolution: {integrity: sha512-HOeT+Gn/d9TNE5SeIKMLIW9tRZoICaGILphqVvR05mM2wUOZxTn2NCxNp7vZkQoFsBxW6D4tVb6PvpnPxkVOeg==} + /@sentry/nextjs@7.47.0(next@13.2.4)(react@18.2.0): + resolution: {integrity: sha512-KcvN0l5N819LdX7iFUrZjYTX5ITm8lXmiOSyhiLTZBm68ZZbmX2TMrMMlGCLuc0qBZQolu11u6gVQSfTaZPQ9Q==} engines: {node: '>=8'} peerDependencies: next: ^10.0.8 || ^11.0 || ^12.0 || ^13.0 @@ -12620,13 +12590,12 @@ packages: optional: true dependencies: '@rollup/plugin-commonjs': 24.0.0(rollup@2.78.0) - '@sentry/core': 7.44.2 - '@sentry/integrations': 7.44.2 - '@sentry/node': 7.44.2 - '@sentry/react': 7.44.2(react@18.2.0) - '@sentry/tracing': 7.44.2 - '@sentry/types': 7.44.2 - '@sentry/utils': 7.44.2 + '@sentry/core': 7.47.0 + '@sentry/integrations': 7.47.0 + '@sentry/node': 7.47.0 + '@sentry/react': 7.47.0(react@18.2.0) + '@sentry/types': 7.47.0 + '@sentry/utils': 7.47.0 '@sentry/webpack-plugin': 1.20.0 chalk: 3.0.0 next: 13.2.4(react-dom@18.2.0)(react@18.2.0) @@ -12639,13 +12608,14 @@ packages: - supports-color dev: false - /@sentry/node@7.44.2: - resolution: {integrity: sha512-tEMcT+di7q7OYZt8Lg9kIpXoSO1YQNhnfMyffpzC82TMyJGNclBllNTF/UUnPqEiRW8WeewNgWuJAMLpPzjmfw==} + /@sentry/node@7.47.0: + resolution: {integrity: sha512-LTg2r5EV9yh4GLYDF+ViSltR9LLj/pcvk8YhANJcMO3Fp//xh8njcdU0FC2yNthUREawYDzAsVzLyCYJfV0H1A==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.44.2 - '@sentry/types': 7.44.2 - '@sentry/utils': 7.44.2 + '@sentry-internal/tracing': 7.47.0 + '@sentry/core': 7.47.0 + '@sentry/types': 7.47.0 + '@sentry/utils': 7.47.0 cookie: 0.4.2 https-proxy-agent: 5.0.1 lru_map: 0.3.3 @@ -12653,42 +12623,36 @@ packages: transitivePeerDependencies: - supports-color - /@sentry/react@7.44.2(react@18.2.0): - resolution: {integrity: sha512-eA0L2itLrg8b4U52vlavZiCIUgbo7mv2Ri5kNxztHbBwBPA88Qzm9f3LgDOvYsSDiakMu6opzpmyGXe1FyrQjw==} + /@sentry/react@7.47.0(react@18.2.0): + resolution: {integrity: sha512-Qy6OnlE8FivKOLo0YE7tkr+G5fLmEOkpPxj179wbY/N8kp/ALkqbVdcOrZW7AL6HCc0lphhj+0SB+tpwoPEsiQ==} engines: {node: '>=8'} peerDependencies: react: 15.x || 16.x || 17.x || 18.x dependencies: - '@sentry/browser': 7.44.2 - '@sentry/types': 7.44.2 - '@sentry/utils': 7.44.2 + '@sentry/browser': 7.47.0 + '@sentry/types': 7.47.0 + '@sentry/utils': 7.47.0 hoist-non-react-statics: 3.3.2 react: 18.2.0 tslib: 1.14.1 dev: false - /@sentry/replay@7.44.2: - resolution: {integrity: sha512-3KO0QE0OvH0I2hP7yU3W511nEQ55yHN5jWL6V/ay2PlUR1hCw42g8/o9zARq4qw1t4k5ZY6M36ZMqnQQwISqeA==} + /@sentry/replay@7.47.0: + resolution: {integrity: sha512-BFpVZVmwlezZ83y0L43TCTJY142Fxh+z+qZSwTag5HlhmIpBKw/WKg06ajOhrYJbCBkhHmeOvyKkxX0jnc39ZA==} engines: {node: '>=12'} dependencies: - '@sentry/core': 7.44.2 - '@sentry/types': 7.44.2 - '@sentry/utils': 7.44.2 + '@sentry/core': 7.47.0 + '@sentry/types': 7.47.0 + '@sentry/utils': 7.47.0 dev: false - /@sentry/tracing@7.44.2: - resolution: {integrity: sha512-z8wqPgpaQ4EaxPRZdx4MEWfbySSpHlYO7URJPvudyhsezDr33kyZ79QYiZP3KexoHud7gsjnkI1u/DqjdEhDng==} - engines: {node: '>=8'} - dependencies: - '@sentry-internal/tracing': 7.44.2 - /@sentry/types@7.28.1: resolution: {integrity: sha512-DvSplMVrVEmOzR2M161V5+B8Up3vR71xMqJOpWTzE9TqtFJRGPtqT/5OBsNJJw1+/j2ssMcnKwbEo9Q2EGeS6g==} engines: {node: '>=8'} dev: false - /@sentry/types@7.44.2: - resolution: {integrity: sha512-vdGb2BAelXRitgKWRBF1cCAoisLsbugUaJzrGCQoIoS3lYpZ8d8r2zELE7cNoVObVoQbUHF/WFhXVv8cumj+RA==} + /@sentry/types@7.47.0: + resolution: {integrity: sha512-GxXocplN0j1+uczovHrfkykl9wvkamDtWxlPUQgyGlbLGZn+UH1Y79D4D58COaFWGEZdSNKr62gZAjfEYu9nQA==} engines: {node: '>=8'} /@sentry/utils@7.28.1: @@ -12699,11 +12663,11 @@ packages: tslib: 1.14.1 dev: false - /@sentry/utils@7.44.2: - resolution: {integrity: sha512-PzL4Z0fhIHfQacfWvgiAs+drcm4Nc45Tc8PW1RdOZtHxzhGAYZYAPniDGML586Mnlu19QM6kGHiDu+CBgnnXAQ==} + /@sentry/utils@7.47.0: + resolution: {integrity: sha512-A89SaOLp6XeZfByeYo2C8Ecye/YAtk/gENuyOUhQEdMulI6mZdjqtHAp7pTMVgkBc/YNARVuoa+kR/IdRrTPkQ==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.44.2 + '@sentry/types': 7.47.0 tslib: 1.14.1 /@sentry/webpack-plugin@1.20.0: From f3a36d1ad0ec3380b3cc19ea9e8fd75382e09ee8 Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Thu, 13 Apr 2023 12:30:53 +0200 Subject: [PATCH 02/11] nextjs --- packages/web/app/.env.template | 2 +- packages/web/app/environment.ts | 2 +- packages/web/app/pages/_app.tsx | 6 +++--- packages/web/app/pages/_error.tsx | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/web/app/.env.template b/packages/web/app/.env.template index 96439dd11f..bf5b94a847 100644 --- a/packages/web/app/.env.template +++ b/packages/web/app/.env.template @@ -1,7 +1,7 @@ GRAPHQL_ENDPOINT="http://localhost:3001/graphql" APP_BASE_URL="http://localhost:3000" SERVER_ENDPOINT="" -ENVIRONMENT="" +ENVIRONMENT="LOCAL" # Supertokens diff --git a/packages/web/app/environment.ts b/packages/web/app/environment.ts index f8ed38105d..3cf3bc2d85 100644 --- a/packages/web/app/environment.ts +++ b/packages/web/app/environment.ts @@ -1,5 +1,5 @@ import zod from 'zod'; -import * as Sentry from '@sentry/nextjs'; +import Sentry from '@sentry/nextjs'; // treat an empty string `''` as `undefined` const emptyString = (input: T) => { diff --git a/packages/web/app/pages/_app.tsx b/packages/web/app/pages/_app.tsx index 723d693839..d3d56d81de 100644 --- a/packages/web/app/pages/_app.tsx +++ b/packages/web/app/pages/_app.tsx @@ -13,7 +13,7 @@ import { LAST_VISITED_ORG_KEY } from '@/constants'; import { env } from '@/env/frontend'; import * as gtag from '@/lib/gtag'; import { urqlClient } from '@/lib/urql'; -import * as Sentry from '@sentry/nextjs'; +import { configureScope, init } from '@sentry/nextjs'; import '../public/styles.css'; import 'react-toastify/dist/ReactToastify.css'; @@ -24,7 +24,7 @@ function identifyOnCrisp(email: string): void { } function identifyOnSentry(userId: string, email: string): void { - Sentry.configureScope(scope => { + configureScope(scope => { scope.setUser({ id: userId, email }); }); } @@ -127,7 +127,7 @@ export default function App({ Component, pageProps }: AppProps): ReactElement { if (globalThis.window) { SuperTokens.init(frontendConfig()); if (env.sentry) { - Sentry.init({ + init({ dsn: env.sentry.dsn, enabled: true, release: env.release, diff --git a/packages/web/app/pages/_error.tsx b/packages/web/app/pages/_error.tsx index 8e29e02eea..4456a16e3f 100644 --- a/packages/web/app/pages/_error.tsx +++ b/packages/web/app/pages/_error.tsx @@ -1,6 +1,6 @@ import { NextPageContext } from 'next'; import NextErrorComponent from 'next/error'; -import * as Sentry from '@sentry/nextjs'; +import { captureException, flush } from '@sentry/nextjs'; const MyError = ({ statusCode, @@ -15,7 +15,7 @@ const MyError = ({ // getInitialProps is not called in case of // https://github.com/vercel/next.js/issues/8592. As a workaround, we pass // err via _app.js so it can be captured - Sentry.captureException(err); + captureException(err); // Flushing is not required in this case as it only happens on the client } @@ -48,11 +48,11 @@ MyError.getInitialProps = async (props: NextPageContext) => { // Boundaries: https://reactjs.org/docs/error-boundaries.html if (err) { - Sentry.captureException(err); + captureException(err); // Flushing before returning is necessary if deploying to Vercel, see // https://vercel.com/docs/platform/limits#streaming-responses - await Sentry.flush(2000); + await flush(2000); return errorInitialProps; } @@ -60,8 +60,8 @@ MyError.getInitialProps = async (props: NextPageContext) => { // If this point is reached, getInitialProps was called without any // information about what the error might be. This is unexpected and may // indicate a bug introduced in Next.js, so record it in Sentry - Sentry.captureException(new Error(`_error.tsx getInitialProps missing data at path: ${asPath}`)); - await Sentry.flush(2000); + captureException(new Error(`_error.tsx getInitialProps missing data at path: ${asPath}`)); + await flush(2000); return errorInitialProps; }; From d1eb6210ac37e6a6ed997540e1b842c3429349ce Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Mon, 17 Apr 2023 11:22:54 +0200 Subject: [PATCH 03/11] Sentry 7.48.0 --- packages/services/api/package.json | 4 +- packages/services/emails/package.json | 2 +- packages/services/rate-limit/package.json | 2 +- packages/services/schema/package.json | 2 +- packages/services/server/package.json | 4 +- packages/services/service-common/package.json | 6 +- packages/services/storage/package.json | 4 +- packages/services/stripe-billing/package.json | 2 +- packages/services/tokens/package.json | 2 +- .../services/usage-estimator/package.json | 2 +- packages/services/usage-ingestor/package.json | 2 +- packages/services/usage/package.json | 2 +- packages/services/webhooks/package.json | 2 +- packages/web/app/package.json | 4 +- pnpm-lock.yaml | 184 +++++++++--------- 15 files changed, 112 insertions(+), 112 deletions(-) diff --git a/packages/services/api/package.json b/packages/services/api/package.json index 16ea9323d3..487f34a56b 100644 --- a/packages/services/api/package.json +++ b/packages/services/api/package.json @@ -16,8 +16,8 @@ "@aws-sdk/s3-request-presigner": "3.312.0", "@graphql-inspector/core": "4.0.3", "@octokit/app": "13.1.2", - "@sentry/node": "7.47.0", - "@sentry/types": "7.47.0", + "@sentry/node": "7.48.0", + "@sentry/types": "7.48.0", "@slack/web-api": "6.8.1", "@theguild/buddy": "0.1.0", "@trpc/client": "10.20.0", diff --git a/packages/services/emails/package.json b/packages/services/emails/package.json index 78acaf9e2c..858d612020 100644 --- a/packages/services/emails/package.json +++ b/packages/services/emails/package.json @@ -11,7 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.47.0", + "@sentry/node": "7.48.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", "bullmq": "3.10.4", diff --git a/packages/services/rate-limit/package.json b/packages/services/rate-limit/package.json index 61dae513db..2c5e27074f 100644 --- a/packages/services/rate-limit/package.json +++ b/packages/services/rate-limit/package.json @@ -11,7 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.47.0", + "@sentry/node": "7.48.0", "@trpc/client": "10.20.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", diff --git a/packages/services/schema/package.json b/packages/services/schema/package.json index f06bae1afd..0f5c53b810 100644 --- a/packages/services/schema/package.json +++ b/packages/services/schema/package.json @@ -13,7 +13,7 @@ "@apollo/federation": "0.38.1", "@graphql-tools/stitch": "8.7.48", "@graphql-tools/stitching-directives": "2.3.34", - "@sentry/node": "7.47.0", + "@sentry/node": "7.48.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", "dotenv": "16.0.3", diff --git a/packages/services/server/package.json b/packages/services/server/package.json index 464b04b126..92403c852a 100644 --- a/packages/services/server/package.json +++ b/packages/services/server/package.json @@ -19,8 +19,8 @@ "@escape.tech/graphql-armor-max-depth": "1.8.4", "@escape.tech/graphql-armor-max-directives": "1.6.5", "@escape.tech/graphql-armor-max-tokens": "1.3.2", - "@sentry/integrations": "7.47.0", - "@sentry/node": "7.47.0", + "@sentry/integrations": "7.48.0", + "@sentry/node": "7.48.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", "@whatwg-node/server": "0.7.5", diff --git a/packages/services/service-common/package.json b/packages/services/service-common/package.json index 3d8cdf7cbe..f1bf7c8701 100644 --- a/packages/services/service-common/package.json +++ b/packages/services/service-common/package.json @@ -18,8 +18,8 @@ "zod": "3.21.4" }, "devDependencies": { - "@sentry/node": "7.47.0", - "@sentry/types": "7.47.0", - "@sentry/utils": "7.47.0" + "@sentry/node": "7.48.0", + "@sentry/types": "7.48.0", + "@sentry/utils": "7.48.0" } } diff --git a/packages/services/storage/package.json b/packages/services/storage/package.json index 52d48212da..d855e9e3c6 100644 --- a/packages/services/storage/package.json +++ b/packages/services/storage/package.json @@ -12,7 +12,7 @@ "db:generate": "schemats generate --config schemats.cjs -o src/db/types.ts" }, "dependencies": { - "@sentry/node": "7.47.0", + "@sentry/node": "7.48.0", "@theguild/buddy": "0.1.0", "dotenv": "16.0.3", "got": "12.6.0", @@ -23,7 +23,7 @@ "zod": "3.21.4" }, "devDependencies": { - "@sentry/types": "7.47.0", + "@sentry/types": "7.48.0", "@tgriesser/schemats": "9.0.1", "@types/node": "18.15.11", "@types/pg": "8.6.6", diff --git a/packages/services/stripe-billing/package.json b/packages/services/stripe-billing/package.json index 559262c258..ee7a169335 100644 --- a/packages/services/stripe-billing/package.json +++ b/packages/services/stripe-billing/package.json @@ -11,7 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.47.0", + "@sentry/node": "7.48.0", "@trpc/client": "10.20.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", diff --git a/packages/services/tokens/package.json b/packages/services/tokens/package.json index 7c718c13ab..a6b0b62fa1 100644 --- a/packages/services/tokens/package.json +++ b/packages/services/tokens/package.json @@ -10,7 +10,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.47.0", + "@sentry/node": "7.48.0", "@trpc/server": "10.20.0", "dotenv": "16.0.3", "ioredis": "5.3.1", diff --git a/packages/services/usage-estimator/package.json b/packages/services/usage-estimator/package.json index 309b9f9fbf..ba45d352a2 100644 --- a/packages/services/usage-estimator/package.json +++ b/packages/services/usage-estimator/package.json @@ -11,7 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.47.0", + "@sentry/node": "7.48.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", "dotenv": "16.0.3", diff --git a/packages/services/usage-ingestor/package.json b/packages/services/usage-ingestor/package.json index 07cc917439..f4b9f6c128 100644 --- a/packages/services/usage-ingestor/package.json +++ b/packages/services/usage-ingestor/package.json @@ -10,7 +10,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.47.0", + "@sentry/node": "7.48.0", "agentkeepalive": "4.3.0", "date-fns": "2.29.3", "dotenv": "16.0.3", diff --git a/packages/services/usage/package.json b/packages/services/usage/package.json index 387c6a907d..378a6b3946 100644 --- a/packages/services/usage/package.json +++ b/packages/services/usage/package.json @@ -10,7 +10,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.47.0", + "@sentry/node": "7.48.0", "@trpc/client": "10.20.0", "@trpc/server": "10.20.0", "@whatwg-node/fetch": "0.8.5", diff --git a/packages/services/webhooks/package.json b/packages/services/webhooks/package.json index d75168cfba..4e42b50c50 100644 --- a/packages/services/webhooks/package.json +++ b/packages/services/webhooks/package.json @@ -11,7 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@sentry/node": "7.47.0", + "@sentry/node": "7.48.0", "@trpc/server": "10.20.0", "bullmq": "3.10.4", "dotenv": "16.0.3", diff --git a/packages/web/app/package.json b/packages/web/app/package.json index 1da035b9da..deb1cc78aa 100644 --- a/packages/web/app/package.json +++ b/packages/web/app/package.json @@ -34,8 +34,8 @@ "@radix-ui/react-toggle-group": "1.0.3", "@radix-ui/react-toolbar": "1.0.3", "@radix-ui/react-tooltip": "1.0.5", - "@sentry/nextjs": "7.47.0", - "@sentry/types": "7.47.0", + "@sentry/nextjs": "7.48.0", + "@sentry/types": "7.48.0", "@stripe/react-stripe-js": "2.1.0", "@stripe/stripe-js": "1.52.1", "@tanstack/react-table": "8.0.0-beta.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c66b929da5..51d35a1788 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -504,11 +504,11 @@ importers: specifier: 13.1.2 version: 13.1.2 '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@sentry/types': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@slack/web-api': specifier: 6.8.1 version: 6.8.1 @@ -705,8 +705,8 @@ importers: packages/services/emails: dependencies: '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -800,8 +800,8 @@ importers: packages/services/rate-limit: dependencies: '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@trpc/client': specifier: 10.20.0 version: 10.20.0(@trpc/server@10.20.0) @@ -855,8 +855,8 @@ importers: specifier: 2.3.34 version: 2.3.34(graphql@16.6.0) '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -917,7 +917,7 @@ importers: version: 4.0.6(@envelop/core@3.0.6)(graphql@16.6.0) '@envelop/sentry': specifier: 5.1.1 - version: 5.1.1(@envelop/core@3.0.6)(@sentry/node@7.47.0)(graphql@16.6.0) + version: 5.1.1(@envelop/core@3.0.6)(@sentry/node@7.48.0)(graphql@16.6.0) '@envelop/types': specifier: 3.0.2 version: 3.0.2 @@ -934,11 +934,11 @@ importers: specifier: 1.3.2 version: 1.3.2 '@sentry/integrations': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -1023,20 +1023,20 @@ importers: version: 3.21.4 devDependencies: '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@sentry/types': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@sentry/utils': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 packages/services/storage: dependencies: '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@theguild/buddy': specifier: 0.1.0 version: 0.1.0(patch_hash=ryylgra5xglhidfoiaxehn22hq) @@ -1063,8 +1063,8 @@ importers: version: 3.21.4 devDependencies: '@sentry/types': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@tgriesser/schemats': specifier: 9.0.1 version: 9.0.1 @@ -1087,8 +1087,8 @@ importers: packages/services/stripe-billing: dependencies: '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@trpc/client': specifier: 10.20.0 version: 10.20.0(@trpc/server@10.20.0) @@ -1130,8 +1130,8 @@ importers: packages/services/tokens: dependencies: '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -1179,8 +1179,8 @@ importers: packages/services/usage: dependencies: '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@trpc/client': specifier: 10.20.0 version: 10.20.0(@trpc/server@10.20.0) @@ -1234,8 +1234,8 @@ importers: packages/services/usage-estimator: dependencies: '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -1271,8 +1271,8 @@ importers: packages/services/usage-ingestor: dependencies: '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 agentkeepalive: specifier: 4.3.0 version: 4.3.0 @@ -1317,8 +1317,8 @@ importers: packages/services/webhooks: dependencies: '@sentry/node': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@trpc/server': specifier: 10.20.0 version: 10.20.0 @@ -1417,11 +1417,11 @@ importers: specifier: 1.0.5 version: 1.0.5(@types/react@18.0.37)(react-dom@18.2.0)(react@18.2.0) '@sentry/nextjs': - specifier: 7.47.0 - version: 7.47.0(next@13.2.4)(react@18.2.0) + specifier: 7.48.0 + version: 7.48.0(next@13.2.4)(react@18.2.0) '@sentry/types': - specifier: 7.47.0 - version: 7.47.0 + specifier: 7.48.0 + version: 7.48.0 '@stripe/react-stripe-js': specifier: 2.1.0 version: 2.1.0(@stripe/stripe-js@1.52.1)(react-dom@18.2.0)(react@18.2.0) @@ -7222,7 +7222,7 @@ packages: tslib: 2.5.0 dev: true - /@envelop/sentry@5.1.1(@envelop/core@3.0.6)(@sentry/node@7.47.0)(graphql@16.6.0): + /@envelop/sentry@5.1.1(@envelop/core@3.0.6)(@sentry/node@7.48.0)(graphql@16.6.0): resolution: {integrity: sha512-Ca2QMWUH8Ipc9l7AHki10bL6gO3NRy23Gb2XHRlc2sT7bpO200VNMwcqXJaeac8hkeqSWmivmWd3v+94cBEZhQ==} peerDependencies: '@envelop/core': ^3.0.6 @@ -7230,7 +7230,7 @@ packages: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 dependencies: '@envelop/core': 3.0.6 - '@sentry/node': 7.47.0 + '@sentry/node': 7.48.0 graphql: 16.6.0 tslib: 2.5.0 dev: false @@ -12496,24 +12496,24 @@ packages: string-argv: 0.3.1 dev: false - /@sentry-internal/tracing@7.47.0: - resolution: {integrity: sha512-udpHnCzF8DQsWf0gQwd0XFGp6Y8MOiwnl8vGt2ohqZGS3m1+IxoRLXsSkD8qmvN6KKDnwbaAvYnK0z0L+AW95g==} + /@sentry-internal/tracing@7.48.0: + resolution: {integrity: sha512-MFAPDTrvCtfSm0/Zbmx7HA0Q5uCfRadOUpN8Y8rP1ndz+329h2kA3mZRCuC+3/aXL11zs2CHUhcAkGjwH2vogg==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.47.0 - '@sentry/types': 7.47.0 - '@sentry/utils': 7.47.0 + '@sentry/core': 7.48.0 + '@sentry/types': 7.48.0 + '@sentry/utils': 7.48.0 tslib: 1.14.1 - /@sentry/browser@7.47.0: - resolution: {integrity: sha512-L0t07kS/G1UGVZ9fpD6HLuaX8vVBqAGWgu+1uweXthYozu/N7ZAsakjU/Ozu6FSXj1mO3NOJZhOn/goIZLSj5A==} + /@sentry/browser@7.48.0: + resolution: {integrity: sha512-tdx/2nhuiykncmXFlV4Dpp+Hxgt/v31LiyXE79IcM560wc+QmWKtzoW9azBWQ0xt5KOO3ERMib9qPE4/ql1/EQ==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.47.0 - '@sentry/core': 7.47.0 - '@sentry/replay': 7.47.0 - '@sentry/types': 7.47.0 - '@sentry/utils': 7.47.0 + '@sentry-internal/tracing': 7.48.0 + '@sentry/core': 7.48.0 + '@sentry/replay': 7.48.0 + '@sentry/types': 7.48.0 + '@sentry/utils': 7.48.0 tslib: 1.14.1 dev: false @@ -12560,26 +12560,26 @@ packages: tslib: 1.14.1 dev: false - /@sentry/core@7.47.0: - resolution: {integrity: sha512-EFhZhKdMu7wKmWYZwbgTi8FNZ7Fq+HdlXiZWNz51Bqe3pHmfAkdHtAEs0Buo0v623MKA0CA4EjXIazGUM34XTg==} + /@sentry/core@7.48.0: + resolution: {integrity: sha512-8FYuJTMpyuxRZvlen3gQ3rpOtVInSDmSyXqWEhCLuG/w34AtWoTiW7G516rsAAh6Hy1TP91GooMWbonP3XQNTQ==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.47.0 - '@sentry/utils': 7.47.0 + '@sentry/types': 7.48.0 + '@sentry/utils': 7.48.0 tslib: 1.14.1 - /@sentry/integrations@7.47.0: - resolution: {integrity: sha512-PUSeBYI3fCOswn+K+PLjtl2epr8/ceqebWqVcxHclczSY3EOZE+osznDFgZmeVgrHavsgfE4oFVqJeFvDJwCog==} + /@sentry/integrations@7.48.0: + resolution: {integrity: sha512-yzbJopVu1UHFXRDv236o5hSEUtqeP45T9uSVbAhKnH5meKWunK7MKvhFvQjhcfvlUVibYrewoVztQP2hrpxgfw==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.47.0 - '@sentry/utils': 7.47.0 + '@sentry/types': 7.48.0 + '@sentry/utils': 7.48.0 localforage: 1.10.0 tslib: 1.14.1 dev: false - /@sentry/nextjs@7.47.0(next@13.2.4)(react@18.2.0): - resolution: {integrity: sha512-KcvN0l5N819LdX7iFUrZjYTX5ITm8lXmiOSyhiLTZBm68ZZbmX2TMrMMlGCLuc0qBZQolu11u6gVQSfTaZPQ9Q==} + /@sentry/nextjs@7.48.0(next@13.2.4)(react@18.2.0): + resolution: {integrity: sha512-SLWkd1ZB27uK21QkUiIBEUgvhaMFMx8V5MO2+IlGluJKUdd06IgYAOsS0kjwQc34Ow6D0qowy8iScmtHebgQew==} engines: {node: '>=8'} peerDependencies: next: ^10.0.8 || ^11.0 || ^12.0 || ^13.0 @@ -12590,12 +12590,12 @@ packages: optional: true dependencies: '@rollup/plugin-commonjs': 24.0.0(rollup@2.78.0) - '@sentry/core': 7.47.0 - '@sentry/integrations': 7.47.0 - '@sentry/node': 7.47.0 - '@sentry/react': 7.47.0(react@18.2.0) - '@sentry/types': 7.47.0 - '@sentry/utils': 7.47.0 + '@sentry/core': 7.48.0 + '@sentry/integrations': 7.48.0 + '@sentry/node': 7.48.0 + '@sentry/react': 7.48.0(react@18.2.0) + '@sentry/types': 7.48.0 + '@sentry/utils': 7.48.0 '@sentry/webpack-plugin': 1.20.0 chalk: 3.0.0 next: 13.2.4(react-dom@18.2.0)(react@18.2.0) @@ -12608,14 +12608,14 @@ packages: - supports-color dev: false - /@sentry/node@7.47.0: - resolution: {integrity: sha512-LTg2r5EV9yh4GLYDF+ViSltR9LLj/pcvk8YhANJcMO3Fp//xh8njcdU0FC2yNthUREawYDzAsVzLyCYJfV0H1A==} + /@sentry/node@7.48.0: + resolution: {integrity: sha512-DJyyZaVhv/pUzJPof7es6zYDHeWbNqE0T3tQfLCkShdyfR+Ew8In8W/x2s7S8vq0cfRq0rqv1E6B2/HpVdYO7g==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.47.0 - '@sentry/core': 7.47.0 - '@sentry/types': 7.47.0 - '@sentry/utils': 7.47.0 + '@sentry-internal/tracing': 7.48.0 + '@sentry/core': 7.48.0 + '@sentry/types': 7.48.0 + '@sentry/utils': 7.48.0 cookie: 0.4.2 https-proxy-agent: 5.0.1 lru_map: 0.3.3 @@ -12623,27 +12623,27 @@ packages: transitivePeerDependencies: - supports-color - /@sentry/react@7.47.0(react@18.2.0): - resolution: {integrity: sha512-Qy6OnlE8FivKOLo0YE7tkr+G5fLmEOkpPxj179wbY/N8kp/ALkqbVdcOrZW7AL6HCc0lphhj+0SB+tpwoPEsiQ==} + /@sentry/react@7.48.0(react@18.2.0): + resolution: {integrity: sha512-E2HF0njufOI/BWktXfIiPNIh0dh7la9uQmDlYiFAK8MnlW4OOjw4rRJV2qkxKQCYdO9WB+T460DVw102Z/MyUA==} engines: {node: '>=8'} peerDependencies: react: 15.x || 16.x || 17.x || 18.x dependencies: - '@sentry/browser': 7.47.0 - '@sentry/types': 7.47.0 - '@sentry/utils': 7.47.0 + '@sentry/browser': 7.48.0 + '@sentry/types': 7.48.0 + '@sentry/utils': 7.48.0 hoist-non-react-statics: 3.3.2 react: 18.2.0 tslib: 1.14.1 dev: false - /@sentry/replay@7.47.0: - resolution: {integrity: sha512-BFpVZVmwlezZ83y0L43TCTJY142Fxh+z+qZSwTag5HlhmIpBKw/WKg06ajOhrYJbCBkhHmeOvyKkxX0jnc39ZA==} + /@sentry/replay@7.48.0: + resolution: {integrity: sha512-8fRHMGJ0NJeIZi6UucxUTvfDPaBa7+jU1kCTLjCcuH3X/UVz5PtGLMtFSO5U8HP+mUDlPs97MP1uoDvMa4S2Ng==} engines: {node: '>=12'} dependencies: - '@sentry/core': 7.47.0 - '@sentry/types': 7.47.0 - '@sentry/utils': 7.47.0 + '@sentry/core': 7.48.0 + '@sentry/types': 7.48.0 + '@sentry/utils': 7.48.0 dev: false /@sentry/types@7.28.1: @@ -12651,8 +12651,8 @@ packages: engines: {node: '>=8'} dev: false - /@sentry/types@7.47.0: - resolution: {integrity: sha512-GxXocplN0j1+uczovHrfkykl9wvkamDtWxlPUQgyGlbLGZn+UH1Y79D4D58COaFWGEZdSNKr62gZAjfEYu9nQA==} + /@sentry/types@7.48.0: + resolution: {integrity: sha512-kkAszZwQ5/v4n7Yyw/DPNRWx7h724mVNRGZIJa9ggUMvTgMe7UKCZZ5wfQmYiKVlGbwd9pxXAcP8Oq15EbByFQ==} engines: {node: '>=8'} /@sentry/utils@7.28.1: @@ -12663,11 +12663,11 @@ packages: tslib: 1.14.1 dev: false - /@sentry/utils@7.47.0: - resolution: {integrity: sha512-A89SaOLp6XeZfByeYo2C8Ecye/YAtk/gENuyOUhQEdMulI6mZdjqtHAp7pTMVgkBc/YNARVuoa+kR/IdRrTPkQ==} + /@sentry/utils@7.48.0: + resolution: {integrity: sha512-d977sghkFVMfld0LrEyyY2gYrfayLPdDEpUDT+hg5y79r7zZDCFyHtdB86699E5K89MwDZahW7Erk+a1nk4x5w==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.47.0 + '@sentry/types': 7.48.0 tslib: 1.14.1 /@sentry/webpack-plugin@1.20.0: From d63b05c4ec0ee298c3712ec34029176a1f36d20d Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Mon, 17 Apr 2023 14:04:29 +0200 Subject: [PATCH 04/11] Fixes --- .../services/server/src/graphql-handler.ts | 37 +++++----- packages/services/server/src/index.ts | 1 + packages/web/app/environment.ts | 2 + packages/web/app/pages/api/proxy.ts | 69 +++++++------------ 4 files changed, 46 insertions(+), 63 deletions(-) diff --git a/packages/services/server/src/graphql-handler.ts b/packages/services/server/src/graphql-handler.ts index b00e9d1383..881f6a6351 100644 --- a/packages/services/server/src/graphql-handler.ts +++ b/packages/services/server/src/graphql-handler.ts @@ -22,6 +22,7 @@ import { useHive } from '@graphql-hive/client'; import { Registry, RegistryContext } from '@hive/api'; import { HiveError } from '@hive/api'; import { cleanRequestId } from '@hive/service-common'; +import { getCurrentHub, runWithAsyncContext } from '@sentry/node'; import { fetch } from '@whatwg-node/fetch'; import { asyncStorage } from './async-storage'; import type { HiveConfig } from './environment'; @@ -65,7 +66,11 @@ interface Context extends RegistryContext { const NoIntrospection: ValidationRule = (context: ValidationContext) => ({ Field(node) { if (node.name.value === '__schema' || node.name.value === '__type') { - context.reportError(new GraphQLError('GraphQL introspection is not allowed', [node])); + context.reportError( + new GraphQLError('GraphQL introspection is not allowed', { + nodes: [node], + }), + ); } }, }); @@ -98,22 +103,13 @@ export const graphqlHandler = (options: GraphQLHandlerOptions): RouteHandlerMeth useArmor(), useSentry({ startTransaction: false, - renameTransaction: true, + renameTransaction: false, /** * When it's not `null`, the plugin modifies the error object. * We end up with an unintended error masking, because the GraphQLYogaError is replaced with GraphQLError (without error.originalError). */ eventIdKey: null, operationName: () => 'graphql', - transactionName(args) { - const rootOperation = args.document.definitions.find( - o => o.kind === Kind.OPERATION_DEFINITION, - ) as OperationDefinitionNode; - const operationType = rootOperation.operation; - const opName = args.operationName || rootOperation.name?.value || 'anonymous'; - - return `${operationType}.${opName}`; - }, includeRawResult: false, includeResolverArgs: false, includeExecuteVariables: true, @@ -128,6 +124,7 @@ export const graphqlHandler = (options: GraphQLHandlerOptions): RouteHandlerMeth : clientNameHeaderValue; if (transaction) { + transaction.setName(`graphql.${args.operationName || 'unknown'}`); transaction.setTag('graphql_client_name', clientName ?? 'unknown'); transaction.sampled = !!clientName && clientName !== 'Hive Client'; } @@ -141,7 +138,7 @@ export const graphqlHandler = (options: GraphQLHandlerOptions): RouteHandlerMeth }, appendTags: ({ contextValue }) => { const supertokens_user_id = extractUserId(contextValue as any); - const request_id = cleanRequestId((contextValue as Context).req.headers['x-request-id']); + const request_id = (contextValue as Context).requestId; return { supertokens_user_id, @@ -248,13 +245,15 @@ export const graphqlHandler = (options: GraphQLHandlerOptions): RouteHandlerMeth requestId, }, async () => { - const response = await server.handleNodeRequest(req, { - req, - reply, - headers: req.headers, - requestId, - session: null, - abortSignal: controller.signal, + const response = await runWithAsyncContext(() => { + return server.handleNodeRequest(req, { + req, + reply, + headers: req.headers, + requestId, + session: null, + abortSignal: controller.signal, + }); }); response.headers.forEach((value, key) => { diff --git a/packages/services/server/src/index.ts b/packages/services/server/src/index.ts index 6a9b59db87..8cda5f79e4 100644 --- a/packages/services/server/src/index.ts +++ b/packages/services/server/src/index.ts @@ -42,6 +42,7 @@ export async function main() { enabled: true, environment: env.environment, dsn: env.sentry.dsn, + enableTracing: true, tracesSampleRate: 1, release: env.release, integrations: [ diff --git a/packages/web/app/environment.ts b/packages/web/app/environment.ts index 3cf3bc2d85..eeef245533 100644 --- a/packages/web/app/environment.ts +++ b/packages/web/app/environment.ts @@ -234,6 +234,8 @@ if (config.sentry) { Sentry.init({ serverName: 'app', enabled: true, + enableTracing: true, + tracesSampleRate: 1, dsn: config.sentry.dsn, release: config.release, environment: config.environment, diff --git a/packages/web/app/pages/api/proxy.ts b/packages/web/app/pages/api/proxy.ts index 44bcf42fa5..80c8d5e665 100644 --- a/packages/web/app/pages/api/proxy.ts +++ b/packages/web/app/pages/api/proxy.ts @@ -2,37 +2,9 @@ import { NextApiRequest, NextApiResponse } from 'next'; import hyperid from 'hyperid'; import { env } from '@/env/backend'; import { extractAccessTokenFromRequest } from '@/lib/api/extract-access-token-from-request'; -import { captureException, startTransaction } from '@sentry/nextjs'; -import type { Transaction } from '@sentry/types'; +import { captureException, getCurrentHub, wrapApiHandlerWithSentry } from '@sentry/nextjs'; const reqIdGenerate = hyperid({ fixedLength: true }); - -function useTransaction(res: any) { - const existingTransaction: Transaction = res.__sentryTransaction; - - if (existingTransaction) { - existingTransaction.setName('app.graphql'); - existingTransaction.op = 'app.graphql'; - - return { - transaction: existingTransaction, - finish() {}, - }; - } - - const transaction = startTransaction({ - name: 'app.graphql', - op: 'app.graphql', - }); - - return { - transaction, - finish() { - transaction.finish(); - }, - }; -} - async function graphql(req: NextApiRequest, res: NextApiResponse) { const url = env.graphqlEndpoint; @@ -60,9 +32,22 @@ async function graphql(req: NextApiRequest, res: NextApiResponse) { return res.send(await response.text()); } - const { transaction, finish: finishTransaction } = useTransaction(res); + const scope = getCurrentHub().getScope(); + const rootSpan = scope?.getSpan(); + + const body: { + operationName?: string; + query: string; + variables?: Record; + } = { + operationName: req.body.operationName, + query: req.body.query, + variables: req.body.variables, + }; + + scope.setTransactionName(`proxy.${body?.operationName || 'unknown'}`); - const accessSpan = transaction.startChild({ + const accessSpan = rootSpan?.startChild({ op: 'app.accessToken', }); @@ -75,16 +60,15 @@ async function graphql(req: NextApiRequest, res: NextApiResponse) { } if (!accessToken) { - accessSpan.setHttpStatus(401); - accessSpan.finish(); - finishTransaction(); + accessSpan?.setHttpStatus(401); + accessSpan?.finish(); res.status(401).json({}); return; } - accessSpan.setHttpStatus(200); + rootSpan?.setHttpStatus(200); - const graphqlSpan = accessSpan.startChild({ + const graphqlSpan = rootSpan?.startChild({ op: 'graphql', }); @@ -97,7 +81,6 @@ async function graphql(req: NextApiRequest, res: NextApiResponse) { 'accept-encoding': req.headers['accept-encoding'], 'x-request-id': requestId, 'X-API-Token': req.headers['x-api-token'] ?? '', - 'sentry-trace': transaction.toTraceparent(), 'graphql-client-name': 'Hive App', 'graphql-client-version': env.release, }, @@ -111,18 +94,16 @@ async function graphql(req: NextApiRequest, res: NextApiResponse) { } const parsedData = await response.json(); - graphqlSpan.setHttpStatus(200); - graphqlSpan.finish(); - finishTransaction(); + graphqlSpan?.setHttpStatus(200); + graphqlSpan?.finish(); res.status(200).json(parsedData); } catch (error) { console.error(error); captureException(error); - graphqlSpan.setHttpStatus(500); - graphqlSpan.finish(); - finishTransaction(); + graphqlSpan?.setHttpStatus(500); + graphqlSpan?.finish(); // TODO: better type narrowing of the error const status = (error as Record)?.['status'] ?? 500; @@ -136,7 +117,7 @@ async function graphql(req: NextApiRequest, res: NextApiResponse) { } } -export default graphql; +export default wrapApiHandlerWithSentry(graphql, 'api/proxy'); export const config = { api: { From 102f49c13e161f76c6d45b30941c8f33394cace9 Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Mon, 17 Apr 2023 14:06:51 +0200 Subject: [PATCH 05/11] env name --- packages/services/server/.env.template | 2 +- packages/web/app/.env.template | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/services/server/.env.template b/packages/services/server/.env.template index e8290b57a4..221bce4f4a 100644 --- a/packages/services/server/.env.template +++ b/packages/services/server/.env.template @@ -1,4 +1,4 @@ -ENVIRONMENT=local +ENVIRONMENT=development LOG_LEVEL=debug POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres diff --git a/packages/web/app/.env.template b/packages/web/app/.env.template index bf5b94a847..98f47995d1 100644 --- a/packages/web/app/.env.template +++ b/packages/web/app/.env.template @@ -1,7 +1,7 @@ GRAPHQL_ENDPOINT="http://localhost:3001/graphql" APP_BASE_URL="http://localhost:3000" SERVER_ENDPOINT="" -ENVIRONMENT="LOCAL" +ENVIRONMENT="development" # Supertokens From 69fd3446a34abfb21bd7acd4a97c2dae880d75e7 Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Mon, 17 Apr 2023 14:20:52 +0200 Subject: [PATCH 06/11] lint --- packages/services/server/src/graphql-handler.ts | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/services/server/src/graphql-handler.ts b/packages/services/server/src/graphql-handler.ts index 881f6a6351..5eb91c80a7 100644 --- a/packages/services/server/src/graphql-handler.ts +++ b/packages/services/server/src/graphql-handler.ts @@ -4,14 +4,7 @@ import type { FastifyRequest, RouteHandlerMethod, } from 'fastify'; -import { - GraphQLError, - Kind, - OperationDefinitionNode, - print, - ValidationContext, - ValidationRule, -} from 'graphql'; +import { GraphQLError, print, ValidationContext, ValidationRule } from 'graphql'; import { createYoga, Plugin, useErrorHandler } from 'graphql-yoga'; import hyperid from 'hyperid'; import zod from 'zod'; @@ -22,7 +15,7 @@ import { useHive } from '@graphql-hive/client'; import { Registry, RegistryContext } from '@hive/api'; import { HiveError } from '@hive/api'; import { cleanRequestId } from '@hive/service-common'; -import { getCurrentHub, runWithAsyncContext } from '@sentry/node'; +import { runWithAsyncContext } from '@sentry/node'; import { fetch } from '@whatwg-node/fetch'; import { asyncStorage } from './async-storage'; import type { HiveConfig } from './environment'; From e03a41175e05b1cd4e4abc7074976e08c70d97fb Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Mon, 17 Apr 2023 15:32:52 +0200 Subject: [PATCH 07/11] om --- packages/services/server/src/index.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/services/server/src/index.ts b/packages/services/server/src/index.ts index 8cda5f79e4..d1bde97024 100644 --- a/packages/services/server/src/index.ts +++ b/packages/services/server/src/index.ts @@ -18,7 +18,7 @@ import { } from '@hive/service-common'; import { createConnectionString, createStorage as createPostgreSQLStorage } from '@hive/storage'; import { Dedupe, ExtraErrorData } from '@sentry/integrations'; -import * as Sentry from '@sentry/node'; +import { captureException, init, Integrations, SeverityLevel } from '@sentry/node'; import { createServerAdapter } from '@whatwg-node/server'; import { createContext, internalApiRouter } from './api'; import { asyncStorage } from './async-storage'; @@ -37,7 +37,7 @@ const LegacyCheckAuth0EmailUserExistsPayloadModel = zod.object({ export async function main() { if (env.sentry) { - Sentry.init({ + init({ serverName: 'api', enabled: true, environment: env.environment, @@ -46,9 +46,9 @@ export async function main() { tracesSampleRate: 1, release: env.release, integrations: [ - new Sentry.Integrations.Http({ tracing: true }), - new Sentry.Integrations.ContextLines(), - new Sentry.Integrations.LinkedErrors(), + new Integrations.Http({ tracing: true }), + new Integrations.ContextLines(), + new Integrations.LinkedErrors(), new ExtraErrorData({ depth: 2, }), @@ -99,7 +99,7 @@ export async function main() { }, }); - function createErrorHandler(level: Sentry.SeverityLevel): LogFn { + function createErrorHandler(level: SeverityLevel): LogFn { return (error: any, errorLike?: any, ...args: any[]) => { server.log.error(error, errorLike, ...args); @@ -111,7 +111,7 @@ export async function main() { } if (errorObj instanceof Error) { - Sentry.captureException(errorObj, { + captureException(errorObj, { level, extra: { error, @@ -446,7 +446,7 @@ export async function main() { await server.listen(port, '::'); } catch (error) { server.log.fatal(error); - Sentry.captureException(error, { + captureException(error, { level: 'fatal', }); process.exit(1); From 763da0357f10c38eccd1a099107260971a3a52eb Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Mon, 17 Apr 2023 17:57:22 +0200 Subject: [PATCH 08/11] OMG --- package.json | 2 +- packages/services/server/src/index.ts | 44 ++-- packages/web/app/environment.ts | 30 ++- pnpm-lock.yaml | 281 ++------------------------ 4 files changed, 52 insertions(+), 305 deletions(-) diff --git a/package.json b/package.json index ca469766e4..7849fd690c 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ }, "pnpm": { "overrides": { - "tsup": "6.5.0", + "tsup": "6.7.0", "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.cd77847.0" }, "patchedDependencies": { diff --git a/packages/services/server/src/index.ts b/packages/services/server/src/index.ts index d1bde97024..ee7d0766a1 100644 --- a/packages/services/server/src/index.ts +++ b/packages/services/server/src/index.ts @@ -36,29 +36,27 @@ const LegacyCheckAuth0EmailUserExistsPayloadModel = zod.object({ }); export async function main() { - if (env.sentry) { - init({ - serverName: 'api', - enabled: true, - environment: env.environment, - dsn: env.sentry.dsn, - enableTracing: true, - tracesSampleRate: 1, - release: env.release, - integrations: [ - new Integrations.Http({ tracing: true }), - new Integrations.ContextLines(), - new Integrations.LinkedErrors(), - new ExtraErrorData({ - depth: 2, - }), - new Dedupe(), - ], - maxBreadcrumbs: 5, - defaultIntegrations: false, - autoSessionTracking: false, - }); - } + init({ + serverName: 'api', + enabled: !!env.sentry, + environment: env.environment, + dsn: env.sentry?.dsn, + enableTracing: true, + tracesSampleRate: 1, + release: env.release, + integrations: [ + new Integrations.Http({ tracing: true }), + new Integrations.ContextLines(), + new Integrations.LinkedErrors(), + new ExtraErrorData({ + depth: 2, + }), + new Dedupe(), + ], + maxBreadcrumbs: 5, + defaultIntegrations: false, + autoSessionTracking: false, + }); const server = await createServer({ name: 'graphql-api', diff --git a/packages/web/app/environment.ts b/packages/web/app/environment.ts index eeef245533..e3cc976ba1 100644 --- a/packages/web/app/environment.ts +++ b/packages/web/app/environment.ts @@ -230,19 +230,17 @@ declare global { globalThis['__backend_env'] = config; // TODO: I don't like this here, but it seems like it makes most sense here :) -if (config.sentry) { - Sentry.init({ - serverName: 'app', - enabled: true, - enableTracing: true, - tracesSampleRate: 1, - dsn: config.sentry.dsn, - release: config.release, - environment: config.environment, - integrations: [ - new Sentry.Integrations.Http({ - tracing: true, - }), - ], - }); -} +Sentry.init({ + serverName: 'app', + enabled: !!config.sentry, + enableTracing: true, + tracesSampleRate: 1, + dsn: config.sentry?.dsn, + release: config.release, + environment: config.environment, + integrations: [ + new Sentry.Integrations.Http({ + tracing: true, + }), + ], +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51d35a1788..a82516d10b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,7 +1,7 @@ lockfileVersion: '6.0' overrides: - tsup: 6.5.0 + tsup: 6.7.0 '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.cd77847.0 patchedDependencies: @@ -146,8 +146,8 @@ importers: specifier: 10.9.1 version: 10.9.1(@swc/core@1.3.51)(@types/node@18.15.11)(typescript@5.0.4) tsup: - specifier: 6.5.0 - version: 6.5.0(@swc/core@1.3.51)(ts-node@10.9.1)(typescript@5.0.4) + specifier: 6.7.0 + version: 6.7.0(@swc/core@1.3.51)(ts-node@10.9.1)(typescript@5.0.4) tsx: specifier: 3.12.6 version: 3.12.6 @@ -7326,15 +7326,6 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.15.15: - resolution: {integrity: sha512-JJjZjJi2eBL01QJuWjfCdZxcIgot+VoK6Fq7eKF9w4YHm9hwl7nhBR1o2Wnt/WcANk5l9SkpvrldW1PLuXxcbw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.16.17: resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} engines: {node: '>=12'} @@ -7497,15 +7488,6 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.15.15: - resolution: {integrity: sha512-lhz6UNPMDXUhtXSulw8XlFAtSYO26WmHQnCi2Lg2p+/TMiJKNLtZCYUxV4wG6rZMzXmr8InGpNwk+DLT2Hm0PA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.16.17: resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} engines: {node: '>=12'} @@ -16396,7 +16378,7 @@ packages: p-limit: 4.0.0 resolve.exports: 2.0.0 tslib: 2.5.0 - tsup: 6.5.0(@swc/core@1.3.51)(ts-node@10.9.1)(typescript@5.0.4) + tsup: 6.7.0(@swc/core@1.3.51)(ts-node@10.9.1)(typescript@5.0.4) typescript: 5.0.4 yargs: 17.6.2 zod: 3.21.4 @@ -16608,13 +16590,13 @@ packages: dev: false patched: true - /bundle-require@3.1.2(esbuild@0.15.15): - resolution: {integrity: sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==} + /bundle-require@4.0.1(esbuild@0.17.17): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: - esbuild: '>=0.13' + esbuild: '>=0.17' dependencies: - esbuild: 0.15.15 + esbuild: 0.17.17 load-tsconfig: 0.2.3 dev: true @@ -18969,150 +18951,6 @@ packages: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} dev: true - /esbuild-android-64@0.15.15: - resolution: {integrity: sha512-F+WjjQxO+JQOva3tJWNdVjouFMLK6R6i5gjDvgUthLYJnIZJsp1HlF523k73hELY20WPyEO8xcz7aaYBVkeg5Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64@0.15.15: - resolution: {integrity: sha512-attlyhD6Y22jNyQ0fIIQ7mnPvDWKw7k6FKnsXlBvQE6s3z6s6cuEHcSgoirquQc7TmZgVCK5fD/2uxmRN+ZpcQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64@0.15.15: - resolution: {integrity: sha512-ohZtF8W1SHJ4JWldsPVdk8st0r9ExbAOSrBOh5L+Mq47i696GVwv1ab/KlmbUoikSTNoXEhDzVpxUR/WIO19FQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64@0.15.15: - resolution: {integrity: sha512-P8jOZ5zshCNIuGn+9KehKs/cq5uIniC+BeCykvdVhx/rBXSxmtj3CUIKZz4sDCuESMbitK54drf/2QX9QHG5Ag==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64@0.15.15: - resolution: {integrity: sha512-KkTg+AmDXz1IvA9S1gt8dE24C8Thx0X5oM0KGF322DuP+P3evwTL9YyusHAWNsh4qLsR80nvBr/EIYs29VSwuA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64@0.15.15: - resolution: {integrity: sha512-FUcML0DRsuyqCMfAC+HoeAqvWxMeq0qXvclZZ/lt2kLU6XBnDA5uKTLUd379WYEyVD4KKFctqWd9tTuk8C/96g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32@0.15.15: - resolution: {integrity: sha512-q28Qn5pZgHNqug02aTkzw5sW9OklSo96b5nm17Mq0pDXrdTBcQ+M6Q9A1B+dalFeynunwh/pvfrNucjzwDXj+Q==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64@0.15.15: - resolution: {integrity: sha512-217KPmWMirkf8liO+fj2qrPwbIbhNTGNVtvqI1TnOWJgcMjUWvd677Gq3fTzXEjilkx2yWypVnTswM2KbXgoAg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64@0.15.15: - resolution: {integrity: sha512-/ltmNFs0FivZkYsTzAsXIfLQX38lFnwJTWCJts0IbCqWZQe+jjj0vYBNbI0kmXLb3y5NljiM5USVAO1NVkdh2g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm@0.15.15: - resolution: {integrity: sha512-RYVW9o2yN8yM7SB1yaWr378CwrjvGCyGybX3SdzPHpikUHkME2AP55Ma20uNwkNyY2eSYFX9D55kDrfQmQBR4w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le@0.15.15: - resolution: {integrity: sha512-PksEPb321/28GFFxtvL33yVPfnMZihxkEv5zME2zapXGp7fA1X2jYeiTUK+9tJ/EGgcNWuwvtawPxJG7Mmn86A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le@0.15.15: - resolution: {integrity: sha512-ek8gJBEIhcpGI327eAZigBOHl58QqrJrYYIZBWQCnH3UnXoeWMrMZLeeZL8BI2XMBhP+sQ6ERctD5X+ajL/AIA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64@0.15.15: - resolution: {integrity: sha512-H5ilTZb33/GnUBrZMNJtBk7/OXzDHDXjIzoLXHSutwwsLxSNaLxzAaMoDGDd/keZoS+GDBqNVxdCkpuiRW4OSw==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x@0.15.15: - resolution: {integrity: sha512-jKaLUg78mua3rrtrkpv4Or2dNTJU7bgHN4bEjT4OX4GR7nLBSA9dfJezQouTxMmIW7opwEC5/iR9mpC18utnxQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64@0.15.15: - resolution: {integrity: sha512-aOvmF/UkjFuW6F36HbIlImJTTx45KUCHJndtKo+KdP8Dhq3mgLRKW9+6Ircpm8bX/RcS3zZMMmaBLkvGY06Gvw==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64@0.15.15: - resolution: {integrity: sha512-HFFX+WYedx1w2yJ1VyR1Dfo8zyYGQZf1cA69bLdrHzu9svj6KH6ZLK0k3A1/LFPhcEY9idSOhsB2UyU0tHPxgQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /esbuild-plugin-alias@0.2.1: resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==} dev: true @@ -19128,72 +18966,6 @@ packages: - supports-color dev: true - /esbuild-sunos-64@0.15.15: - resolution: {integrity: sha512-jOPBudffG4HN8yJXcK9rib/ZTFoTA5pvIKbRrt3IKAGMq1EpBi4xoVoSRrq/0d4OgZLaQbmkHp8RO9eZIn5atA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32@0.15.15: - resolution: {integrity: sha512-MDkJ3QkjnCetKF0fKxCyYNBnOq6dmidcwstBVeMtXSgGYTy8XSwBeIE4+HuKiSsG6I/mXEb++px3IGSmTN0XiA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64@0.15.15: - resolution: {integrity: sha512-xaAUIB2qllE888SsMU3j9nrqyLbkqqkpQyWVkfwSil6BBPgcPk3zOFitTTncEKCLTQy3XV9RuH7PDj3aJDljWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64@0.15.15: - resolution: {integrity: sha512-ttuoCYCIJAFx4UUKKWYnFdrVpoXa3+3WWkXVI6s09U+YjhnyM5h96ewTq/WgQj9LFSIlABQvadHSOQyAVjW5xQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild@0.15.15: - resolution: {integrity: sha512-TEw/lwK4Zzld9x3FedV6jy8onOUHqcEX3ADFk4k+gzPUwrxn8nWV62tH0udo8jOtjFodlEfc4ypsqX3e+WWO6w==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.15 - '@esbuild/linux-loong64': 0.15.15 - esbuild-android-64: 0.15.15 - esbuild-android-arm64: 0.15.15 - esbuild-darwin-64: 0.15.15 - esbuild-darwin-arm64: 0.15.15 - esbuild-freebsd-64: 0.15.15 - esbuild-freebsd-arm64: 0.15.15 - esbuild-linux-32: 0.15.15 - esbuild-linux-64: 0.15.15 - esbuild-linux-arm: 0.15.15 - esbuild-linux-arm64: 0.15.15 - esbuild-linux-mips64le: 0.15.15 - esbuild-linux-ppc64le: 0.15.15 - esbuild-linux-riscv64: 0.15.15 - esbuild-linux-s390x: 0.15.15 - esbuild-netbsd-64: 0.15.15 - esbuild-openbsd-64: 0.15.15 - esbuild-sunos-64: 0.15.15 - esbuild-windows-32: 0.15.15 - esbuild-windows-64: 0.15.15 - esbuild-windows-arm64: 0.15.15 - dev: true - /esbuild@0.16.17: resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} engines: {node: '>=12'} @@ -28312,14 +28084,6 @@ packages: fsevents: 2.3.2 dev: true - /rollup@3.4.0: - resolution: {integrity: sha512-4g8ZrEFK7UbDvy3JF+d5bLiC8UKkS3n/27/cnVeESwB1LVPl6MoPL32/6+SCQ1vHTp6Mvp2veIHtwELhi+uXEw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -29384,19 +29148,6 @@ packages: resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} dev: false - /sucrase@3.28.0: - resolution: {integrity: sha512-TK9600YInjuiIhVM3729rH4ZKPOsGeyXUwY+Ugu9eilNbdTFyHr6XcAGYbRVZPDgWj6tgI7bx95aaJjHnbffag==} - engines: {node: '>=8'} - hasBin: true - dependencies: - commander: 4.1.1 - glob: 7.1.6 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.5 - ts-interface-checker: 0.1.13 - dev: true - /sucrase@3.31.0: resolution: {integrity: sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ==} engines: {node: '>=8'} @@ -30099,14 +29850,14 @@ packages: engines: {node: '>=0.6.x'} dev: false - /tsup@6.5.0(@swc/core@1.3.51)(ts-node@10.9.1)(typescript@5.0.4): - resolution: {integrity: sha512-36u82r7rYqRHFkD15R20Cd4ercPkbYmuvRkz3Q1LCm5BsiFNUgpo36zbjVhCOgvjyxNBWNKHsaD5Rl8SykfzNA==} - engines: {node: '>=14'} + /tsup@6.7.0(@swc/core@1.3.51)(ts-node@10.9.1)(typescript@5.0.4): + resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} + engines: {node: '>=14.18'} hasBin: true peerDependencies: '@swc/core': ^1 postcss: ^8.4.12 - typescript: ^4.1.0 + typescript: '>=4.1.0' peerDependenciesMeta: '@swc/core': optional: true @@ -30116,19 +29867,19 @@ packages: optional: true dependencies: '@swc/core': 1.3.51 - bundle-require: 3.1.2(esbuild@0.15.15) + bundle-require: 4.0.1(esbuild@0.17.17) cac: 6.7.14 chokidar: 3.5.3 debug: 4.3.4 - esbuild: 0.15.15 + esbuild: 0.17.17 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 postcss-load-config: 3.1.4(ts-node@10.9.1) resolve-from: 5.0.0 - rollup: 3.4.0 + rollup: 3.15.0 source-map: 0.8.0-beta.0 - sucrase: 3.28.0 + sucrase: 3.31.0 tree-kill: 1.2.2 typescript: 5.0.4 transitivePeerDependencies: From 1daa59d4f9c15a1ac26d376b8293d4f3ca25a5f7 Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Mon, 17 Apr 2023 18:35:06 +0200 Subject: [PATCH 09/11] Try this --- packages/web/app/environment.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/web/app/environment.ts b/packages/web/app/environment.ts index e3cc976ba1..2b17e9432e 100644 --- a/packages/web/app/environment.ts +++ b/packages/web/app/environment.ts @@ -1,5 +1,5 @@ import zod from 'zod'; -import Sentry from '@sentry/nextjs'; +import { init, Integrations } from '@sentry/nextjs'; // treat an empty string `''` as `undefined` const emptyString = (input: T) => { @@ -230,7 +230,7 @@ declare global { globalThis['__backend_env'] = config; // TODO: I don't like this here, but it seems like it makes most sense here :) -Sentry.init({ +init({ serverName: 'app', enabled: !!config.sentry, enableTracing: true, @@ -239,7 +239,7 @@ Sentry.init({ release: config.release, environment: config.environment, integrations: [ - new Sentry.Integrations.Http({ + new Integrations.Http({ tracing: true, }), ], From 1bdd67b551e1670d7fdc9d2b593df8c00fc58409 Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Mon, 17 Apr 2023 18:38:46 +0200 Subject: [PATCH 10/11] Try this --- packages/web/app/environment.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/web/app/environment.ts b/packages/web/app/environment.ts index 2b17e9432e..6c4383150a 100644 --- a/packages/web/app/environment.ts +++ b/packages/web/app/environment.ts @@ -1,5 +1,7 @@ import zod from 'zod'; -import { init, Integrations } from '@sentry/nextjs'; +import Sentry from '@sentry/nextjs'; + +const { init, Integrations } = Sentry; // treat an empty string `''` as `undefined` const emptyString = (input: T) => { From 8623531b930cf0443ae9b1feca4b3dcb23fd3775 Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Wed, 19 Apr 2023 12:49:23 +0200 Subject: [PATCH 11/11] Fix maybe? --- packages/web/app/environment.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/app/environment.ts b/packages/web/app/environment.ts index 6c4383150a..861d845c29 100644 --- a/packages/web/app/environment.ts +++ b/packages/web/app/environment.ts @@ -1,5 +1,5 @@ import zod from 'zod'; -import Sentry from '@sentry/nextjs'; +import * as Sentry from '@sentry/nextjs'; const { init, Integrations } = Sentry;