46 lines
1.3 KiB
TypeScript
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
|
|
})
|
|
});
|