/** * Application constants with environment variable support. */ // Timeouts (milliseconds) export const COT_AUTH_TIMEOUT_MS = Number(process.env.COT_AUTH_TIMEOUT_MS) || 15_000 export const LIVE_SESSION_TTL_MS = Number(process.env.LIVE_SESSION_TTL_MS) || 60_000 export const COT_ENTITY_TTL_MS = Number(process.env.COT_ENTITY_TTL_MS) || 90_000 export const POLL_INTERVAL_MS = Number(process.env.POLL_INTERVAL_MS) || 1500 export const SHUTDOWN_TIMEOUT_MS = Number(process.env.SHUTDOWN_TIMEOUT_MS) || 30_000 // Ports export const COT_PORT = Number(process.env.COT_PORT) || 8089 export const WEBSOCKET_PATH = process.env.WEBSOCKET_PATH || '/ws' // Limits export const MAX_PAYLOAD_BYTES = Number(process.env.MAX_PAYLOAD_BYTES) || 64 * 1024 export const MAX_STRING_LENGTH = Number(process.env.MAX_STRING_LENGTH) || 1000 export const MAX_IDENTIFIER_LENGTH = Number(process.env.MAX_IDENTIFIER_LENGTH) || 255 // Mediasoup export const MEDIASOUP_RTC_MIN_PORT = Number(process.env.MEDIASOUP_RTC_MIN_PORT) || 40000 export const MEDIASOUP_RTC_MAX_PORT = Number(process.env.MEDIASOUP_RTC_MAX_PORT) || 49999 // Session const [MIN_DAYS, MAX_DAYS, DEFAULT_DAYS] = [1, 365, 7] export function getSessionMaxAgeDays() { const raw = Number.parseInt(process.env.SESSION_MAX_AGE_DAYS ?? '', 10) return Number.isFinite(raw) ? Math.max(MIN_DAYS, Math.min(MAX_DAYS, raw)) : DEFAULT_DAYS }