admin/sentry.edge.config.ts
alisaza e1eaf5eff5 feat: initial ghabilee-admin backoffice app
Extract admin dashboard from ghabilee-frontend2 into a dedicated Next.js
app for backoffice.ghabilee.ir (no SEO indexing / Clarity).
2026-09-05 13:12:59 +03:30

31 lines
1.0 KiB
TypeScript

import * as Sentry from '@sentry/nextjs'
import { shouldDropExpectedProductSentryEvent } from './lib/observability/expectedProductError'
const dsn = process.env.SENTRY_DSN?.trim() || process.env.NEXT_PUBLIC_SENTRY_DSN?.trim()
function tracesSampleRate(): number {
const raw = process.env.SENTRY_TRACES_SAMPLE_RATE ?? '0.1'
const parsed = Number.parseFloat(raw)
return Number.isFinite(parsed) ? parsed : 0.1
}
export function initEdgeSentry() {
// فقط در production — در local/dev نویز و مصرف سهمیه نمی‌خواهیم
if (process.env.NODE_ENV !== 'production' || !dsn) return
Sentry.init({
dsn,
environment: process.env.SENTRY_ENVIRONMENT?.trim() || process.env.NODE_ENV || 'production',
release: process.env.SENTRY_RELEASE?.trim() || process.env.NEXT_PUBLIC_APP_VERSION || undefined,
tracesSampleRate: tracesSampleRate(),
sendDefaultPii: false,
beforeSend(event, hint) {
if (shouldDropExpectedProductSentryEvent(event, hint.originalException)) return null
return event
},
})
}