UNPKG

n8n

Version:

n8n Workflow Automation Tool

108 lines 4.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const config_1 = require("@n8n/config"); const di_1 = require("@n8n/di"); const convict_1 = __importDefault(require("convict")); const flat_1 = require("flat"); const fs_1 = require("fs"); const merge_1 = __importDefault(require("lodash/merge")); const n8n_core_1 = require("n8n-core"); const n8n_workflow_1 = require("n8n-workflow"); const node_assert_1 = __importDefault(require("node:assert")); const picocolors_1 = __importDefault(require("picocolors")); const constants_1 = require("../constants"); if (constants_1.inE2ETests) { process.env.N8N_DIAGNOSTICS_ENABLED = 'false'; process.env.N8N_PUBLIC_API_DISABLED = 'true'; process.env.EXTERNAL_FRONTEND_HOOKS_URLS = ''; process.env.N8N_PERSONALIZATION_ENABLED = 'false'; process.env.N8N_AI_ENABLED = 'true'; } else if (constants_1.inTest) { process.env.N8N_LOG_LEVEL = 'silent'; process.env.N8N_PUBLIC_API_DISABLED = 'true'; process.env.SKIP_STATISTICS_EVENTS = 'true'; process.env.N8N_SECURE_COOKIE = 'false'; process.env.N8N_SKIP_AUTH_ON_OAUTH_CALLBACK = 'true'; } const schema_1 = require("./schema"); const config = (0, convict_1.default)(schema_1.schema, { args: [] }); config.getEnv = config.get; const logger = di_1.Container.get(n8n_core_1.Logger); const globalConfig = di_1.Container.get(config_1.GlobalConfig); if (!constants_1.inE2ETests && !constants_1.inTest) { const { N8N_CONFIG_FILES } = process.env; if (N8N_CONFIG_FILES !== undefined) { const configFiles = N8N_CONFIG_FILES.split(','); for (const configFile of configFiles) { if (!configFile) continue; try { const data = JSON.parse((0, fs_1.readFileSync)(configFile, 'utf8')); for (const prefix in data) { const innerData = data[prefix]; if (prefix in globalConfig) { (0, merge_1.default)(globalConfig[prefix], innerData); } else { const flattenedData = (0, flat_1.flatten)(innerData); for (const key in flattenedData) { config.set(`${prefix}.${key}`, flattenedData[key]); } } } logger.debug(`Loaded config overwrites from ${configFile}`); } catch (error) { (0, node_assert_1.default)(error instanceof Error); logger.error(`Error loading config file ${configFile}`, { error }); } } } Object.entries(process.env).forEach(([envName, fileName]) => { if (envName.endsWith('_FILE') && fileName) { const configEnvName = envName.replace(/_FILE$/, ''); const key = config._env[configEnvName]?.[0]; if (key) { let value; try { value = (0, fs_1.readFileSync)(fileName, 'utf8'); } catch (error) { if (error.code === 'ENOENT') { throw new n8n_workflow_1.UserError('File not found', { extra: { fileName } }); } throw error; } config.set(key, value); } } }); } config.validate({ allowed: 'strict', }); const userManagement = config.get('userManagement'); if (userManagement.jwtRefreshTimeoutHours >= userManagement.jwtSessionDurationHours) { if (!constants_1.inTest) logger.warn('N8N_USER_MANAGEMENT_JWT_REFRESH_TIMEOUT_HOURS needs to smaller than N8N_USER_MANAGEMENT_JWT_DURATION_HOURS. Setting N8N_USER_MANAGEMENT_JWT_REFRESH_TIMEOUT_HOURS to 0 for now.'); config.set('userManagement.jwtRefreshTimeoutHours', 0); } const executionProcess = config.getEnv('executions.process'); if (executionProcess) { logger.error(picocolors_1.default.yellow('Please unset the deprecated env variable') + picocolors_1.default.bold(picocolors_1.default.yellow('EXECUTIONS_PROCESS'))); } if (executionProcess === 'own') { logger.error(picocolors_1.default.bold(picocolors_1.default.red('Application failed to start because "Own" mode has been removed.'))); logger.error(picocolors_1.default.red('If you need the isolation and performance gains, please consider using queue mode instead.\n\n')); process.exit(-1); } (0, n8n_workflow_1.setGlobalState)({ defaultTimezone: globalConfig.generic.timezone, }); exports.default = config; //# sourceMappingURL=index.js.map