Files
n8n/packages/@n8n/eslint-plugin-community-nodes/docs/rules/no-restricted-globals.md
alighasami 3d5eaf9445
Some checks failed
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
first commit
2026-03-17 16:22:57 +03:30

1.2 KiB

Disallow usage of restricted global variables in community nodes (@n8n/community-nodes/no-restricted-globals)

💼 This rule is enabled in the recommended config.

Rule Details

Prevents the use of Node.js global variables that are not allowed in n8n Cloud. While these globals may be available in self-hosted environments, they are restricted on n8n Cloud for security and stability reasons.

Restricted globals include: clearInterval, clearTimeout, global, globalThis, process, setInterval, setTimeout, setImmediate, clearImmediate, __dirname, __filename.

Examples

Incorrect

export class MyNode implements INodeType {
  async execute(this: IExecuteFunctions) {
    // These globals are not allowed on n8n Cloud
    const pid = process.pid;
    const dir = __dirname;

    setTimeout(() => {
      console.log('This will not work on n8n Cloud');
    }, 1000);

    return this.prepareOutputData([]);
  }
}

Correct

export class MyNode implements INodeType {
  async execute(this: IExecuteFunctions) {
    // Use n8n context methods instead
    const timezone = this.getTimezone();

    return this.prepareOutputData([]);
  }
}