Skip to content

Commit ad54f19

Browse files
authored
Add sendDefaultPii option (#377)
* Add sendDefaultPii * Add sendDefaultPii * Api dump * Fix test * Update * Update docs * Fix analyze
1 parent c568015 commit ad54f19

File tree

11 files changed

+36
-1
lines changed

11 files changed

+36
-1
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
### Features
6+
7+
- Add `sendDefaultPii` option ([#377](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/377))
8+
59
### Dependencies
610

711
- Bump Java SDK from v8.8.0 to v8.9.0 ([#375](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/375))
@@ -13,7 +17,7 @@
1317

1418
## 0.12.0
1519

16-
### Feature
20+
### Features
1721

1822
- Move replay options out of experimental ([#367](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/367))
1923
- You can now access the replay options via `options.sessionReplay`

sentry-kotlin-multiplatform/api/android/sentry-kotlin-multiplatform.api

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ public class io/sentry/kotlin/multiplatform/SentryOptions {
185185
public final fun getRelease ()Ljava/lang/String;
186186
public final fun getSampleRate ()Ljava/lang/Double;
187187
public final fun getSdk ()Lio/sentry/kotlin/multiplatform/protocol/SdkVersion;
188+
public final fun getSendDefaultPii ()Z
188189
public final fun getSessionReplay ()Lio/sentry/kotlin/multiplatform/SentryReplayOptions;
189190
public final fun getSessionTrackingIntervalMillis ()J
190191
public final fun getTracesSampleRate ()Ljava/lang/Double;
@@ -214,6 +215,7 @@ public class io/sentry/kotlin/multiplatform/SentryOptions {
214215
public final fun setRelease (Ljava/lang/String;)V
215216
public final fun setSampleRate (Ljava/lang/Double;)V
216217
public final fun setSdk (Lio/sentry/kotlin/multiplatform/protocol/SdkVersion;)V
218+
public final fun setSendDefaultPii (Z)V
217219
public final fun setSessionReplay (Lio/sentry/kotlin/multiplatform/SentryReplayOptions;)V
218220
public final fun setSessionTrackingIntervalMillis (J)V
219221
public final fun setTracesSampleRate (Ljava/lang/Double;)V

sentry-kotlin-multiplatform/api/jvm/sentry-kotlin-multiplatform.api

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ public class io/sentry/kotlin/multiplatform/SentryOptions {
182182
public final fun getRelease ()Ljava/lang/String;
183183
public final fun getSampleRate ()Ljava/lang/Double;
184184
public final fun getSdk ()Lio/sentry/kotlin/multiplatform/protocol/SdkVersion;
185+
public final fun getSendDefaultPii ()Z
185186
public final fun getSessionReplay ()Lio/sentry/kotlin/multiplatform/SentryReplayOptions;
186187
public final fun getSessionTrackingIntervalMillis ()J
187188
public final fun getTracesSampleRate ()Ljava/lang/Double;
@@ -211,6 +212,7 @@ public class io/sentry/kotlin/multiplatform/SentryOptions {
211212
public final fun setRelease (Ljava/lang/String;)V
212213
public final fun setSampleRate (Ljava/lang/Double;)V
213214
public final fun setSdk (Lio/sentry/kotlin/multiplatform/protocol/SdkVersion;)V
215+
public final fun setSendDefaultPii (Z)V
214216
public final fun setSessionReplay (Lio/sentry/kotlin/multiplatform/SentryReplayOptions;)V
215217
public final fun setSessionTrackingIntervalMillis (J)V
216218
public final fun setTracesSampleRate (Ljava/lang/Double;)V

sentry-kotlin-multiplatform/src/androidUnitTest/kotlin/io/sentry/kotlin/multiplatform/PlatformOptions.android.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ class SentryAndroidOptionsWrapper(private val androidOptions: SentryAndroidOptio
7373
override val sessionReplay: AndroidSentryReplayOptions
7474
get() = androidOptions.sessionReplay
7575

76+
override val sendDefaultPii: Boolean
77+
get() = androidOptions.isSendDefaultPii
78+
7679
override fun applyFromOptions(options: SentryOptions) {
7780
options.toAndroidSentryOptionsCallback().invoke(androidOptions)
7881
}

sentry-kotlin-multiplatform/src/appleMain/kotlin/io/sentry/kotlin/multiplatform/extensions/SentryOptionsExtensions.apple.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ internal fun CocoaSentryOptions.applyCocoaBaseOptions(kmpOptions: SentryOptions)
2323
kmpOptions.environment?.let {
2424
cocoaOptions.environment = it
2525
}
26+
cocoaOptions.sendDefaultPii = kmpOptions.sendDefaultPii
2627
cocoaOptions.releaseName = kmpOptions.release
2728
cocoaOptions.debug = kmpOptions.debug
2829
cocoaOptions.sessionTrackingIntervalMillis = kmpOptions.sessionTrackingIntervalMillis.convert()

sentry-kotlin-multiplatform/src/appleTest/kotlin/io/sentry/kotlin/multiplatform/PlatformOptions.apple.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ open class SentryAppleOptionsWrapper(private val cocoaOptions: CocoaSentryOption
5454
override val diagnosticLevel: SentryLevel
5555
get() = cocoaOptions.diagnosticLevel.toKmpSentryLevel()!!
5656

57+
override val sendDefaultPii: Boolean
58+
get() = cocoaOptions.sendDefaultPii
59+
5760
override fun applyFromOptions(options: SentryOptions) {
5861
options.toCocoaOptionsConfiguration().invoke(cocoaOptions)
5962
}

sentry-kotlin-multiplatform/src/commonJvmMain/kotlin/io/sentry/kotlin/multiplatform/extensions/SentryOptionsExtensions.jvm.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ internal fun JvmSentryOptions.applyJvmBaseOptions(kmpOptions: SentryOptions) {
2323
jvmOptions.isAttachStacktrace = kmpOptions.attachStackTrace
2424
jvmOptions.dist = kmpOptions.dist
2525
jvmOptions.environment = kmpOptions.environment
26+
jvmOptions.isSendDefaultPii = kmpOptions.sendDefaultPii
2627
jvmOptions.release = kmpOptions.release
2728
jvmOptions.isDebug = kmpOptions.debug
2829
jvmOptions.sessionTrackingIntervalMillis = kmpOptions.sessionTrackingIntervalMillis

sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryOptions.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,19 @@ public open class SentryOptions {
191191
*/
192192
public var sessionReplay: SentryReplayOptions = SentryReplayOptions()
193193

194+
/**
195+
* If this flag is enabled, certain personally identifiable information (PII) is added by active integrations.
196+
* Among other things, enabling this will enable automatic IP address collection on events.
197+
*
198+
* If you enable this option, be sure to manually remove what you don't want to send using
199+
* our features for managing sensitive data.
200+
*
201+
* For further details, refer to the documentation in the respective native SDKs:
202+
* - [Cocoa](https://docs.sentry.io/platforms/apple/data-management/data-collected/)
203+
* - [Android](https://docs.sentry.io/platforms/android/data-management/data-collected/)
204+
*/
205+
public var sendDefaultPii: Boolean = false
206+
194207
/**
195208
* Experimental options for new features, these options are going to be promoted to SentryOptions
196209
* before GA.

sentry-kotlin-multiplatform/src/commonTest/kotlin/io/sentry/kotlin/multiplatform/PlatformOptions.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ interface CommonPlatformOptions {
1414
val maxAttachmentSize: Long
1515
val sampleRate: Double?
1616
val tracesSampleRate: Double?
17+
val sendDefaultPii: Boolean
1718

1819
fun applyFromOptions(options: SentryOptions)
1920
}

sentry-kotlin-multiplatform/src/commonTest/kotlin/io/sentry/kotlin/multiplatform/SentryOptionsTest.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ class SentryOptionsTest : BaseSentryTest() {
133133
assertTrue(options.sessionReplay.maskAllImages)
134134
assertEquals(SentryReplayOptions.Quality.MEDIUM, options.sessionReplay.quality)
135135
assertTrue(options.enableWatchdogTerminationTracking)
136+
assertFalse(options.sendDefaultPii)
136137
}
137138

138139
@Test
@@ -163,6 +164,7 @@ class SentryOptionsTest : BaseSentryTest() {
163164
sessionReplay.maskAllText = false
164165
sessionReplay.maskAllImages = false
165166
sessionReplay.quality = SentryReplayOptions.Quality.LOW
167+
sendDefaultPii = true
166168
}
167169

168170
val platformOptions = createPlatformOptions()

sentry-kotlin-multiplatform/src/jvmTest/kotlin/io/sentry/kotlin/multiplatform/PlatformOptions.jvm.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ class SentryJvmOptionsWrapper(private val jvmOptions: JvmSentryOptions) : Platfo
4646
override val diagnosticLevel: SentryLevel
4747
get() = jvmOptions.diagnosticLevel.toKmpSentryLevel()!!
4848

49+
override val sendDefaultPii: Boolean
50+
get() = jvmOptions.isSendDefaultPii
51+
4952
override fun applyFromOptions(options: SentryOptions) {
5053
options.toJvmSentryOptionsCallback().invoke(jvmOptions)
5154
}

0 commit comments

Comments
 (0)