diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..3b0de043f --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at jan@n8n.io. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/LICENSE.md b/LICENSE.md index aac54547e..c2aec2148 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -215,7 +215,7 @@ Licensor: n8n GmbH same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [yyyy] [name of copyright owner] + Copyright [2020] [n8n GmbH] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/docs/getting-started/creating-your-first-workflow.md b/docs/getting-started/creating-your-first-workflow.md index abe812a88..dbf94dcea 100644 --- a/docs/getting-started/creating-your-first-workflow.md +++ b/docs/getting-started/creating-your-first-workflow.md @@ -84,7 +84,7 @@ Don't forget to save the workflow and then click on the Activate button on the t ![Creating the NoOp node](./images/creating-your-first-workflow/creating-the-noop-node.gif) -I raised the value of *Value 2* in the *IF* node from 18 to 27 just to see what the SMS would look like. This is how the finished workflow and the SMS looked like. +I raised the value of *Value 2* in the *IF* node from 18 to 27 to see what the SMS would look like. This is how the finished workflow and the SMS looked like. ![Workflow running with true output from the IF node](./images/creating-your-first-workflow/workflow-running-with-true-output-from-the-if-node.png) diff --git a/docs/getting-started/key-components.md b/docs/getting-started/key-components.md index 9caba3a0b..60526d3c4 100644 --- a/docs/getting-started/key-components.md +++ b/docs/getting-started/key-components.md @@ -8,7 +8,7 @@ A connection establishes a link between nodes to route data through the workflow ## Node -A node is an entry point for retrieving data, a function to process data or an exit for sending data. The data process includes filtering, recomposing and changing data. There can be one or several nodes for your API, service or app. You can easily connect multiple nodes, which allows you to create simple and complex workflows with them intuitively. +A node is an entry point for retrieving data, a function to process data or an exit for sending data. The data process includes filtering, recomposing and changing data. There can be one or several nodes for your API, service or app. You can connect multiple nodes, which allows you to create simple and complex workflows with them intuitively. For example, consider a Google Sheets node. It can be used to retrieve or write data to a Google Sheet. diff --git a/docs/nodes/creating-nodes/create-node.md b/docs/nodes/creating-nodes/create-node.md index 53dbc63e0..16c26bd7f 100644 --- a/docs/nodes/creating-nodes/create-node.md +++ b/docs/nodes/creating-nodes/create-node.md @@ -1,6 +1,6 @@ # Creating a Node -It is quite easy to create your own nodes in n8n. Mainly three things have to be defined: +To create your own nodes in n8n, mainly three things have to be defined: 1. Generic information like name, description, image/icon 1. The parameters to display via which the user can interact with it @@ -31,7 +31,7 @@ If you want to create multiple custom nodes which are either: - Require many or large dependencies It is best to create your own `n8n-nodes-module` which can be installed separately. -That is a simple npm package that contains the nodes and is set up in a way +That is an npm package that contains the nodes and is set up in a way that n8n can automatically find and load them on startup. When creating such a module the following rules have to be followed that n8n @@ -49,7 +49,7 @@ the above can be found here: ### Setup to use n8n-nodes-module -To use a custom `n8n-nodes-module`, it simply has to be installed alongside n8n. +To use a custom `n8n-nodes-module`, it needs to be installed alongside n8n. For example like this: ```bash @@ -116,18 +116,18 @@ All code of n8n is written in TypeScript and hence, the nodes should also be wri ### Use the built in request library -Some third-party services have their own libraries on npm which make it easier to create an integration. It can be quite tempting to use them. The problem with those is that you add another dependency and not just one you add but also all the dependencies of the dependencies. This means more and more code gets added, has to get loaded, can introduce security vulnerabilities, bugs and so on. So please use the built-in module which can be used like this: +Some third-party services have their own libraries on npm which make it easier to create an integration. It can be quite tempting to use them. The problem with those is that you add another dependency and not only one, you add but also all the dependencies of the dependencies. This means more and more code gets added, has to get loaded, can introduce security vulnerabilities, bugs, and so on. So please use the built-in module which can be used like this: ```typescript const response = await this.helpers.request(options); ``` -That is simply using the npm package [`request-promise-native`](https://github.com/request/request-promise-native) which is the basic npm `request` module but with promises. For a full set of `options` consider looking at [the underlying `request` options documentation](https://github.com/request/request#requestoptions-callback). +That is using the npm package [`request-promise-native`](https://github.com/request/request-promise-native) which is the basic npm `request` module but with promises. For a full set of `options` consider looking at [the underlying `request` options documentation](https://github.com/request/request#requestoptions-callback). ### Reuse parameter names -When a node can perform multiple operations like edit and delete some kind of entity, for both operations, it would need an entity-id. Do not call them "editId" and "deleteId" simply call them "id". n8n can handle multiple parameters with the same name without a problem as long as only one is visible. To make sure that is the case, the "displayOptions" can be used. By keeping the same name, the value can be kept if a user switches the operation from "edit" to "delete". +When a node can perform multiple operations like edit and delete some kind of entity, for both operations, it would need an entity-id. Do not call them "editId" and "deleteId", call them "id". n8n can handle multiple parameters with the same name without a problem as long as only one is visible. To make sure that is the case, the "displayOptions" can be used. By keeping the same name, the value can be kept if a user switches the operation from "edit" to "delete". ### Create an "Options" parameter diff --git a/docs/nodes/nodes-library/nodes/Twilio/README.md b/docs/nodes/nodes-library/nodes/Twilio/README.md index 756fad7f9..e762b03e7 100644 --- a/docs/nodes/nodes-library/nodes/Twilio/README.md +++ b/docs/nodes/nodes-library/nodes/Twilio/README.md @@ -30,4 +30,4 @@ The start node exists by default when you create a new workflow. 3. Enter the phone number to which you'll be sending the message in the *To* field. 4. In case you want to send a Whatsapp message, toggle the *To Whatsapp* button. 5. Enter you message in the *Message* field. -6. Click on *Exceute Node* to run the workflow. +6. Click on *Execute Node* to run the workflow. diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index ce57ef92d..2e3ef1a82 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -154,7 +154,7 @@ export N8N_SSL_CERT=/data/certs/server.pem The timezone is set by default to "America/New_York". For instance, it is used by the Cron node to know at what time the workflow should be started. To set a different -default timezone simply set `GENERIC_TIMEZONE` to the appropriate value. For example, +default timezone, set `GENERIC_TIMEZONE` to the appropriate value. For example, if you want to set the timezone to Berlin (Germany): ```bash diff --git a/docs/reference/data/sensitive-data.md b/docs/reference/data/sensitive-data.md index fa7b0bb1b..55e6bb630 100644 --- a/docs/reference/data/sensitive-data.md +++ b/docs/reference/data/sensitive-data.md @@ -2,7 +2,7 @@ To avoid passing sensitive information via environment variables, "_FILE" may be appended to some environment variables. It will then load the data from a file -with the given name. That makes it possible to load data easily from +with the given name. That makes it possible to load data from Docker and Kubernetes secrets. The following environment variables support file input: diff --git a/docs/reference/workflow.md b/docs/reference/workflow.md index 344504d15..a0c26449e 100644 --- a/docs/reference/workflow.md +++ b/docs/reference/workflow.md @@ -68,17 +68,17 @@ An "Error Workflow" can be set in the Workflow Settings which can be accessed by ## Share Workflows -All workflows are JSON and can be shared very easily. +All workflows are JSON and can be shared with others. There are multiple ways to download a workflow as JSON to then share it with other people via Email, Slack, Skype, Dropbox, … 1. Press the "Download" button under the Workflow menu in the sidebar on the left. It then downloads the workflow as a JSON file. 1. Select the nodes in the editor which should be exported and then copy them (Ctrl + c). The nodes then get saved as JSON in the clipboard and can be pasted wherever desired (Ctrl + v). -Importing that JSON representation again into n8n is as easy and can also be done in different ways: +Importing that JSON representation again into n8n can also be done in different ways: 1. Press "Import from File" or "Import from URL" under the Workflow menu in the sidebar on the left. - 1. Copy the JSON workflow to the clipboard (Ctrl + c) and then simply pasting it directly into the editor (Ctrl + v). + 1. Copy the JSON workflow to the clipboard (Ctrl + c) and then pasting it directly into the editor (Ctrl + v). ## Workflow Settings