diff --git a/changelog/entries/unreleased/refactor/5028_add_affected_users_count_to_frontend_sentry_reports.json b/changelog/entries/unreleased/refactor/5028_add_affected_users_count_to_frontend_sentry_reports.json new file mode 100644 index 0000000000..4138375d6d --- /dev/null +++ b/changelog/entries/unreleased/refactor/5028_add_affected_users_count_to_frontend_sentry_reports.json @@ -0,0 +1,9 @@ +{ + "type": "refactor", + "message": "Add affected users count to frontend sentry reports", + "issue_origin": "github", + "issue_number": 5028, + "domain": "core", + "bullet_points": [], + "created_at": "2026-03-23" +} \ No newline at end of file diff --git a/web-frontend/modules/core/module.js b/web-frontend/modules/core/module.js index 505280533e..dc029d54e4 100644 --- a/web-frontend/modules/core/module.js +++ b/web-frontend/modules/core/module.js @@ -130,6 +130,7 @@ export default defineNuxtModule({ addPlugin(resolve('plugins/ensureRender.js')) addPlugin(resolve('plugins/version.js')) addPlugin(resolve('plugins/posthog.js')) + addPlugin(resolve('plugins/sentry-user.js')) addPlugin(resolve('plugins/vueDatepicker.js')) addPlugin(resolve('plugins/routeMounted.js')) addPlugin(resolve('plugins/storeRegister.js')) diff --git a/web-frontend/modules/core/plugins/sentry-user.js b/web-frontend/modules/core/plugins/sentry-user.js new file mode 100644 index 0000000000..d87b6482c0 --- /dev/null +++ b/web-frontend/modules/core/plugins/sentry-user.js @@ -0,0 +1,25 @@ +import * as Sentry from '@sentry/nuxt' +import { nextTick } from 'vue' +import { useNuxtApp, useRouter, useRuntimeConfig } from '#imports' + +export default defineNuxtPlugin(() => { + const runtimeConfig = useRuntimeConfig() + + if (!import.meta.client || !runtimeConfig.public.sentryDsn) return + + const router = useRouter() + const nuxtApp = useNuxtApp() + + router.afterEach(() => { + nextTick(() => { + const isAuthenticated = nuxtApp.$store.getters['auth/isAuthenticated'] + const userId = nuxtApp.$store.getters['auth/getUserId'] + + if (isAuthenticated && userId) { + Sentry.setUser({ id: String(userId) }) + } else { + Sentry.setUser(null) + } + }) + }) +})