import { createEnv } from "@t3-oss/env-nextjs"; import { z } from "zod"; import "dotenv/config"; export const env = createEnv({ server: { NODE_ENV: z .enum(["development", "test", "production"]) .default("development"), DATABASE_URL: z.string().optional(), NEXTAUTH_SECRET: z.string().optional(), NEXTAUTH_URL: z.string().optional(), // Azure AD (Microsoft Entra ID) - optional in development AZURE_AD_CLIENT_ID: z.string().optional(), AZURE_AD_CLIENT_SECRET: z.string().optional(), // Optional in development RESEND_API_KEY: z.string().optional(), STRIPE_SECRET_KEY: z.string().optional(), STRIPE_WEBHOOK_SECRET: z.string().optional(), // Policy Settings Ingestion API POLICY_API_SECRET: z.string().optional(), // n8n Webhook for manual policy sync N8N_SYNC_WEBHOOK_URL: z.string().optional(), }, client: { NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: z.string().optional(), NEXT_PUBLIC_STRIPE_PRO_PRICE_ID: z.string().optional(), NEXT_PUBLIC_STRIPE_MAX_PRICE_ID: z.string().optional(), NEXT_PUBLIC_STRIPE_ULTRA_PRICE_ID: z.string().optional(), }, // If you're using Next.js < 13.4.4, you'll need to specify the runtimeEnv manually // runtimeEnv: { // DATABASE_URL: process.env.DATABASE_URL, // NEXT_PUBLIC_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_PUBLISHABLE_KEY, // }, // For Next.js >= 13.4.4, you only need to destructure client variables: experimental__runtimeEnv: { NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY, NEXT_PUBLIC_STRIPE_PRO_PRICE_ID: process.env.NEXT_PUBLIC_STRIPE_PRO_PRICE_ID, NEXT_PUBLIC_STRIPE_MAX_PRICE_ID: process.env.NEXT_PUBLIC_STRIPE_MAX_PRICE_ID, NEXT_PUBLIC_STRIPE_ULTRA_PRICE_ID: process.env.NEXT_PUBLIC_STRIPE_ULTRA_PRICE_ID, // NEXT_PUBLIC_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_PUBLISHABLE_KEY, }, });