| 123456789101112131415161718192021222324252627282930 |
- import { createEnv } from "@t3-oss/env-nextjs";
- import { z } from "zod";
- export const env = createEnv({
- server: {
- TMDB_API_KEY: z.string().min(1, "TMDB_API_KEY is required"),
- SUPABASE_INTERNAL_URL: z.string().url("SUPABASE_INTERNAL_URL must be a valid URL"),
- SUPABASE_SERVICE_ROLE_KEY: z.string().min(1, "SUPABASE_SERVICE_ROLE_KEY is required"),
- MASTER_ADMIN_USERNAME: z.string().min(1, "MASTER_ADMIN_USERNAME is required"),
- MASTER_ADMIN_TOTP_SECRET: z.string().min(1, "MASTER_ADMIN_TOTP_SECRET is required"),
- IRON_SESSION_SECRET: z.string().min(32, "IRON_SESSION_SECRET must be at least 32 characters"),
- },
- client: {
- NEXT_PUBLIC_SUPABASE_URL: z.string().url("NEXT_PUBLIC_SUPABASE_URL must be a valid URL"),
- NEXT_PUBLIC_SUPABASE_ANON_KEY: z.string().min(1, "NEXT_PUBLIC_SUPABASE_ANON_KEY is required"),
- NEXT_PUBLIC_SENTRY_DSN: z.string().optional(),
- },
- runtimeEnv: {
- TMDB_API_KEY: process.env.TMDB_API_KEY,
- SUPABASE_INTERNAL_URL: process.env.SUPABASE_INTERNAL_URL,
- SUPABASE_SERVICE_ROLE_KEY: process.env.SUPABASE_SERVICE_ROLE_KEY,
- MASTER_ADMIN_USERNAME: process.env.MASTER_ADMIN_USERNAME,
- MASTER_ADMIN_TOTP_SECRET: process.env.MASTER_ADMIN_TOTP_SECRET,
- IRON_SESSION_SECRET: process.env.IRON_SESSION_SECRET,
- NEXT_PUBLIC_SUPABASE_URL: process.env.NEXT_PUBLIC_SUPABASE_URL,
- NEXT_PUBLIC_SUPABASE_ANON_KEY: process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
- NEXT_PUBLIC_SENTRY_DSN: process.env.NEXT_PUBLIC_SENTRY_DSN,
- },
- skipValidation: !!process.env.SKIP_ENV_VALIDATION,
- });
|