Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
Go to file
Benny Neugebauer 5ab7c259d0
chore: Add code-health rule for derived node output keys (no-changelog)
A node that computes output keys from data through a text transform owns
an implicit contract. When the transform changes, or a library behind it
changes, the field is renamed for every user and nothing fails. The Notion
node hit this when change-case moved from v4 to v5.

Add the derived-output-keys rule to code-health. It scans nodes-base with
ts-morph for `obj[key] = value` and `{ [key]: value }` where the key passes
through a transform such as snakeCase, replace, toLowerCase or a template
literal, and where the written object reaches node output: returned from a
function, pushed onto a returned array, set as `json`, or passed to
returnJsonArray. Values returned from callbacks are followed into the call
that received them, so reduce accumulators are judged by where the result
goes. Request bodies, binary property names, numeric indexes and templates
that only coerce to a string are ignored.

Keys produced by deriveOutputKey from n8n-workflow are exempt: its
strategies are frozen and tested, and the violation message points to it.

The current sites are grandfathered in the baseline, so only new derived
keys fail the check. `--rule=derived-output-keys --ignore-baseline` lists
every site.
2026-09-11 01:00:15 +02:00
.agents docs(API): State the {resource}Id path param convention in Public API skill (#38312) 2026-09-10 14:45:20 +00:00
.claude chore(editor): Update design-system skills and guidelines (no-changelog) (#37109) 2026-09-08 15:00:56 +00:00
.devcontainer ci: Add an opt in label that automatically provisions a codespace (#37800) 2026-09-04 13:19:24 +00:00
.githooks build: Move the monorepo and Docker deploys to pnpm 12 (no-changelog) (#37899) 2026-09-08 15:15:57 +01:00
.github ci: Bump safe-chain to 1.5.20 (#38274) 2026-09-10 07:31:31 +00:00
.opencode/skills/setup-mcps chore: Unify agent skill sources (no-changelog) (#30541) 2026-06-16 09:25:09 +00:00
.vscode fix(core): Force full execution data fetching for evaluation test runs (#27335) 2026-03-23 09:56:05 +00:00
assets ci: Revert path change for n8n-logo.png (#12874) 2025-01-28 08:49:33 +01:00
docker fix: Bump task-runner-launcher to 1.5.0 (#38309) 2026-09-10 12:20:48 +01:00
docs feat(core): Add ai_preference table for AI preferences (#38131) 2026-09-10 05:22:31 +00:00
packages chore: Add code-health rule for derived node output keys (no-changelog) 2026-09-11 01:00:15 +02:00
patches build: Move the monorepo and Docker deploys to pnpm 12 (no-changelog) (#37899) 2026-09-08 15:15:57 +01:00
scripts ci: Point the workflow-scripts lockfile dir at .github/scripts (no-changelog) (#38198) 2026-09-09 13:57:21 +03:00
security ci: Add nightly SBOM license validation (no-changelog) (#38077) 2026-09-08 14:30:36 +00:00
.actrc ci: Add blacksmith build step and cache restore (#19563) 2025-09-16 09:59:39 +01:00
.aikido chore: Add Aikido scan configuration (no-changelog) (#32195) 2026-06-15 07:26:04 +00:00
.boundaries-baseline.json feat(core): Add encryption usage guardrails (no-changelog) (#37728) 2026-09-04 19:24:29 +00:00
.code-health-baseline.json chore: Add code-health rule for derived node output keys (no-changelog) 2026-09-11 01:00:15 +02:00
.dockerignore chore(core): Add @n8n/engine HTTP server and harness (no-changelog) (#29913) 2026-05-08 14:08:11 +00:00
.editorconfig ci: Ensure that eslint runs on all frontend code (no-changelog) (#4602) 2022-11-15 18:20:54 +01:00
.env.eval.example feat(core): Extend evaluations to support node groups (no-changelog) (#35629) 2026-08-19 08:42:53 +00:00
.env.local.example refactor: Remove persistBuilderSessions feature flag (#27481) 2026-03-30 12:16:07 +00:00
.git-blame-ignore-revs refactor(editor): Rename design-system unit test files and snapshots (no-changelog) (#11539) 2024-11-05 14:20:02 +02:00
.gitattributes build: Move the monorepo and Docker deploys to pnpm 12 (no-changelog) (#37899) 2026-09-08 15:15:57 +01:00
.gitignore feat(core): Schedule agent tasks via the durable scheduler behind a flag (no-changelog) (#37849) 2026-09-09 12:29:02 +00:00
.npmignore build: Update ESLint to v9 (#16639) 2025-06-27 10:42:47 +02:00
.poutine.yml ci: Add MCP workflow evals CI (no-changelog) (#33019) 2026-06-26 08:53:01 +00:00
.prettierignore test: Remove cypress infrastracture (#21173) 2025-10-28 11:00:04 +01:00
.prettierrc.js 🎨 Set up linting and formatting (#2120) 2021-08-29 20:58:11 +02:00
.tbls.postgres.yml chore(core): Make DB schema docs generation deterministic (#32373) 2026-06-16 11:35:33 +00:00
.tbls.sqlite.yml chore(core): Make DB schema docs generation deterministic (#32373) 2026-06-16 11:35:33 +00:00
AGENTS.md feat: Rename AI Assistant to n8n Assistant (#38065) 2026-09-10 08:56:53 +00:00
biome.jsonc build(editor): Add the frontend module workspace layout and shared tsconfig base (no-changelog) (#35957) 2026-08-11 08:19:26 +00:00
CHANGELOG.md 🚀 Release 2.39.0 (#38029) 2026-09-08 11:04:45 +03:00
CLAUDE.md chore: Move to AGENTS.md file with agent instructions (#22227) 2025-11-25 12:41:53 +01:00
CODE_OF_CONDUCT.md refactor: Format root-level files (#3858) 2022-08-19 15:34:02 +02:00
codecov.yml ci: Full nightly coverage report — unit + integration + E2E + Python merged into one lcov (no-changelog) (#31945) 2026-06-11 06:25:18 +00:00
CONTRIBUTING.md chore: Remove corepack references from CONTRIBUTING.md (#38225) 2026-09-10 08:27:56 +00:00
CONTRIBUTOR_LICENSE_AGREEMENT.md refactor: Format root-level files (#3858) 2022-08-19 15:34:02 +02:00
cubic.yaml chore: Rewrite the cubic Frontend review agent rules (#37458) 2026-09-04 12:08:24 +00:00
lefthook.yml build: Move the monorepo and Docker deploys to pnpm 12 (no-changelog) (#37899) 2026-09-08 15:15:57 +01:00
LICENSE_EE.md docs(license): Introduce n8n Enterprise License (#3945) 2022-08-29 22:08:42 +02:00
LICENSE.md refactor(core): Mark all backend Enterprise Edition files and dirs (#12350) 2024-12-24 13:02:05 +01:00
OWNERS chore:Update design owners to design engineering (no-changelog) (#38092) 2026-09-09 08:22:58 +00:00
package.json ci: Point the workflow-scripts lockfile dir at .github/scripts (no-changelog) (#38198) 2026-09-09 13:57:21 +03:00
pnpm-lock.yaml chore: Update eslint configuration (#38307) 2026-09-10 14:40:35 +03:00
pnpm-workspace.yaml chore: Update eslint configuration (#38307) 2026-09-10 14:40:35 +03:00
README.md docs: Update README quick-start setup command (no-changelog) (#36831) 2026-08-21 13:19:16 +00:00
SECURITY.md chore: Revise security vulnerability reporting instructions (#21432) 2025-10-31 13:30:50 +01:00
tsconfig.configs.json chore: Bundle/2.x (#33793) 2026-07-08 08:48:55 +03:00
tsconfig.json chore: Migrate all base packages to TypeScript 7 (#34338) 2026-07-17 12:56:29 +03:00
turbo.json build(editor): Improve frontend builds (#37869) 2026-09-09 08:21:17 +03:00
vitest.workspace.ts chore: Update node popularity data (#24145) 2026-01-12 13:57:43 +00:00

Banner image

n8n – The Platform for AI Agents and Workflow Automation

Fair-code platform to build and deploy AI agents and workflows. Combine a visual canvas with custom code, run it self-hosted or in the cloud, and connect to 1500+ integrations. AI automation you can trust with real work, from prototype to production.

n8n.io - Screenshot

Key Capabilities

  • AI-Native Automation Platform: Build and operationalize AI workflows and multi-step agents using your own data, models, and tools
  • Model Flexibility, No Lock-In: Connect to OpenAI, Anthropic, Google, or open-source models and switch providers without changing your architecture
  • From Prototype to Production: Design multi-step AI workflows with logic, tool use, human approvals, and full observability
  • Code When You Need It: Combine visual building with JavaScript, Python, and npm packages for advanced AI workflows
  • Enterprise-Ready AI: Self-host or deploy securely with role-based access, audit trails, and support for sensitive data
  • Leverage What Already Exists: 1500+ integrations and 9,000+ workflow templates to connect AI with your existing systems

Quick Start

Try n8n instantly with our install script (requires Docker):

curl -fsSL https://get.n8n.io | sh

Or deploy manually with Docker:

docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

Access the editor at http://localhost:5678

Resources

Support

Need help? Our community forum is the place to get support and connect with other users: community.n8n.io

License

n8n is fair-code distributed under the Sustainable Use License and n8n Enterprise License.

  • Source Available: Always visible source code
  • Self-Hostable: Deploy anywhere
  • Extensible: Add your own nodes and functionality

Enterprise Licenses available for additional features and support.

Additional information about the license model can be found in the docs.

Contributing

Found a bug 🐛 or have a feature idea ✨? Check our Contributing Guide for a setup guide & best practices.

Join the Team

Want to shape the future of automation? Check out our job posts and join our team!

What does n8n mean?

Short answer: It means "nodemation" and is pronounced as n-eight-n.

Long answer: "I get that question quite often (more often than I expected) so I decided it is probably best to answer it here. While looking for a good name for the project with a free domain I realized very quickly that all the good ones I could think of were already taken. So, in the end, I chose nodemation. 'node-' in the sense that it uses a Node-View and that it uses Node.js and '-mation' for 'automation' which is what the project is supposed to help with. However, I did not like how long the name was and I could not imagine writing something that long every time in the CLI. That is when I then ended up on 'n8n'." - Jan Oberhauser, Founder and CEO, n8n.io