const utils = require('./utils'), fileHelper = require('./file_helper'); module.exports = { AGM_PORT: process.env.AGM_PORT, PRODUCTION: utils.stringToBoolean(process.env.PRODUCTION) || false, DEBUG: process.env.DEBUG, LOG_ALL_ERRORS: process.env.LOG_ALL_ERRORS || false, MAX_REQ_BDY_MB: process.env.MAX_REQ_BDY_MB, MAX_UPLOAD_SIZE_MB: process.env.MAX_UPLOAD_SIZE_MB, MAX_UPLOAD_FILES: process.env.MAX_UPLOAD_FILES, MAX_SESSION_SECS: process.env.MAX_SESSION_SECS || 3600 * 8, NO_EMAIL_MODE: utils.stringToBoolean(process.env.NO_EMAIL_MODE) || false, // Make sure and safe to force minimum 13 months to archive jobs ARCHIVE_JOBS_DAYS: Math.max((+process.env.ARCHIVE_JOBS_DAYS || 365) + 31, 365 + 31), TOKEN_SECRET: process.env.TOKEN_SECRET, PWD_RESET_VALID_TIME: process.env.PWD_RESET_VALID_TIME, APP_RATE_MINS: Number(process.env.APP_RATE_MINS) || 5, APP_RATE_REQS: Number(process.env.APP_RATE_REQS) || 200, APP_RATE_SKIPFAIL: utils.stringToBoolean(process.env.APP_RATE_SKIPFAIL), // true: trust all proxies, ['ip address', 'other ip address'] or number: number of proxies between user and server APP_RATE_TRUST_PROXIES: Number(process.env.APP_RATE_TRUST_PROXIES) || 1, UPLOAD_DIR: fileHelper.getAppPath(process.env.UPLOAD_DIR), UNZIP_DIR: fileHelper.getAppPath(process.env.UNZIP_DIR), REPORT_DIR: fileHelper.getAppPath(process.env.REPORT_DIR), TEMP_DIR: fileHelper.getAppPath(process.env.TEMP_DIR), SSL_KEY: process.env.SSL_KEY, SSL_CERT: process.env.SSL_CERT, CAPTCHA_SITESEC: process.env.CAPTCHA_SITESEC, ENABLE_SUBSCRIPTION: utils.stringToBoolean(process.env.ENABLE_SUBSCRIPTION) || false, // Stripe STRIPE_SEC_KEY: process.env.STRIPE_SEC_KEY, STRIPE_PUB_KEY: process.env.STRIPE_PUB_KEY, STRIPE_WH_SEC: process.env.STRIPE_WH_SEC, STRIPE_API_VERSION: process.env.STRIPE_API_VERSION, PRICES: { // Essential packages ess_1: process.env.ESS_1, ess_2: process.env.ESS_2, ess_3: process.env.ESS_3, ess_4: process.env.ESS_4, ess_5: process.env.ESS_5, // Enterprise packages ent_1: process.env.ENT_1, ent_2: process.env.ENT_2, ent_3: process.env.ENT_3, ent_4: process.env.ENT_4, addon_1: process.env.ADDON_1 }, AGN_BILL_MGT_EMAIL: process.env.AGN_BILL_MGT_EMAIL, AGM_ADM_EMAIL: process.env.AGM_ADM_EMAIL, // DB connection info DB_HOSTS: process.env.DB_HOSTS, DB_NAME: process.env.DB_NAME, DB_USR: process.env.DB_USR, DB_PWD: process.env.DB_PWD, DB_AUTH_SOURCE: process.env.DB_AUTH_SOURCE, DB_REPLSET: process.env.DB_REPLSET, DB_MAX_POOLSIZE: process.env.DB_MAX_POOLSIZE, DB_USE_TLS: utils.stringToBoolean(process.env.DB_USE_TLS), DB_TLS_CA_FILE: process.env.DB_TLS_CA_FILE, DB_TLS_CERT_FILE: process.env.DB_TLS_CERT_FILE, DB_USE_X509: utils.stringToBoolean(process.env.DB_USE_X509), // For RabbitMq queue client QUEUE_PORT: process.env.QUEUE_PORT, QUEUE_HOST: process.env.QUEUE_HOST, QUEUE_USR: process.env.QUEUE_USR, QUEUE_PWD: process.env.QUEUE_PWD, QUEUE_VHOST: process.env.QUEUE_VHOST, QUEUE_NAME_JOBS: process.env.QUEUE_NAME_JOBS, QUEUE_HEARTBEAT: Number(process.env.QUEUE_HEARTBEAT), REDIS_PWD: process.env.REDIS_PWD, SMTP_HOST: process.env.SMTP_HOST, SMTP_PORT: process.env.SMTP_PORT, SMTP_SECURE: process.env.SMTP_SECURE, SMTP_USR: process.env.SMTP_USR, SMTP_PWD: process.env.SMTP_PWD, INV_IMG_VIR_DIR: process.env.INV_IMG_VIR_DIR ?? '/uploads/invoice_settings', INV_UPLOAD_DIR: fileHelper.getAppPath(process.env.INV_UPLOAD_DIR ?? './uploads/invoice_settings'), INV_MAX_UPLOAD_SIZE_MB: process.env.INV_MAX_UPLOAD_SIZE_MB || 5, INV_PROCESS_LIMIT: Number(process.env.INV_PROCESS_LIMIT || 100), INV_OVERPAID_THRESHOLD: Math.max(1, Number(process.env.INV_OVERPAID_THRESHOLD || 5)), INV_MAX_OVERDUE_DAYS: Number(process.env.INV_MAX_OVERDUE_DAYS || 30), // For Obstacle worker FAA_DOF_URL: process.env.FAA_DOF_URL || 'https://www.faa.gov/air_traffic/flight_info/aeronav/digital_products/dof/', AREAS_UPLOAD_DIR: fileHelper.getAppPath(process.env.AREAS_UPLOAD_DIR ?? './uploads/areas'), }