diff --git a/app/src/main/kotlin/io/element/android/x/initializer/PlatformInitializer.kt b/app/src/main/kotlin/io/element/android/x/initializer/PlatformInitializer.kt index 0eea5123b4..757f5af9d3 100644 --- a/app/src/main/kotlin/io/element/android/x/initializer/PlatformInitializer.kt +++ b/app/src/main/kotlin/io/element/android/x/initializer/PlatformInitializer.kt @@ -15,6 +15,7 @@ import io.element.android.features.rageshake.api.logs.createWriteToFilesConfigur import io.element.android.libraries.architecture.bindings import io.element.android.libraries.featureflag.api.FeatureFlags import io.element.android.libraries.matrix.api.tracing.TracingConfiguration +import io.element.android.services.analyticsproviders.sentry.SentryConfig import io.element.android.x.di.AppBindings import kotlinx.coroutines.flow.first import kotlinx.coroutines.runBlocking @@ -38,6 +39,7 @@ class PlatformInitializer : Initializer { logLevel = logLevel, extraTargets = listOf(ELEMENT_X_TARGET), traceLogPacks = runBlocking { preferencesStore.getTracingLogPacksFlow().first() }, + sdkSentryDsn = SentryConfig.SDK_DSN.takeIf { it.isNotBlank() }, ) bugReporter.setCurrentTracingLogLevel(logLevel.name) platformService.init(tracingConfiguration) diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/tracing/TracingConfiguration.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/tracing/TracingConfiguration.kt index 45d6e7e46e..569683d3f7 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/tracing/TracingConfiguration.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/tracing/TracingConfiguration.kt @@ -14,4 +14,5 @@ data class TracingConfiguration( val traceLogPacks: Set, val writesToLogcat: Boolean, val writesToFilesConfiguration: WriteToFilesConfiguration, + val sdkSentryDsn: String?, ) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/tracing/RustTracingService.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/tracing/RustTracingService.kt index 204fece309..6f235cd0db 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/tracing/RustTracingService.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/tracing/RustTracingService.kt @@ -60,5 +60,5 @@ fun TracingConfiguration.map(): org.matrix.rustcomponents.sdk.TracingConfigurati extraTargets = extraTargets, traceLogPacks = traceLogPacks.map(), writeToFiles = writesToFilesConfiguration.toTracingFileConfiguration(), - sentryDsn = null, + sentryDsn = sdkSentryDsn, ) diff --git a/plugins/src/main/kotlin/config/BuildTimeConfig.kt b/plugins/src/main/kotlin/config/BuildTimeConfig.kt index f792e899cd..50db4cdf41 100644 --- a/plugins/src/main/kotlin/config/BuildTimeConfig.kt +++ b/plugins/src/main/kotlin/config/BuildTimeConfig.kt @@ -29,6 +29,7 @@ object BuildTimeConfig { val SERVICES_POSTHOG_HOST: String? = null val SERVICES_POSTHOG_APIKEY: String? = null val SERVICES_SENTRY_DSN: String? = null + val SERVICES_SENTRY_SDK_DSN: String? = null val BUG_REPORT_URL: String? = null val BUG_REPORT_APP_NAME: String? = null diff --git a/services/analyticsproviders/sentry/build.gradle.kts b/services/analyticsproviders/sentry/build.gradle.kts index ba46a6f4f9..bbe4015e33 100644 --- a/services/analyticsproviders/sentry/build.gradle.kts +++ b/services/analyticsproviders/sentry/build.gradle.kts @@ -32,6 +32,16 @@ android { } ?: "" ) + buildConfigFieldStr( + name = "SDK_SENTRY_DSN", + value = if (isEnterpriseBuild) { + BuildTimeConfig.SERVICES_SENTRY_SDK_DSN + } else { + System.getenv("ELEMENT_SDK_SENTRY_DSN") + ?: readLocalProperty("services.analyticsproviders.sdk.sentry.dsn") + } + ?: "" + ) } } diff --git a/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/SentryConfig.kt b/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/SentryConfig.kt index 3167d82f77..993823a877 100644 --- a/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/SentryConfig.kt +++ b/services/analyticsproviders/sentry/src/main/kotlin/io/element/android/services/analyticsproviders/sentry/SentryConfig.kt @@ -11,6 +11,7 @@ package io.element.android.services.analyticsproviders.sentry object SentryConfig { const val NAME = "Sentry" const val DSN = BuildConfig.SENTRY_DSN + const val SDK_DSN = BuildConfig.SDK_SENTRY_DSN const val ENV_DEBUG = "DEBUG" const val ENV_NIGHTLY = "NIGHTLY" const val ENV_RELEASE = "RELEASE"