n8n/packages/cli
Omar Ajoue 443c2a4d51
Updated node design and node versioning (#1961)
*  introduce versioned nodes

* Export versioned nodes for separate process run

* Add bse node for versioned nodes

* fix node name for versioned nodes

* extend node from nodeVersionedType

* improve nodes base and flow to FE

* revert lib es2019 to es2017

* include version in key to prevent duplicate key

* handle type versions on FE

* clean up

* cleanup nodes base

* add type versions in getNodeParameterOptions

* cleanup

* code review

* code review + add default version to node type description

* remove node default types from store

* 💄 cleanups

* Draft for migrated Mattermost node

* First version of Mattermost node versioned according to node standards

* Correcting deactivate operations name to match currently used one

*  Create utility types

*  Simplify Mattermost types

*  Rename exports for consistency

*  Type channel properties

*  Type message properties

*  Type reaction properties

*  Type user properties

*  Add type import to router

* 🐛 Add missing key

* 🔨 Adjust typo in operation name

* 🔨 Inline exports for channel properties

* 🔨 Inline exports for message properties

* 🔨 Inline exports for reaction properties

* 🔨 Inline exports for user properties

* 🔨 Inline exports for load options

* 👕 Fix lint issue

* 🔨 Inline export for description

* 🔨 Rename descriptions for clarity

* 🔨 Refactor imports/exports for methods

* 🔨 Refactor latest version retrieval

* 🔥 Remove unneeded else clause

When the string literal union is exhausted, the resource key becomes never, so TS disallows wrong key usage.

*  Add overloads to getNodeParameter

*  Improve overload

* 🔥 Remove superfluous INodeVersions type

* 🔨 Relocate pre-existing interface

* 🔥 Remove JSDoc arg descriptions

*  Minor reformatting in transport file

*  Fix API call function type

* Created first draft for Axios requests

* Working version of mattermost node with Axios

* Work in progress for replacing request library

* Improvements to request translations

* Fixed sending files via multipart / form-data

* Fixing translation from request to axios and loading node parameter options

* Improved typing for new http helper

* Added ignore any for specific lines for linting

* Fixed follow redirects changes on http request node and manual execution of previously existing workflow with older node versions

* Adding default headers according to body on httpRequest helper

* Spec error handling and fixed workflows with older node versions

* Showcase how to export errors in a standard format

* Merging master

* Refactored mattermost node to keep files in a uniform structure. Also fix bugs with merges

* Reverting changes to http request node

* Changed nullish comparison and removed repeated code from nodes

* Renamed queryString back to qs and simplified node output

* Simplified some comparisons

* Changed header names to be uc first

* Added default user agent to requests and patch http method support

* Fixed indentation, remove unnecessary file and console log

* Fixed mattermost node name

* Fixed lint issues

* Further fix linting issues

* Further fix lint issues

* Fixed http request helper's return type

Co-authored-by: ahsan-virani <ahsan.virani@gmail.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2021-09-21 19:38:24 +02:00
..
bin Revert " Simplify config imports in cli package (#1840)" (#1931) 2021-06-23 11:20:07 +02:00
commands Updated node design and node versioning (#1961) 2021-09-21 19:38:24 +02:00
config Update credentials modal (#2154) 2021-09-11 10:15:36 +02:00
migrations 🎨 Set up linting and formatting (#2120) 2021-08-29 20:58:11 +02:00
packages/cli Migration configs, migration files, removed test queries 2020-04-29 11:34:12 +02:00
src Updated node design and node versioning (#1961) 2021-09-21 19:38:24 +02:00
templates Adjustions for utilizing an external OAuth Hook (#945) 2020-09-11 12:15:06 +02:00
test 🎨 Set up linting and formatting (#2120) 2021-08-29 20:58:11 +02:00
BREAKING-CHANGES.md Add OAuth to HubSpot Trigger node credentials (#2166) 2021-09-18 22:18:35 +02:00
LICENSE.md 📚 License text fix 2020-09-15 07:55:09 +02:00
nodemon.json Revert "🔀 Merge branch 'oauth-support' of https://github.com/tildabio/n8n" 2020-01-10 14:26:06 -06:00
package.json 🔖 Release n8n@0.138.0 2021-09-15 09:33:29 +00:00
README.md 📚 Update documentation for npm package (#1770) 2021-05-12 14:52:31 -05:00
tsconfig.json 🚨 Add Workflow testing framework (#1814) 2021-07-01 09:04:24 +02:00
tslint.json 👕 Fix lint issue 2020-10-22 15:46:03 +02:00

n8n - Workflow Automation Tool

n8n.io - Workflow Automation

n8n is a free and open fair-code distributed node-based Workflow Automation Tool. You can self-host n8n, easily extend it, and even use it with internal tools.

n8n.io - Screenshot

Contents

Demo

📺 Here's a short demo (<3 min) that shows how to create a simple workflow to automatically sends a notification on Slack every time a GitHub repository gets starred or un-starred.

Getting Started

There are a couple of ways to get started with n8n.

Use npx

To spin up n8n using npx, you can run:

npx n8n

It will download everything that is needed to start n8n.

You can then access n8n by opening: http://localhost:5678

Note: The minimum required version for Node.js is v14.15. Make sure to update Node.js to v14.15 or above.

Run with Docker

To play around with n8n, you can also start it using Docker:

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  n8nio/n8n

Be aware that all the data will be lost once the Docker container gets removed. To persist the data mount the ~/.n8n folder:

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n

n8n also offers a Docker image for Raspberry Pi: n8nio/n8n:latest-rpi.

Refer to the documentation for more information on the Docker setup.

Install with npm

To install n8n globally using npm:

npm install n8n -g

After the installation, start n8n running the following command:

n8n
# or
n8n start

Sign-up on 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

Available integrations

n8n has 280+ different nodes that allow you to connect various services and build your automation workflows. You can find the list of all the integrations at https://n8n.io/integrations

Documentation

To learn more about n8n, refer to the official documentation here: https://docs.n8n.io

You can find additional information and example workflows on the n8n.io website.

Create Custom Nodes

You can create custom nodes for n8n. Follow the instructions mentioned in the documentation to create your node: Creating nodes

Contributing

🐛 Did you find a bug?

Do you want to contribute a feature?

The CONTRIBUTING guide will help you set up your development environment.

You can find more information on how you can contribute to the project on our documentation: How can I contribute?

What does n8n mean, and how do you pronounce it?

Short answer: n8n is an abbreviation for "nodemation", and it is pronounced as n-eight-n.

Long answer: In n8n, you build your automation ("-mation") workflows by connecting different nodes in the Editor UI. The project is also built using Node.js. As a consequence, the project was named nodemation.

However, the name was long, and it wouldn't be a good idea to use such a long name in the CLI. Hence, nodemation got abbreviated as "n8n" (there are eight characters between the first and the last n!).

Support

If you run into issues or have any questions reach out to us via our community forum: https://community.n8n.io.

Jobs

If you are interested in working at n8n and building the project, check out the job openings.

Upgrading

Before you upgrade to the latest version, make sure to check the changelogs: Changelog

You can also find breaking changes here: Breaking Changes

License

n8n is fair-code distributed under Apache 2.0 with Commons Clause license.

Additional information on the license can be found in the FAQ