36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { z } from 'zod';
|
|
|
|
const envSchema = z.object({
|
|
API_CACHE_TTL: z.string().transform((val) => Number.parseInt(val, 10)),
|
|
API_PORT: z.number().optional().default(3001),
|
|
API_SECRET: z.string(),
|
|
API_TOKEN_TFA_TTL: z
|
|
.string()
|
|
.transform((val) => Number.parseInt(val, 10))
|
|
.default('300'),
|
|
API_TOKEN_TTL: z.string().transform((val) => Number.parseInt(val, 10)),
|
|
COOKIE_TOKEN_MAX_AGE: z.string().transform((val) => Number.parseInt(val, 10)),
|
|
COOKIE_TOKEN_NAME: z.string().default('token'),
|
|
LDAP_ATTRIBUTE: z.string(),
|
|
LDAP_BASE: z.string(),
|
|
LDAP_BIND_CREDENTIALS: z.string(),
|
|
LDAP_BIND_DN: z.string(),
|
|
LDAP_DOMAIN: z.string(),
|
|
LDAP_URL: z.string().url(),
|
|
MONGO_HOST: z.string(),
|
|
MONGO_PORT: z
|
|
.string()
|
|
.transform((val) => Number.parseInt(val, 10))
|
|
.default('27017'),
|
|
REDIS_HOST: z.string(),
|
|
REDIS_PORT: z
|
|
.string()
|
|
.transform((val) => Number.parseInt(val, 10))
|
|
.default('6379'),
|
|
TELEGRAM_URL_SEND_AUTH_LOGIN: z.string(),
|
|
TELEGRAM_URL_SEND_AUTH_MESSAGE: z.string(),
|
|
TELEGRAM_URL_SEND_AUTH_PASSWORD: z.string(),
|
|
});
|
|
|
|
export default envSchema;
|