diff --git a/packages/core/src/tracing/spans/envelope.ts b/packages/core/src/tracing/spans/envelope.ts index 1be30768aa9c..1bd99b03fd68 100644 --- a/packages/core/src/tracing/spans/envelope.ts +++ b/packages/core/src/tracing/spans/envelope.ts @@ -25,7 +25,7 @@ export function createStreamedSpanEnvelope( ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }), }; - const inferSetting = options.sendDefaultPii ? 'auto' : 'never'; + const inferSetting = client.getDataCollectionOptions().userInfo ? 'auto' : 'never'; const spanContainer: SpanContainerItem = [ { type: 'span', item_count: serializedSpans.length, content_type: 'application/vnd.sentry.items.span.v2+json' }, diff --git a/packages/core/test/lib/tracing/spans/envelope.test.ts b/packages/core/test/lib/tracing/spans/envelope.test.ts index eb0ec478c5d7..97955850131b 100644 --- a/packages/core/test/lib/tracing/spans/envelope.test.ts +++ b/packages/core/test/lib/tracing/spans/envelope.test.ts @@ -240,11 +240,11 @@ describe('createStreamedSpanEnvelope', () => { ]); }); - it("includes ingest_settings with 'auto' values when in browser and sendDefaultPii is true", () => { + it("includes ingest_settings with 'auto' values when in browser and dataCollection.userInfo is true", () => { vi.mocked(isBrowser).mockReturnValue(true); const mockSpan = createMockSerializedSpan(); - const mockClient = new TestClient(getDefaultTestClientOptions({ sendDefaultPii: true })); + const mockClient = new TestClient(getDefaultTestClientOptions({ dataCollection: { userInfo: true } })); const dsc: Partial = {}; const envelopeItems = createStreamedSpanEnvelope([mockSpan], dsc, mockClient)[1]; @@ -261,11 +261,11 @@ describe('createStreamedSpanEnvelope', () => { ]); }); - it("includes ingest_settings with 'never' values when in browser and sendDefaultPii is false", () => { + it("includes ingest_settings with 'never' values when in browser and dataCollection.userInfo is false", () => { vi.mocked(isBrowser).mockReturnValue(true); const mockSpan = createMockSerializedSpan(); - const mockClient = new TestClient(getDefaultTestClientOptions({ sendDefaultPii: false })); + const mockClient = new TestClient(getDefaultTestClientOptions({ dataCollection: { userInfo: false } })); const dsc: Partial = {}; const envelopeItems = createStreamedSpanEnvelope([mockSpan], dsc, mockClient)[1]; @@ -283,6 +283,26 @@ describe('createStreamedSpanEnvelope', () => { }); it('omits ingest_settings when not in browser', () => { + const mockSpan = createMockSerializedSpan(); + const mockClient = new TestClient(getDefaultTestClientOptions({ dataCollection: { userInfo: true } })); + const dsc: Partial = {}; + + const envelopeItems = createStreamedSpanEnvelope([mockSpan], dsc, mockClient)[1]; + + expect(envelopeItems).toEqual([ + [ + { type: 'span', item_count: 1, content_type: 'application/vnd.sentry.items.span.v2+json' }, + { + version: 2, + items: [mockSpan], + }, + ], + ]); + }); + + it('respects sendDefaultPii: true bridged to dataCollection.userInfo', () => { + vi.mocked(isBrowser).mockReturnValue(true); + const mockSpan = createMockSerializedSpan(); const mockClient = new TestClient(getDefaultTestClientOptions({ sendDefaultPii: true })); const dsc: Partial = {}; @@ -294,6 +314,28 @@ describe('createStreamedSpanEnvelope', () => { { type: 'span', item_count: 1, content_type: 'application/vnd.sentry.items.span.v2+json' }, { version: 2, + ingest_settings: { infer_ip: 'auto', infer_user_agent: 'auto' }, + items: [mockSpan], + }, + ], + ]); + }); + + it('respects sendDefaultPii: false bridged to dataCollection.userInfo', () => { + vi.mocked(isBrowser).mockReturnValue(true); + + const mockSpan = createMockSerializedSpan(); + const mockClient = new TestClient(getDefaultTestClientOptions({ sendDefaultPii: false })); + const dsc: Partial = {}; + + const envelopeItems = createStreamedSpanEnvelope([mockSpan], dsc, mockClient)[1]; + + expect(envelopeItems).toEqual([ + [ + { type: 'span', item_count: 1, content_type: 'application/vnd.sentry.items.span.v2+json' }, + { + version: 2, + ingest_settings: { infer_ip: 'never', infer_user_agent: 'never' }, items: [mockSpan], }, ],