8cd4db0ab7
- For a saved execution, we write to disk binary data and metadata. These two are only ever deleted via `POST /executions/delete`. No marker file, so untouched by pruning. - For an unsaved execution, we write to disk binary data, binary data metadata, and a marker file at `/meta`. We later delete all three during pruning. - The third flow is legacy. Currently, if the execution is unsaved, we actually store it in the DB while running the workflow and immediately after the workflow is finished during the `onWorkflowPostExecute()` hook we delete that execution, so the second flow applies. But formerly, we did not store unsaved executions in the DB ("ephemeral executions") and so we needed to write a marker file at `/persistMeta` so that, if the ephemeral execution crashed after the step where binary data was stored, we had a way to later delete its associated dangling binary data via a second pruning cycle, and if the ephemeral execution succeeded, then we immediately cleaned up the marker file at `/persistMeta` during the `onWorkflowPostExecute()` hook. This creation and cleanup at `/persistMeta` is still happening, but this third flow no longer has a purpose, as we now store unsaved executions in the DB and delete them immediately after. Hence the third flow can be removed. |
||
---|---|---|
.github | ||
.vscode | ||
assets | ||
cypress | ||
docker | ||
packages | ||
patches | ||
scripts | ||
.dockerignore | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.npmignore | ||
.npmrc | ||
.prettierignore | ||
.prettierrc.js | ||
CHANGELOG.md | ||
CHECKLIST.yml | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
CONTRIBUTOR_LICENSE_AGREEMENT.md | ||
cypress.config.js | ||
jest.config.js | ||
LICENSE.md | ||
LICENSE_EE.md | ||
package.json | ||
pnpm-lock.yaml | ||
pnpm-workspace.yaml | ||
README.md | ||
SECURITY.md | ||
tsconfig.backend.json | ||
tsconfig.build.json | ||
tsconfig.json | ||
turbo.json |
n8n - Workflow automation tool
n8n is an extendable workflow automation tool. With a fair-code distribution model, n8n will always have visible source code, be available to self-host, and allow you to add your own custom functions, logic and apps. n8n's node-based approach makes it highly versatile, enabling you to connect anything to everything.
Demo
📺 A short video (< 5 min) that goes over key concepts of creating workflows in n8n.
Available integrations
n8n has 200+ different nodes to automate workflows. The list can be found on: https://n8n.io/integrations
Documentation
The official n8n documentation can be found on our documentation website
Additional information and example workflows on the n8n.io website
The release notes can be found here and the list of breaking changes here.
Usage
- 📚 Learn how to use it from the command line
- 🐳 Learn how to run n8n in Docker
Start
You can try n8n without installing it using npx. You must have Node.js installed. From the terminal, run:
npx n8n
This command will download everything that is needed to start n8n. You can then access n8n and start building workflows by opening http://localhost:5678.
n8n cloud
Sign-up for an n8n cloud account.
While n8n cloud and n8n are the same in terms of features, n8n cloud provides certain conveniences such as:
- Not having to set up and maintain your n8n instance
- Managed OAuth for authentication
- Easily upgrading to the newer n8n versions
Support
If you have problems or questions go to our forum, we will then try to help you asap:
Jobs
If you are interested in working for n8n and so shape the future of the project check out our job posts
What does n8n mean and how do you pronounce it?
Short answer: It means "nodemation" and it 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
Development setup
Have you found a bug 🐛 ? Or maybe you have a nice feature ✨ to contribute ? The CONTRIBUTING guide will help you get your development environment ready in minutes.
License
n8n is fair-code distributed under the Sustainable Use License and the n8n Enterprise License.
Proprietary licenses are available for enterprise customers. Get in touch
Additional information about the license model can be found in the docs.