Files
mintel.me/apps/web/src/lib/env.ts
Marc Mintel 4db820214b
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 10s
Build & Deploy / 🧪 QA (push) Failing after 2m43s
Build & Deploy / 🏗️ Build (push) Failing after 5m34s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🩺 Health Check (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 2s
feat(telemetry): implement glitchtip/sentry integration with smart proxy
- Added Sentry/GlitchTip relay route handler
- Configured Sentry for client (with tunnel), server, and edge runtimes
- Refactored GlitchTip adapter to use official @sentry/nextjs SDK
- Fixed ComparisonRow type issues and Analytics Suspense bailout
- Integrated Sentry instrumentation into the boot sequence
2026-02-16 23:09:50 +01:00

32 lines
823 B
TypeScript

import { z } from "zod";
import { validateMintelEnv } from "@mintel/next-utils";
/**
* Environment variable schema extension.
*/
const envExtension = {
// Mail Configuration
MAIL_HOST: z.string().optional(),
MAIL_PORT: z.coerce.number().optional().default(587),
MAIL_USER: z.string().optional(),
MAIL_PASS: z.string().optional(),
MAIL_FROM: z.string().optional().default("marc@mintel.me"),
MAIL_RECIPIENTS: z.string().optional().default("marc@mintel.me"),
// Analytics (Server-side)
UMAMI_WEBSITE_ID: z.string().optional(),
UMAMI_API_ENDPOINT: z
.string()
.url()
.optional()
.default("https://analytics.infra.mintel.me"),
// Error Tracking
SENTRY_DSN: z.string().url().optional(),
};
/**
* Validated environment object.
*/
export const env = validateMintelEnv(envExtension);