From 06df3b78546045dd072f46fe30dd8a88d49d2fbd Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 4 Mar 2025 11:50:55 -0500 Subject: [PATCH 1/2] ref(core): Constrain `SdkProcessingMetadata` to known keys --- packages/core/src/constants.ts | 2 ++ packages/core/src/scope.ts | 3 ++- packages/core/src/tracing/trace.ts | 3 +-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/core/src/constants.ts b/packages/core/src/constants.ts index 38475b857ace..90a7ad701d1b 100644 --- a/packages/core/src/constants.ts +++ b/packages/core/src/constants.ts @@ -1 +1,3 @@ export const DEFAULT_ENVIRONMENT = 'production'; + +export const SUPPRESS_TRACING_KEY = '__SENTRY_SUPPRESS_TRACING__'; diff --git a/packages/core/src/scope.ts b/packages/core/src/scope.ts index a302e5a14c34..223b5459b15d 100644 --- a/packages/core/src/scope.ts +++ b/packages/core/src/scope.ts @@ -1,5 +1,6 @@ /* eslint-disable max-lines */ import type { Client } from './client'; +import type { SUPPRESS_TRACING_KEY } from './constants'; import { updateSession } from './session'; import type { Attachment, @@ -54,7 +55,6 @@ export interface ScopeContext { } export interface SdkProcessingMetadata { - [key: string]: unknown; requestSession?: { status: 'ok' | 'errored' | 'crashed'; }; @@ -64,6 +64,7 @@ export interface SdkProcessingMetadata { capturedSpanIsolationScope?: Scope; spanCountBeforeProcessing?: number; ipAddress?: string; + [SUPPRESS_TRACING_KEY]?: boolean; } /** diff --git a/packages/core/src/tracing/trace.ts b/packages/core/src/tracing/trace.ts index 00e004a80131..fa548c0149c6 100644 --- a/packages/core/src/tracing/trace.ts +++ b/packages/core/src/tracing/trace.ts @@ -32,8 +32,7 @@ import { SentryNonRecordingSpan } from './sentryNonRecordingSpan'; import { SentrySpan } from './sentrySpan'; import { SPAN_STATUS_ERROR } from './spanstatus'; import { setCapturedScopesOnSpan } from './utils'; - -const SUPPRESS_TRACING_KEY = '__SENTRY_SUPPRESS_TRACING__'; +import { SUPPRESS_TRACING_KEY } from '../constants'; /** * Wraps a function with a transaction/span and finishes the span after the function is done. From 72e18edb55b2c0a55e0b3cc906f70612f59a190d Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 4 Mar 2025 12:09:02 -0500 Subject: [PATCH 2/2] add profile --- packages/core/src/scope.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/core/src/scope.ts b/packages/core/src/scope.ts index 223b5459b15d..c1c6e205191e 100644 --- a/packages/core/src/scope.ts +++ b/packages/core/src/scope.ts @@ -65,6 +65,9 @@ export interface SdkProcessingMetadata { spanCountBeforeProcessing?: number; ipAddress?: string; [SUPPRESS_TRACING_KEY]?: boolean; + // Used by profiling integrations. The profiling integrations refine this type to ensure + // type safety (for ex. see `isProfiledTransactionEvent` function in `@sentry/browser`). + profile?: unknown; } /**