refactor(core): Port config for frontend hooks, Redis and AI features (#17728)

This commit is contained in:
Iván Ovejero
2025-07-28 10:55:16 +02:00
committed by GitHub
parent 2df76e020e
commit c41e1257f7
8 changed files with 39 additions and 23 deletions

View File

@@ -0,0 +1,8 @@
import { Config, Env } from '../decorators';
@Config
export class AiConfig {
/** Whether AI features are enabled. */
@Env('N8N_AI_ENABLED')
enabled: boolean = false;
}

View File

@@ -0,0 +1,8 @@
import { Config, Env } from '../decorators';
@Config
export class RedisConfig {
/** Prefix for all Redis keys managed by n8n. */
@Env('N8N_REDIS_KEY_PREFIX')
prefix: string = 'n8n';
}

View File

@@ -1,6 +1,7 @@
import { z } from 'zod';
import { AiAssistantConfig } from './configs/ai-assistant.config';
import { AiConfig } from './configs/ai.config';
import { AuthConfig } from './configs/auth.config';
import { CacheConfig } from './configs/cache.config';
import { CredentialsConfig } from './configs/credentials.config';
@@ -21,6 +22,7 @@ import { NodesConfig } from './configs/nodes.config';
import { PartialExecutionsConfig } from './configs/partial-executions.config';
import { PersonalizationConfig } from './configs/personalization.config';
import { PublicApiConfig } from './configs/public-api.config';
import { RedisConfig } from './configs/redis.config';
import { TaskRunnersConfig } from './configs/runners.config';
import { ScalingModeConfig } from './configs/scaling-mode.config';
import { SecurityConfig } from './configs/security.config';
@@ -195,4 +197,14 @@ export class GlobalConfig {
/** Public URL where the editor is accessible. Also used for emails sent from n8n. */
@Env('N8N_EDITOR_BASE_URL')
editorBaseUrl: string = '';
/** URLs to external frontend hooks files, separated by semicolons. */
@Env('EXTERNAL_FRONTEND_HOOKS_URLS')
externalFrontendHooksUrls: string = '';
@Nested
redis: RedisConfig;
@Nested
ai: AiConfig;
}

View File

@@ -348,6 +348,13 @@ describe('GlobalConfig', () => {
loginLabel: '',
},
},
redis: {
prefix: 'n8n',
},
externalFrontendHooksUrls: '',
ai: {
enabled: false,
},
};
it('should use all default values when no env variables are defined', () => {