1111
This commit is contained in:
47
backend/src/config/env.ts
Normal file
47
backend/src/config/env.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import "dotenv/config";
|
||||
import { z } from "zod";
|
||||
|
||||
const envSchema = z.object({
|
||||
NODE_ENV: z.enum(["development", "test", "production"]).default("development"),
|
||||
APP_PORT: z.coerce.number().default(4000),
|
||||
APP_HOST: z.string().default("0.0.0.0"),
|
||||
FRONTEND_ORIGIN: z.string().url().default("http://localhost:5173"),
|
||||
SESSION_COOKIE_NAME: z.string().default("pg_admin_sid"),
|
||||
SESSION_TTL_HOURS: z.coerce.number().positive().default(12),
|
||||
SESSION_SECRET: z.string().min(8),
|
||||
TRUST_PROXY: z
|
||||
.string()
|
||||
.transform((value) => value === "true")
|
||||
.default("false"),
|
||||
LOG_LEVEL: z.enum(["debug", "info", "warn", "error"]).default("info"),
|
||||
LOG_SOURCE_PATH: z.string().default("/var/log/postgresql/postgresql.log"),
|
||||
FEATURE_SQL_CONSOLE: z
|
||||
.string()
|
||||
.transform((value) => value !== "false")
|
||||
.default("true"),
|
||||
FEATURE_LOG_VIEWER: z
|
||||
.string()
|
||||
.transform((value) => value !== "false")
|
||||
.default("true"),
|
||||
FEATURE_SCHEMA_MUTATIONS: z
|
||||
.string()
|
||||
.transform((value) => value !== "false")
|
||||
.default("true"),
|
||||
RATE_LIMIT_WINDOW_MS: z.coerce.number().default(60000),
|
||||
RATE_LIMIT_MAX: z.coerce.number().default(120),
|
||||
AUTH_RATE_LIMIT_MAX: z.coerce.number().default(10),
|
||||
CONTROL_DB_HOST: z.string(),
|
||||
CONTROL_DB_PORT: z.coerce.number().default(5432),
|
||||
CONTROL_DB_NAME: z.string(),
|
||||
CONTROL_DB_USER: z.string(),
|
||||
CONTROL_DB_PASSWORD: z.string(),
|
||||
TARGET_DB_HOST: z.string(),
|
||||
TARGET_DB_PORT: z.coerce.number().default(5432),
|
||||
TARGET_DB_NAME: z.string(),
|
||||
TARGET_DB_USER: z.string(),
|
||||
TARGET_DB_PASSWORD: z.string()
|
||||
});
|
||||
|
||||
export const env = envSchema.parse(process.env);
|
||||
|
||||
export const isProduction = env.NODE_ENV === "production";
|
||||
Reference in New Issue
Block a user