-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathenv.ts
More file actions
54 lines (52 loc) · 2.54 KB
/
env.ts
File metadata and controls
54 lines (52 loc) · 2.54 KB
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
import { createEnv } from "@t3-oss/env-nextjs";
import { z } from "zod";
const LOG_LEVELS = ["fatal", "error", "warn", "info", "debug", "trace", "silent"] as const;
export const env = createEnv({
server: {
AUTH_BASE_URL: z.url(),
TRUST_PROXY: z.enum(["true", "false"]).default("false"),
CLICKHOUSE_HOST: z.string().min(1, "CLICKHOUSE_HOST is required"),
CLICKHOUSE_PORT: z.string().min(1, "CLICKHOUSE_PORT is required"),
CLICKHOUSE_USER: z.string().min(1, "CLICKHOUSE_USER is required"),
CLICKHOUSE_PASSWORD: z.string(),
CLICKHOUSE_DB: z.string().min(1, "CLICKHOUSE_DB is required"),
AI_ANALYST_CLICKHOUSE_USER: z.string().min(1).default("ai_analyst_user"),
AI_ANALYST_CLICKHOUSE_PASSWORD: z.string().min(1),
BETTER_AUTH_SECRET: z.string(),
CLICKHOUSE_ADAPTER_DEBUG_LOGS: z.coerce.boolean().default(false),
MIN_PASSWORD_SCORE: z.coerce.number().min(0).max(4).default(2),
RATE_LIMIT_WINDOW_MS: z.coerce.number().positive().default(60_000),
MAX_LOGIN_ATTEMPTS: z.coerce.number().positive().default(5),
INITIAL_USER_EMAIL: z.email(),
INITIAL_USER_PASSWORD: z.string().min(8),
INITIAL_USER_NAME: z.string().min(3),
NODE_ENV: z.enum(["development", "test", "production"]).default("development"),
LOG_LEVEL: z.enum(LOG_LEVELS).default("info"),
SLACK_WEBHOOK_URL: z.url().optional(),
TEAMS_WEBHOOK_URL: z.url().optional(),
},
client: {},
runtimeEnv: {
AUTH_BASE_URL: process.env.AUTH_BASE_URL,
TRUST_PROXY: process.env.TRUST_PROXY,
CLICKHOUSE_HOST: process.env.CLICKHOUSE_HOST,
CLICKHOUSE_PORT: process.env.CLICKHOUSE_PORT,
CLICKHOUSE_USER: process.env.CLICKHOUSE_USER,
CLICKHOUSE_PASSWORD: process.env.CLICKHOUSE_PASSWORD,
CLICKHOUSE_DB: process.env.CLICKHOUSE_DB,
AI_ANALYST_CLICKHOUSE_USER: process.env.AI_ANALYST_CLICKHOUSE_USER,
AI_ANALYST_CLICKHOUSE_PASSWORD: process.env.AI_ANALYST_CLICKHOUSE_PASSWORD,
BETTER_AUTH_SECRET: process.env.BETTER_AUTH_SECRET,
CLICKHOUSE_ADAPTER_DEBUG_LOGS: process.env.CLICKHOUSE_ADAPTER_DEBUG_LOGS,
MIN_PASSWORD_SCORE: process.env.MIN_PASSWORD_SCORE,
RATE_LIMIT_WINDOW_MS: process.env.RATE_LIMIT_WINDOW_MS,
MAX_LOGIN_ATTEMPTS: process.env.MAX_LOGIN_ATTEMPTS,
INITIAL_USER_EMAIL: process.env.INITIAL_USER_EMAIL,
INITIAL_USER_PASSWORD: process.env.INITIAL_USER_PASSWORD,
INITIAL_USER_NAME: process.env.INITIAL_USER_NAME,
NODE_ENV: process.env.NODE_ENV,
LOG_LEVEL: process.env.LOG_LEVEL,
SLACK_WEBHOOK_URL: process.env.SLACK_WEBHOOK_URL,
TEAMS_WEBHOOK_URL: process.env.TEAMS_WEBHOOK_URL,
},
});