File size: 2,391 Bytes
fc04d53 bd0c17c fc04d53 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | // @polsia:shared — edit only through declared slots. Code installed by polsia/template-next@0.3.0.
//
// Typed env via @t3-oss/env-nextjs.
//
// Modules contribute env vars via their manifest `contributions` block.
// The installer regenerates this file's slots between the markers below.
// Hand-editing outside those slots is rejected by the ownership validator.
//
// The `no-secrets-in-client-bundle` validator scans the build output and rejects
// the install if any non-NEXT_PUBLIC_ env name appears in client chunks.
import { createEnv } from '@t3-oss/env-nextjs';
import { z } from 'zod';
export const env = createEnv({
server: {
NODE_ENV: z.enum(['development', 'test', 'production']).default('development'),
// D24: Prisma is the framework-native DB client. DATABASE_URL is
// injected by Polsia at deploy time (D23). The actual Postgres is
// provisioned by a separate Polsia service; this module ships the
// client only.
DATABASE_URL: z.string().url(),
// @polsia:slot env_vars_server start
// Modules append additional server-side env vars here at install time.
// @polsia:contrib email start
POLSIA_EMAIL_PROXY_URL: z.string().url().optional(),
// @polsia:contrib email end
// @polsia:slot env_vars_server end
},
client: {
NEXT_PUBLIC_APP_URL: z.string().url().default('http://localhost:3000'),
// Base for @/lib/api-client + proxy.ts connect-src. Default-empty
// (unset) means same-origin `/api`; set only for an external API origin.
NEXT_PUBLIC_API_URL: z.string().url().optional(),
// @polsia:slot env_vars_client start
// Modules append NEXT_PUBLIC_* env vars here at install time.
// @polsia:slot env_vars_client end
},
runtimeEnv: {
NODE_ENV: process.env.NODE_ENV,
DATABASE_URL: process.env.DATABASE_URL,
NEXT_PUBLIC_APP_URL: process.env.NEXT_PUBLIC_APP_URL,
NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL,
// @polsia:slot env_runtime start
// Modules append runtime-env entries here at install time.
// @polsia:contrib email start
POLSIA_EMAIL_PROXY_URL: process.env.POLSIA_EMAIL_PROXY_URL,
// @polsia:contrib email end
// @polsia:slot env_runtime end
},
emptyStringAsUndefined: true,
// SKIP_ENV_VALIDATION=1 bypasses validation for envless builds (lint/CI/local).
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
});
|