Files
sf-sim/packages/shared/config/env/index.ts

46 lines
1.3 KiB
TypeScript

import { bool, cleanEnv, num, port, str } from 'envalid';
import { USER_ROLES } from '#shared/domain/models/authorizer-user.entity';
import { ensureEnvString } from './env-validators';
export const env = cleanEnv(process.env, {
ENVIRONMENT: str({
choices: ['local', 'development', 'production']
}),
USE_IN_MEMORY_REPOSITORIES: bool(),
ALERTS_API_PORT: port(),
COMPANIES_COMMAND_URL: ensureEnvString(),
DEVICES_COMMAND_URL: ensureEnvString(),
USERS_COMMAND_URL: ensureEnvString(),
REDIS_PASSWORD: ensureEnvString(),
REDIS_PORT: port(),
REDIS_HOST: ensureEnvString(),
POSTGRES_USER: ensureEnvString(),
POSTGRES_PASSWORD: ensureEnvString(),
POSTGRES_PORT: port(),
POSTGRES_HOST: ensureEnvString(),
POSTGRES_DATABASE: ensureEnvString(),
RABBITMQ_HOST: ensureEnvString(),
RABBITMQ_USER: ensureEnvString(),
RABBITMQ_PASSWORD: ensureEnvString(),
RABBITMQ_EXCHANGE: ensureEnvString(),
RABBITMQ_PORT: port(),
RABBITMQ_MODULENAME: ensureEnvString(),
RABBITMQ_TTL: port(),
RABBITMQ_SECURE: bool(),
RABBITMQ_RETRY_INTERVAL: num(),
SYSTEM_USER_ID: ensureEnvString(),
SYSTEM_USER_EMAIL: ensureEnvString(),
SYSTEM_USER_ROLE: str({
choices: [
USER_ROLES.ADMIN,
USER_ROLES.CLIENT,
USER_ROLES.DELEGATION_MANAGER,
USER_ROLES.OPERATOR,
USER_ROLES.ROOM_STAFF
],
default: USER_ROLES.ADMIN
})
});