Skip to content

Add sendDefaultPii option #377

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Apr 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## Unreleased

### Features

- Add `sendDefaultPii` option ([#377](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/377))

### Dependencies

- Bump Java SDK from v8.8.0 to v8.9.0 ([#375](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/375))
Expand All @@ -10,7 +14,7 @@

## 0.12.0

### Feature
### Features

- Move replay options out of experimental ([#367](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/367))
- You can now access the replay options via `options.sessionReplay`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ public class io/sentry/kotlin/multiplatform/SentryOptions {
public final fun getRelease ()Ljava/lang/String;
public final fun getSampleRate ()Ljava/lang/Double;
public final fun getSdk ()Lio/sentry/kotlin/multiplatform/protocol/SdkVersion;
public final fun getSendDefaultPii ()Z
public final fun getSessionReplay ()Lio/sentry/kotlin/multiplatform/SentryReplayOptions;
public final fun getSessionTrackingIntervalMillis ()J
public final fun getTracesSampleRate ()Ljava/lang/Double;
Expand Down Expand Up @@ -214,6 +215,7 @@ public class io/sentry/kotlin/multiplatform/SentryOptions {
public final fun setRelease (Ljava/lang/String;)V
public final fun setSampleRate (Ljava/lang/Double;)V
public final fun setSdk (Lio/sentry/kotlin/multiplatform/protocol/SdkVersion;)V
public final fun setSendDefaultPii (Z)V
public final fun setSessionReplay (Lio/sentry/kotlin/multiplatform/SentryReplayOptions;)V
public final fun setSessionTrackingIntervalMillis (J)V
public final fun setTracesSampleRate (Ljava/lang/Double;)V
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ public class io/sentry/kotlin/multiplatform/SentryOptions {
public final fun getRelease ()Ljava/lang/String;
public final fun getSampleRate ()Ljava/lang/Double;
public final fun getSdk ()Lio/sentry/kotlin/multiplatform/protocol/SdkVersion;
public final fun getSendDefaultPii ()Z
public final fun getSessionReplay ()Lio/sentry/kotlin/multiplatform/SentryReplayOptions;
public final fun getSessionTrackingIntervalMillis ()J
public final fun getTracesSampleRate ()Ljava/lang/Double;
Expand Down Expand Up @@ -211,6 +212,7 @@ public class io/sentry/kotlin/multiplatform/SentryOptions {
public final fun setRelease (Ljava/lang/String;)V
public final fun setSampleRate (Ljava/lang/Double;)V
public final fun setSdk (Lio/sentry/kotlin/multiplatform/protocol/SdkVersion;)V
public final fun setSendDefaultPii (Z)V
public final fun setSessionReplay (Lio/sentry/kotlin/multiplatform/SentryReplayOptions;)V
public final fun setSessionTrackingIntervalMillis (J)V
public final fun setTracesSampleRate (Ljava/lang/Double;)V
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ class SentryAndroidOptionsWrapper(private val androidOptions: SentryAndroidOptio
override val sessionReplay: AndroidSentryReplayOptions
get() = androidOptions.sessionReplay

override val sendDefaultPii: Boolean
get() = androidOptions.isSendDefaultPii

override fun applyFromOptions(options: SentryOptions) {
options.toAndroidSentryOptionsCallback().invoke(androidOptions)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ internal fun CocoaSentryOptions.applyCocoaBaseOptions(kmpOptions: SentryOptions)
kmpOptions.environment?.let {
cocoaOptions.environment = it
}
cocoaOptions.sendDefaultPii = kmpOptions.sendDefaultPii
cocoaOptions.releaseName = kmpOptions.release
cocoaOptions.debug = kmpOptions.debug
cocoaOptions.sessionTrackingIntervalMillis = kmpOptions.sessionTrackingIntervalMillis.convert()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ open class SentryAppleOptionsWrapper(private val cocoaOptions: CocoaSentryOption
override val diagnosticLevel: SentryLevel
get() = cocoaOptions.diagnosticLevel.toKmpSentryLevel()!!

override val sendDefaultPii: Boolean
get() = cocoaOptions.sendDefaultPii

override fun applyFromOptions(options: SentryOptions) {
options.toCocoaOptionsConfiguration().invoke(cocoaOptions)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ internal fun JvmSentryOptions.applyJvmBaseOptions(kmpOptions: SentryOptions) {
jvmOptions.isAttachStacktrace = kmpOptions.attachStackTrace
jvmOptions.dist = kmpOptions.dist
jvmOptions.environment = kmpOptions.environment
jvmOptions.isSendDefaultPii = kmpOptions.sendDefaultPii
jvmOptions.release = kmpOptions.release
jvmOptions.isDebug = kmpOptions.debug
jvmOptions.sessionTrackingIntervalMillis = kmpOptions.sessionTrackingIntervalMillis
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,19 @@ public open class SentryOptions {
*/
public var sessionReplay: SentryReplayOptions = SentryReplayOptions()

/**
* If this flag is enabled, certain personally identifiable information (PII) is added by active integrations.
* Among other things, enabling this will enable automatic IP address collection on events.
*
* If you enable this option, be sure to manually remove what you don't want to send using
* our features for managing sensitive data.
*
* For further details, refer to the documentation in the respective native SDKs:
* - [Cocoa](https://docs.sentry.io/platforms/apple/data-management/data-collected/)
* - [Android](https://docs.sentry.io/platforms/android/data-management/data-collected/)
*/
public var sendDefaultPii: Boolean = false

/**
* Experimental options for new features, these options are going to be promoted to SentryOptions
* before GA.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ interface CommonPlatformOptions {
val maxAttachmentSize: Long
val sampleRate: Double?
val tracesSampleRate: Double?
val sendDefaultPii: Boolean

fun applyFromOptions(options: SentryOptions)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ class SentryOptionsTest : BaseSentryTest() {
assertTrue(options.sessionReplay.maskAllImages)
assertEquals(SentryReplayOptions.Quality.MEDIUM, options.sessionReplay.quality)
assertTrue(options.enableWatchdogTerminationTracking)
assertFalse(options.sendDefaultPii)
}

@Test
Expand Down Expand Up @@ -163,6 +164,7 @@ class SentryOptionsTest : BaseSentryTest() {
sessionReplay.maskAllText = false
sessionReplay.maskAllImages = false
sessionReplay.quality = SentryReplayOptions.Quality.LOW
sendDefaultPii = true
}

val platformOptions = createPlatformOptions()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ class SentryJvmOptionsWrapper(private val jvmOptions: JvmSentryOptions) : Platfo
override val diagnosticLevel: SentryLevel
get() = jvmOptions.diagnosticLevel.toKmpSentryLevel()!!

override val sendDefaultPii: Boolean
get() = jvmOptions.isSendDefaultPii

override fun applyFromOptions(options: SentryOptions) {
options.toJvmSentryOptionsCallback().invoke(jvmOptions)
}
Expand Down
Loading