From 8424755513c56d0e82625be554f526752c2c0ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Wed, 3 Dec 2025 17:36:55 +0100 Subject: [PATCH] fix(core)!: Make runners the only Code node option (#22689) --- .../@n8n/config/src/configs/runners.config.ts | 3 +-- packages/@n8n/config/test/config.test.ts | 2 +- .../__tests__/deprecation.service.test.ts | 27 ------------------- .../src/deprecation/deprecation.service.ts | 8 ------ packages/core/test/setup-mocks.ts | 7 +++++ packages/nodes-base/test/setup.ts | 7 ++++- 6 files changed, 15 insertions(+), 39 deletions(-) diff --git a/packages/@n8n/config/src/configs/runners.config.ts b/packages/@n8n/config/src/configs/runners.config.ts index a1dc208ba0c..9f8e7021315 100644 --- a/packages/@n8n/config/src/configs/runners.config.ts +++ b/packages/@n8n/config/src/configs/runners.config.ts @@ -8,8 +8,7 @@ export type TaskRunnerMode = z.infer; @Config export class TaskRunnersConfig { - @Env('N8N_RUNNERS_ENABLED') - enabled: boolean = false; + enabled: boolean = true; /** * Whether the task runner should run as a child process spawned by n8n (internal mode) diff --git a/packages/@n8n/config/test/config.test.ts b/packages/@n8n/config/test/config.test.ts index 9d608a83e95..1d166a32fb5 100644 --- a/packages/@n8n/config/test/config.test.ts +++ b/packages/@n8n/config/test/config.test.ts @@ -263,7 +263,7 @@ describe('GlobalConfig', () => { }, }, taskRunners: { - enabled: false, + enabled: true, mode: 'internal', path: '/runners', authToken: '', diff --git a/packages/cli/src/deprecation/__tests__/deprecation.service.test.ts b/packages/cli/src/deprecation/__tests__/deprecation.service.test.ts index 8dc54f71e98..b92cc52b5a0 100644 --- a/packages/cli/src/deprecation/__tests__/deprecation.service.test.ts +++ b/packages/cli/src/deprecation/__tests__/deprecation.service.test.ts @@ -83,33 +83,6 @@ describe('DeprecationService', () => { toTest('DB_TYPE', dbType, mustWarn); }); - describe('N8N_RUNNERS_ENABLED', () => { - const envVar = 'N8N_RUNNERS_ENABLED'; - - test.each([ - ['false', true], - ['', true], - ['true', false], - [undefined /* warnIfMissing */, true], - ])('should handle value: %s', (value, mustWarn) => { - toTest(envVar, value, mustWarn); - }); - - test('should not warn when Code node is excluded', () => { - process.env[envVar] = 'false'; - - const globalConfig = mockInstance(GlobalConfig, { - nodes: { - exclude: ['n8n-nodes-base.code'], - }, - }); - - new DeprecationService(logger, globalConfig, instanceSettings).warn(); - - expect(logger.warn).not.toHaveBeenCalled(); - }); - }); - describe('OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS', () => { const envVar = 'OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS'; diff --git a/packages/cli/src/deprecation/deprecation.service.ts b/packages/cli/src/deprecation/deprecation.service.ts index 43081ec8780..28db5178039 100644 --- a/packages/cli/src/deprecation/deprecation.service.ts +++ b/packages/cli/src/deprecation/deprecation.service.ts @@ -55,14 +55,6 @@ export class DeprecationService { envVar: 'N8N_SKIP_WEBHOOK_DEREGISTRATION_SHUTDOWN', message: `n8n no longer deregisters webhooks at startup and shutdown. ${SAFE_TO_REMOVE}`, }, - { - envVar: 'N8N_RUNNERS_ENABLED', - message: - 'Running n8n without task runners is deprecated. Task runners will be turned on by default in a future version. Please set `N8N_RUNNERS_ENABLED=true` to enable task runners now and avoid potential issues in the future. Learn more: https://docs.n8n.io/hosting/configuration/task-runners/', - checkValue: (value?: string) => value?.toLowerCase() !== 'true' && value !== '1', - warnIfMissing: true, - disableIf: () => this.globalConfig.nodes.exclude.includes('n8n-nodes-base.code'), - }, { envVar: 'OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS', message: diff --git a/packages/core/test/setup-mocks.ts b/packages/core/test/setup-mocks.ts index d2c9bc6e645..350257236e7 100644 --- a/packages/core/test/setup-mocks.ts +++ b/packages/core/test/setup-mocks.ts @@ -1 +1,8 @@ import 'reflect-metadata'; +import { TaskRunnersConfig } from '@n8n/config'; +import { Container } from '@n8n/di'; + +// Disable task runners for tests until proper mocking is implemented +const taskRunnersConfig = new TaskRunnersConfig(); +taskRunnersConfig.enabled = false; +Container.set(TaskRunnersConfig, taskRunnersConfig); diff --git a/packages/nodes-base/test/setup.ts b/packages/nodes-base/test/setup.ts index 8d136f8c61d..826966fc24c 100644 --- a/packages/nodes-base/test/setup.ts +++ b/packages/nodes-base/test/setup.ts @@ -1,8 +1,13 @@ import 'reflect-metadata'; +import { TaskRunnersConfig } from '@n8n/config'; +import { Container } from '@n8n/di'; // Disable task runners until we have fixed the "run test workflows" test // to mock the Code Node execution -process.env.N8N_RUNNERS_ENABLED = 'false'; +const taskRunnersConfig = new TaskRunnersConfig(); +taskRunnersConfig.enabled = false; +Container.set(TaskRunnersConfig, taskRunnersConfig); + process.env.N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS = 'false'; process.env.N8N_VERSION = '0.0.0-test'; // Disable file access restrictions for tests so they can read/write test files