import { z } from 'zod'; import { validateMintelEnv, mintelEnvSchema } from '@mintel/next-utils'; /** * Environment variable schema. * Extends the default Mintel environment schema which already includes: * - Directus (URL, TOKEN, INTERNAL_URL, etc.) * - Mail (HOST, PORT, etc.) * - Gotify * - Logging * - Analytics */ export const envSchema = z.object({ ...mintelEnvSchema, // Project specific overrides or additions AUTH_COOKIE_NAME: z.string().default('klz_gatekeeper_session'), // Gatekeeper specifics not in base GATEKEEPER_URL: z.string().url().default('http://gatekeeper:3000'), GATEKEEPER_BYPASS_ENABLED: z.preprocess( (val) => val === 'true' || val === true, z.boolean().default(false), ), NEXT_PUBLIC_FEEDBACK_ENABLED: z.preprocess( (val) => val === 'true' || val === true, z.boolean().default(false), ), INFRA_DIRECTUS_URL: z.string().url().optional(), INFRA_DIRECTUS_TOKEN: z.string().optional(), }); /** * Validated environment object. */ export const env = validateMintelEnv(envSchema.shape); /** * For legacy compatibility with existing code. */ export function getRawEnv() { return env; }