Skip to content

Commit 7d9e523

Browse files
fix deprecated ip
1 parent c8b49de commit 7d9e523

2 files changed

Lines changed: 44 additions & 17 deletions

File tree

packages/core/src/js/client.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,15 @@ export class ReactNativeClient extends Client<ReactNativeClientOptions> {
5252
ignoreRequireCycleLogs(ReactNativeLibraries.ReactNativeVersion?.version);
5353
options._metadata = options._metadata || {};
5454
options._metadata.sdk = options._metadata.sdk || defaultSdkInfo;
55+
56+
// Only allow IP inferral by Relay if sendDefaultPii is true
57+
if (options._metadata?.sdk) {
58+
options._metadata.sdk.settings = {
59+
infer_ip: options.sendDefaultPii ? 'auto' : 'never',
60+
...options._metadata.sdk.settings,
61+
};
62+
}
63+
5564
// We default this to true, as it is the safer scenario
5665
options.parentSpanIsAlwaysRootSpan =
5766
options.parentSpanIsAlwaysRootSpan === undefined ? true : options.parentSpanIsAlwaysRootSpan;
@@ -60,7 +69,6 @@ export class ReactNativeClient extends Client<ReactNativeClientOptions> {
6069
this._outcomesBuffer = [];
6170

6271
if (options.sendDefaultPii === true) {
63-
this.on('postprocessEvent', addAutoIpAddressToUser);
6472
this.on('beforeSendSession', addAutoIpAddressToSession);
6573
}
6674

packages/core/test/client.test.ts

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -687,25 +687,45 @@ describe('Tests ReactNativeClient', () => {
687687
});
688688

689689
expect(mockTransportSend.mock.calls[0][firstArg][envelopeItems][0][envelopeItemPayload].user).toEqual(
690-
expect.objectContaining({ ip_address: '{{auto}}' }),
690+
expect.objectContaining({ ip_address: undefined }),
691+
);
692+
expect(mockTransportSend.mock.calls[0][firstArg][envelopeItems][0][envelopeItemPayload].sdk).toEqual(
693+
expect.objectContaining({
694+
settings: {
695+
infer_ip: 'never'
696+
}
697+
}
698+
),
691699
);
692700
});
693701

694-
test('adds ip_address {{auto}} to user if not set', () => {
702+
test('adds ip_address undefined to user if not set', () => {
695703
client.captureEvent({
696704
user: {},
697705
});
698706

699-
expect(mockTransportSend.mock.calls[0][firstArg][envelopeItems][0][envelopeItemPayload].user).toEqual(
700-
expect.objectContaining({ ip_address: '{{auto}}' }),
707+
expect(mockTransportSend.mock.calls[0][firstArg][envelopeItems][0][envelopeItemPayload].user).toBeEmptyObject();
708+
expect(mockTransportSend.mock.calls[0][firstArg][envelopeItems][0][envelopeItemPayload].sdk).toEqual(
709+
expect.objectContaining({
710+
settings: {
711+
infer_ip: 'never'
712+
}
713+
}
714+
),
701715
);
702716
});
703717

704-
test('adds ip_address {{auto}} to undefined user', () => {
718+
test('leaves ip_address undefined to undefined user', () => {
705719
client.captureEvent({});
706720

707-
expect(mockTransportSend.mock.calls[0][firstArg][envelopeItems][0][envelopeItemPayload].user).toEqual(
708-
expect.objectContaining({ ip_address: '{{auto}}' }),
721+
expect(mockTransportSend.mock.calls[0][firstArg][envelopeItems][0][envelopeItemPayload].user).toBeUndefined();
722+
expect(mockTransportSend.mock.calls[0][firstArg][envelopeItems][0][envelopeItemPayload].sdk).toEqual(
723+
expect.objectContaining({
724+
settings: {
725+
infer_ip: 'never'
726+
}
727+
}
728+
),
709729
);
710730
});
711731

@@ -724,15 +744,14 @@ describe('Tests ReactNativeClient', () => {
724744
expect(
725745
mockTransportSend.mock.calls[0][firstArg][envelopeItems][0][envelopeItemPayload].user?.ip_address,
726746
).toBeUndefined();
727-
});
728-
729-
test('uses ip address hooks if sendDefaultPii is true', () => {
730-
const { onSpy } = createClientWithSpy({
731-
sendDefaultPii: true,
732-
});
733-
734-
expect(onSpy).toHaveBeenCalledWith('postprocessEvent', addAutoIpAddressToUser);
735-
expect(onSpy).toHaveBeenCalledWith('beforeSendSession', addAutoIpAddressToSession);
747+
expect(mockTransportSend.mock.calls[0][firstArg][envelopeItems][0][envelopeItemPayload].sdk).toEqual(
748+
expect.objectContaining({
749+
settings: {
750+
infer_ip: 'never'
751+
}
752+
}
753+
),
754+
);
736755
});
737756

738757
test('does not add ip_address {{auto}} to session if sendDefaultPii is false', () => {

0 commit comments

Comments
 (0)