Skip to content

Commit 9b28718

Browse files
authored
Set ip_address to {{auto}} by default, even if sendDefaultPII is disabled (#1665)
1 parent a37a793 commit 9b28718

File tree

3 files changed

+11
-28
lines changed

3 files changed

+11
-28
lines changed

CHANGELOG.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
- This will affect your callbacks, making this a breaking change.
1515
- Load Device Contexts from Sentry Java ([#1616](https://github.com/getsentry/sentry-dart/pull/1616))
1616
- Now the device context from Android is available in `BeforeSendCallback`
17-
17+
- Set ip_address to {{auto}} by default, even if sendDefaultPII is disabled ([#1665](https://github.com/getsentry/sentry-dart/pull/1665))
18+
- Instead use the "Prevent Storing of IP Addresses" option in the "Security & Privacy" project settings on sentry.io
19+
1820
## Unreleased
1921

2022
### Fixes

dart/lib/src/sentry_client.dart

+4-12
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ import 'client_reports/discard_reason.dart';
2323
import 'transport/data_category.dart';
2424

2525
/// Default value for [User.ipAddress]. It gets set when an event does not have
26-
/// a user and IP address. Only applies if [SentryOptions.sendDefaultPii] is set
27-
/// to true.
26+
/// a user and IP address.
2827
const _defaultIpAddress = '{{auto}}';
2928

3029
/// Logs crash reports and events to the Sentry.io service.
@@ -142,7 +141,7 @@ class SentryClient {
142141
platform: event.platform ?? sdkPlatform(_options.platformChecker.isWeb),
143142
);
144143

145-
event = _applyDefaultPii(event);
144+
event = _createUserOrSetDefaultIpAddress(event);
146145

147146
if (event is SentryTransaction) {
148147
return event;
@@ -222,20 +221,13 @@ class SentryClient {
222221
return event;
223222
}
224223

225-
/// This modifies the users IP address according
226-
/// to [SentryOptions.sendDefaultPii].
227-
SentryEvent _applyDefaultPii(SentryEvent event) {
228-
if (!_options.sendDefaultPii) {
229-
return event;
230-
}
224+
SentryEvent _createUserOrSetDefaultIpAddress(SentryEvent event) {
231225
var user = event.user;
232226
if (user == null) {
233-
user = SentryUser(ipAddress: _defaultIpAddress);
234-
return event.copyWith(user: user);
227+
return event.copyWith(user: SentryUser(ipAddress: _defaultIpAddress));
235228
} else if (event.user?.ipAddress == null) {
236229
return event.copyWith(user: user.copyWith(ipAddress: _defaultIpAddress));
237230
}
238-
239231
return event;
240232
}
241233

dart/test/sentry_client_test.dart

+4-15
Original file line numberDiff line numberDiff line change
@@ -826,25 +826,14 @@ void main() {
826826
});
827827
});
828828

829-
group('SentryClient: apply default pii', () {
829+
group('SentryClient: sets user & user ip', () {
830830
late Fixture fixture;
831831

832832
setUp(() {
833833
fixture = Fixture();
834834
});
835835

836-
test('sendDefaultPii is disabled', () async {
837-
final client = fixture.getSut(sendDefaultPii: false);
838-
839-
await client.captureEvent(fakeEvent);
840-
841-
final capturedEnvelope = fixture.transport.envelopes.first;
842-
final capturedEvent = await eventFromEnvelope(capturedEnvelope);
843-
844-
expect(capturedEvent.user?.toJson(), fakeEvent.user?.toJson());
845-
});
846-
847-
test('sendDefaultPii is enabled and event has no user', () async {
836+
test('event has no user', () async {
848837
final client = fixture.getSut(sendDefaultPii: true);
849838
var fakeEvent = SentryEvent();
850839

@@ -858,7 +847,7 @@ void main() {
858847
expect(capturedEvent.user?.ipAddress, '{{auto}}');
859848
});
860849

861-
test('sendDefaultPii is enabled and event has a user with IP address',
850+
test('event has a user with IP address',
862851
() async {
863852
final client = fixture.getSut(sendDefaultPii: true);
864853

@@ -875,7 +864,7 @@ void main() {
875864
expect(capturedEvent.user?.email, fakeEvent.user!.email);
876865
});
877866

878-
test('sendDefaultPii is enabled and event has a user without IP address',
867+
test('event has a user without IP address',
879868
() async {
880869
final client = fixture.getSut(sendDefaultPii: true);
881870

0 commit comments

Comments
 (0)