From 64fe928cc3752785e1c7915a86e6c28ade5f7e70 Mon Sep 17 00:00:00 2001
From: Aya Tanikawa <15815271+ayatnkw@users.noreply.github.com>
Date: Fri, 26 Apr 2024 18:00:56 +0200
Subject: [PATCH 01/24] first draft for the new learning path page
---
docs/learning-path.md | 88 +++++++++++++++++++++++++++++++++++++++++++
mkdocs.yml | 1 +
2 files changed, 89 insertions(+)
create mode 100644 docs/learning-path.md
diff --git a/docs/learning-path.md b/docs/learning-path.md
new file mode 100644
index 000000000..bfea68d9f
--- /dev/null
+++ b/docs/learning-path.md
@@ -0,0 +1,88 @@
+---
+description: A collection of quick starts, courses and tutorials for n8n biginners to get started with n8n.
+contentType: overview
+---
+Welcome to the n8n Learning Path!
+
+If you're new to n8n, this guide is a suggested learning path to get started with n8n through tutorials, courses, and step-by-step guides.
+
+/// note | Course duration and difficulty
+:material-clock-fast: : Quick tutorials
+:material-school: : Beginner friendly
+:material-school-outline: : Requries technical knowledge
+:fontawesome-solid-robot: Topics related to AI
+///
+
+## Try it out
+
+Start with the quickstart guides that will give you a fast taster of n8n and help you get up and running with building workflows.
+
+
+
+- :material-clock-fast: __[Very quick quickstart :material-arrow-right-thick:](/try-it-out/quickstart/)__
+
+ Duration: **10 minutes**
+
+- :material-clock-fast: __[Slightly longer introduction :material-arrow-right-thick:](/try-it-out/longer-introduction/)__
+
+ Duration: **30 minutes**
+
+
+
+## Beginner courses
+
+You’ll build more complex workflows while learning key concepts along the way.
+
+
+
+- :material-school: __[Level 1: Beginner Course* :material-arrow-right-thick:](https://blog.n8n.io/announcing-the-n8n-certification-course-for-beginners-level-1/)__
+
+ Duration: **2 hours**
+
+- :material-school: __[Level 2: Intermediate Course* :material-arrow-right-thick:](https://blog.n8n.io/announcing-course-level-two/)__
+
+ Duration: **2 hours**
+
+- :fontawesome-solid-robot: __[Build an AI workflow in n8n :material-arrow-right-thick:](/advanced-ai/intro-tutorial/)__
+
+ Duration: **1 hour**
+
+
+*At end of the courses, you can take a quiz to test your knowledge and get a badge and an avatar in your community profile.
+
+## Learn to self-host n8n
+
+There are various server setups for self-hosting n8n. If you’re not sure where to start, a good example is hosting on DigitalOcean with Caddy. Another popular option is AWS with Kubernetes.
+
+
+
+- :material-school-outline: __[Hosting n8n on DigitalOcean + Caddy :material-arrow-right-thick:](/hosting/installation/server-setups/digital-ocean/)__
+
+ Duration: **2 hours**
+
+
+- :material-school-outline: __[Hosting n8n on Amazon Web Services :material-arrow-right-thick:](/installation/server-setups/aws/)__
+
+ Duration: **2 hours**
+
+
+
+## Build a node
+
+Can’t find a node you’re looking for? Learn to build a node yourself and share with the community. See what others have built on [npm website](https://www.npmjs.com/search?q=keywords:n8n-community-node-package).
+
+
+
+- :material-school-outline: __[Build a declarative-style node :material-arrow-right-thick:](/integrations/creating-nodes/build/declarative-style-node/)__
+
+ Duration: **1 hour**
+
+
+
+## Join the community
+
+n8n has an active and supportive community where you can get help with your workflows, ask or answer questions, suggest improvements, and connect with other members from around the world!
+
+- :simple-discourse: [Community Forum](https://community.n8n.io/)
+- :simple-discord: [Discord](https://discord.com/invite/vWwMVThRta)
+- :material-youtube: [Youtube](https://www.youtube.com/@n8n-io)
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index a24c4600b..17755c43e 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -217,6 +217,7 @@ nav:
- Workflow 2: courses/level-two/chapter-5/chapter-5.2.md
- Workflow 3: courses/level-two/chapter-5/chapter-5.3.md
- Test your knowledge: courses/level-two/chapter-6.md
+ - Learning path: learning-path.md
- Using the app:
- Understand workflows:
- workflows/index.md
From 990401ed142a1ef82910e83582d061acfa948714 Mon Sep 17 00:00:00 2001
From: Oleg Ivaniv
Date: Mon, 29 Apr 2024 15:01:30 +0200
Subject: [PATCH 02/24] Add Groq Chat model docs & credentials
Signed-off-by: Oleg Ivaniv
---
.../n8n-nodes-langchain.lmchatgroq.md | 39 +++++++++++++++++++
docs/integrations/builtin/credentials/groq.md | 24 ++++++++++++
2 files changed, 63 insertions(+)
create mode 100644 docs/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq.md
create mode 100644 docs/integrations/builtin/credentials/groq.md
diff --git a/docs/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq.md b/docs/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq.md
new file mode 100644
index 000000000..432a1b75f
--- /dev/null
+++ b/docs/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq.md
@@ -0,0 +1,39 @@
+---
+title: Groq Chat Model
+description: Documentation for the Groq Chat Model node in n8n, a workflow automation platform. Includes details of operations and configuration, and links to examples and credentials information.
+---
+
+# Groq Chat Model
+
+Use the Groq Chat Model node to access Groq's large language models for conversational AI and text generation tasks.
+
+On this page, you'll find the node parameters for the Groq Chat Model node, and links to more resources.
+
+/// note | Credentials
+You can find authentication information for this node [here](/integrations/builtin/credentials/groq/).
+///
+
+/// note | Examples and templates
+For usage examples and templates to help you get started, refer to n8n's [Groq Chat Model integrations](https://n8n.io/integrations/groq-chat-model/){:target=_blank .external-link} page.
+///
+
+--8<-- "_snippets/integrations/builtin/cluster-nodes/sub-node-expression-resolution.md"
+
+## Node parameters
+
+* **Model**: The model which will generate the completion. Learn more in the [Groq model documentation](https://console.groq.com/docs/models){:target=_blank .external-link}.
+ Available models are loaded dynamically from the Groq API.
+
+## Node options
+
+* **Maximum Number of Tokens**: The maximum number of tokens to generate in the completion.
+* **Sampling Temperature**: Controls randomness. Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. Range is 0 to 1.
+
+## Related resources
+
+View [example workflows and related content](https://n8n.io/integrations/groq-chat-model/){:target=_blank .external-link} on n8n's website.
+
+Refer to [Groq's API documentation](https://console.groq.com/docs/quickstart){:target=_blank .external-link} for more information about the service.
+
+--8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
+--8<-- "_glossary/ai-glossary.md"
diff --git a/docs/integrations/builtin/credentials/groq.md b/docs/integrations/builtin/credentials/groq.md
new file mode 100644
index 000000000..8534907e1
--- /dev/null
+++ b/docs/integrations/builtin/credentials/groq.md
@@ -0,0 +1,24 @@
+---
+title: Groq credentials
+description: Documentation for the Groq credentials. Use these credentials to authenticate Groq in n8n, a workflow automation platform.
+---
+
+# Groq credentials
+
+You can use these credentials to authenticate the following nodes:
+
+* [Groq Chat Model](/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq/)
+
+## Using API Key
+1. Go to [Groq console](https://console.groq.com/){:target=_blank .external-link} and log in.
+2. Click on **API Keys** in the left sidebar.
+3. Click on **Create API Key**.
+4. Enter a name for your API key.
+5. Click on **Submit**.
+6. Copy the displayed API key.
+
+## Related resources
+
+Refer to [Groq's documentation](https://wow.groq.com/){:target=_blank .external-link} for more information about the service.
+
+--8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
From 07a8923a6e303b8bb0cea8a1db0f6e8b82f10d1a Mon Sep 17 00:00:00 2001
From: aya <15815271+ayatnkw@users.noreply.github.com>
Date: Mon, 29 Apr 2024 15:24:08 +0200
Subject: [PATCH 03/24] Update docs/learning-path.md
Co-authored-by: Deborah
---
docs/learning-path.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/learning-path.md b/docs/learning-path.md
index bfea68d9f..70e07547e 100644
--- a/docs/learning-path.md
+++ b/docs/learning-path.md
@@ -1,5 +1,5 @@
---
-description: A collection of quick starts, courses and tutorials for n8n biginners to get started with n8n.
+description: A suggested learning path to get started with n8n through tutorials, courses, and step-by-step guides.
contentType: overview
---
Welcome to the n8n Learning Path!
From dd10d4f05d5666fb0d50f5e51ee27faa7a240cb4 Mon Sep 17 00:00:00 2001
From: Deborah Barnard
Date: Mon, 29 Apr 2024 15:16:59 +0100
Subject: [PATCH 04/24] add new pages to nav; add Groq to accepted vocab; copy
edits
---
.../sub-nodes/n8n-nodes-langchain.lmchatgroq.md | 7 +++----
docs/integrations/builtin/credentials/groq.md | 9 +++++----
mkdocs.yml | 2 ++
styles/Vocab/default/accept.txt | 1 +
4 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/docs/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq.md b/docs/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq.md
index 432a1b75f..c6f794896 100644
--- a/docs/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq.md
+++ b/docs/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq.md
@@ -21,13 +21,12 @@ For usage examples and templates to help you get started, refer to n8n's [Groq C
## Node parameters
-* **Model**: The model which will generate the completion. Learn more in the [Groq model documentation](https://console.groq.com/docs/models){:target=_blank .external-link}.
- Available models are loaded dynamically from the Groq API.
+* **Model**: The model which will generate the completion. Learn more in the [Groq model documentation](https://console.groq.com/docs/models){:target=_blank .external-link}. Available models are loaded dynamically from the Groq API.
## Node options
-* **Maximum Number of Tokens**: The maximum number of tokens to generate in the completion.
-* **Sampling Temperature**: Controls randomness. Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. Range is 0 to 1.
+* **Maximum Number of Tokens**: the maximum number of tokens to generate in the completion.
+* **Sampling Temperature**: controls randomness. Lowering the value results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. Valid range is 0 to 1.
## Related resources
diff --git a/docs/integrations/builtin/credentials/groq.md b/docs/integrations/builtin/credentials/groq.md
index 8534907e1..dab151f9b 100644
--- a/docs/integrations/builtin/credentials/groq.md
+++ b/docs/integrations/builtin/credentials/groq.md
@@ -10,15 +10,16 @@ You can use these credentials to authenticate the following nodes:
* [Groq Chat Model](/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq/)
## Using API Key
+
1. Go to [Groq console](https://console.groq.com/){:target=_blank .external-link} and log in.
-2. Click on **API Keys** in the left sidebar.
-3. Click on **Create API Key**.
+2. Select **API Keys** in the left sidebar.
+3. Select **Create API Key**.
4. Enter a name for your API key.
-5. Click on **Submit**.
+5. Select **Submit**.
6. Copy the displayed API key.
## Related resources
-Refer to [Groq's documentation](https://wow.groq.com/){:target=_blank .external-link} for more information about the service.
+Refer to [Groq's documentation](https://console.groq.com/docs/quickstart){:target=_blank .external-link} for more information about the service.
--8<-- "_snippets/integrations/builtin/cluster-nodes/langchain-overview-link.md"
diff --git a/mkdocs.yml b/mkdocs.yml
index a24c4600b..843aa9055 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -772,6 +772,7 @@ nav:
- integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatazureopenai.md
- integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglegemini.md
- integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglepalm.md
+ - integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq.md
- integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatmistralcloud.md
- integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatollama.md
- integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai.md
@@ -900,6 +901,7 @@ nav:
- integrations/builtin/credentials/gotowebinar.md
- integrations/builtin/credentials/grafana.md
- integrations/builtin/credentials/grist.md
+ - integrations/builtin/credentials/groq.md
- integrations/builtin/credentials/gumroad.md
- integrations/builtin/credentials/halopsa.md
- integrations/builtin/credentials/harvest.md
diff --git a/styles/Vocab/default/accept.txt b/styles/Vocab/default/accept.txt
index cb52e7eb0..fbc982343 100644
--- a/styles/Vocab/default/accept.txt
+++ b/styles/Vocab/default/accept.txt
@@ -22,6 +22,7 @@ enum
Fargate
Firestore
GIMP
+Groq
Hetzner
invalid
Infisical
From 48eeeaab72691a1f35b9881b01d648299e5fc238 Mon Sep 17 00:00:00 2001
From: Deborah Barnard
Date: Tue, 30 Apr 2024 09:31:48 +0100
Subject: [PATCH 05/24] try to get github to see changes
---
docs/index.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/docs/index.md b/docs/index.md
index 82edd3671..12e629b33 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -6,7 +6,6 @@ hide:
# Welcome
-
This is the documentation for [n8n](https://n8n.io/){:target=_blank .external-link}, a [fair-code](http://faircode.io){:target=_blank .external-link} licensed node-based workflow automation tool.
It covers everything from setup to usage and development. It's a work in progress and all [contributions](/help-community/contributing/) are welcome.
From 89b3e4a7750eba8137e7a2dfa8214f4fb5b324ff Mon Sep 17 00:00:00 2001
From: Aya Tanikawa <15815271+ayatnkw@users.noreply.github.com>
Date: Thu, 2 May 2024 12:21:10 +0200
Subject: [PATCH 06/24] change formatting and add more descriptive intro
---
docs/learning-path.md | 120 +++++++++++++++---------------------------
mkdocs.yml | 2 +-
2 files changed, 42 insertions(+), 80 deletions(-)
diff --git a/docs/learning-path.md b/docs/learning-path.md
index 70e07547e..0b8288c70 100644
--- a/docs/learning-path.md
+++ b/docs/learning-path.md
@@ -2,87 +2,49 @@
description: A suggested learning path to get started with n8n through tutorials, courses, and step-by-step guides.
contentType: overview
---
-Welcome to the n8n Learning Path!
+This guide outlines a series of tutorials and resources designed to get you started with n8n.
-If you're new to n8n, this guide is a suggested learning path to get started with n8n through tutorials, courses, and step-by-step guides.
-
-/// note | Course duration and difficulty
-:material-clock-fast: : Quick tutorials
-:material-school: : Beginner friendly
-:material-school-outline: : Requries technical knowledge
-:fontawesome-solid-robot: Topics related to AI
-///
-
-## Try it out
-
-Start with the quickstart guides that will give you a fast taster of n8n and help you get up and running with building workflows.
-
-
-
-- :material-clock-fast: __[Very quick quickstart :material-arrow-right-thick:](/try-it-out/quickstart/)__
-
- Duration: **10 minutes**
-
-- :material-clock-fast: __[Slightly longer introduction :material-arrow-right-thick:](/try-it-out/longer-introduction/)__
-
- Duration: **30 minutes**
-
-
-
-## Beginner courses
-
-You’ll build more complex workflows while learning key concepts along the way.
-
-
-
-- :material-school: __[Level 1: Beginner Course* :material-arrow-right-thick:](https://blog.n8n.io/announcing-the-n8n-certification-course-for-beginners-level-1/)__
-
- Duration: **2 hours**
-
-- :material-school: __[Level 2: Intermediate Course* :material-arrow-right-thick:](https://blog.n8n.io/announcing-course-level-two/)__
-
- Duration: **2 hours**
-
-- :fontawesome-solid-robot: __[Build an AI workflow in n8n :material-arrow-right-thick:](/advanced-ai/intro-tutorial/)__
-
- Duration: **1 hour**
-
-
-*At end of the courses, you can take a quiz to test your knowledge and get a badge and an avatar in your community profile.
-
-## Learn to self-host n8n
-
-There are various server setups for self-hosting n8n. If you’re not sure where to start, a good example is hosting on DigitalOcean with Caddy. Another popular option is AWS with Kubernetes.
-
-
-
-- :material-school-outline: __[Hosting n8n on DigitalOcean + Caddy :material-arrow-right-thick:](/hosting/installation/server-setups/digital-ocean/)__
-
- Duration: **2 hours**
-
-
-- :material-school-outline: __[Hosting n8n on Amazon Web Services :material-arrow-right-thick:](/installation/server-setups/aws/)__
-
- Duration: **2 hours**
-
-
-
-## Build a node
-
-Can’t find a node you’re looking for? Learn to build a node yourself and share with the community. See what others have built on [npm website](https://www.npmjs.com/search?q=keywords:n8n-community-node-package).
-
-
-
-- :material-school-outline: __[Build a declarative-style node :material-arrow-right-thick:](/integrations/creating-nodes/build/declarative-style-node/)__
-
- Duration: **1 hour**
-
-
+It's not necessary to complete all items listed to start effectively using n8n. This guide isn't exhaustive; use this as a reference to navigate to the most relevant parts of the documentation and other resources according to your needs.
## Join the community
-n8n has an active and supportive community where you can get help with your workflows, ask or answer questions, suggest improvements, and connect with other members from around the world!
+n8n has an active community where you can get and offer help. Connect, share, and learn with other n8n users:
+- [Ask questions](https://community.n8n.io/t/readme-welcome-to-the-n8n-community/44381){:target=_blank .external-link} and [make feature requests](https://community.n8n.io/c/feature-requests){:target=_blank .external-link} in the Community Forum.
+- [Report bugs](https://github.com/n8n-io/n8n/issues){:target=_blank .external-link} and [contribute](https://github.com/n8n-io/n8n/blob/master/CONTRIBUTING.md){:target=_blank .external-link} on GitHub.
-- :simple-discourse: [Community Forum](https://community.n8n.io/)
-- :simple-discord: [Discord](https://discord.com/invite/vWwMVThRta)
-- :material-youtube: [Youtube](https://www.youtube.com/@n8n-io)
\ No newline at end of file
+## Set up your n8n
+
+If you don't have an account yet, sign-up to a [free trial on n8n Cloud](/manage-cloud/overview/) or install n8n's community edition with [Docker](/installation/docker/) (recommended) or [npm](/installation/npm/). See [Choose your n8n](/choose-n8n/) for more details.
+
+## Try it out
+
+Start with the quickstart guides to help you get up and running with building basic workflows.
+
+- [A very quick quickstart](/try-it-out/quickstart/)
+- [A longer introduction](/try-it-out/longer-introduction/)
+- [Build an AI workflow in n8n](/advanced-ai/intro-tutorial/)
+
+## Structured Courses
+
+Build more complex workflows while learning key concepts along the way. Earn a badge and an avatar in your community profile.
+
+- [Level 1: Beginner Course](https://blog.n8n.io/announcing-the-n8n-certification-course-for-beginners-level-1/){:target=_blank .external-link}
+- [Level 2: Intermediate Course](https://blog.n8n.io/announcing-course-level-two/){:target=_blank .external-link}
+
+## Self-hosting n8n
+
+Explore various [self-hosting options in n8n](/hosting/). If you’re not sure where to start, these are two popular options:
+
+- [Hosting n8n on DigitalOcean](/hosting/installation/server-setups/digital-ocean/)
+- [Hosting n8n on Amazon Web Services](/installation/server-setups/aws/)
+
+## Build a node
+
+If you can't find a node for a specific app or a service, you can build a node yourself and share with the community. See what others have built on [npm website](https://www.npmjs.com/search?q=keywords:n8n-community-node-package){:target=_blank .external-link}.
+
+- [Build a declarative-style node](/integrations/creating-nodes/build/declarative-style-node/)
+- [Learn how to build your own n8n nodes (Youtube Video)](https://www.youtube.com/live/OI6zHJ56eW0?si=SMD7L1J5fZ2mf79W){:target=_blank .external-link}
+
+## Stay updated
+- Follow new features and bug fixes in the [Release Notes](/release-notes/)
+- Follow n8n on socials: [Twitter/X](https://twitter.com/n8n_io){:target=_blank .external-link}, [Discord](https://discord.com/invite/vWwMVThRta){:target=_blank .external-link}, [LinkedIn](https://www.linkedin.com/company/n8n/){:target=_blank .external-link}, [YouTube](https://www.youtube.com/@n8n-io){:target=_blank .external-link}
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index 17755c43e..a393ea231 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -181,6 +181,7 @@ nav:
- Using n8n:
- Welcome: index.md
- Getting started:
+ - Learning path: learning-path.md
- Choose your n8n: choose-n8n.md
- Try it out:
- try-it-out/index.md
@@ -217,7 +218,6 @@ nav:
- Workflow 2: courses/level-two/chapter-5/chapter-5.2.md
- Workflow 3: courses/level-two/chapter-5/chapter-5.3.md
- Test your knowledge: courses/level-two/chapter-6.md
- - Learning path: learning-path.md
- Using the app:
- Understand workflows:
- workflows/index.md
From de98a11b3609a18c01308c1294fdc0f3c5bb5968 Mon Sep 17 00:00:00 2001
From: Aya Tanikawa <15815271+ayatnkw@users.noreply.github.com>
Date: Thu, 2 May 2024 12:26:38 +0200
Subject: [PATCH 07/24] fix formatting
---
docs/learning-path.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/learning-path.md b/docs/learning-path.md
index 0b8288c70..65d14a6b8 100644
--- a/docs/learning-path.md
+++ b/docs/learning-path.md
@@ -4,11 +4,12 @@ contentType: overview
---
This guide outlines a series of tutorials and resources designed to get you started with n8n.
-It's not necessary to complete all items listed to start effectively using n8n. This guide isn't exhaustive; use this as a reference to navigate to the most relevant parts of the documentation and other resources according to your needs.
+It's not necessary to complete all items listed to start using n8n. Use this as a reference to navigate to the most relevant parts of the documentation and other resources according to your needs.
## Join the community
n8n has an active community where you can get and offer help. Connect, share, and learn with other n8n users:
+
- [Ask questions](https://community.n8n.io/t/readme-welcome-to-the-n8n-community/44381){:target=_blank .external-link} and [make feature requests](https://community.n8n.io/c/feature-requests){:target=_blank .external-link} in the Community Forum.
- [Report bugs](https://github.com/n8n-io/n8n/issues){:target=_blank .external-link} and [contribute](https://github.com/n8n-io/n8n/blob/master/CONTRIBUTING.md){:target=_blank .external-link} on GitHub.
From abe587bbcdf5150baab64fbd565c113a1225c98f Mon Sep 17 00:00:00 2001
From: Aya Tanikawa <15815271+ayatnkw@users.noreply.github.com>
Date: Thu, 2 May 2024 13:45:51 +0200
Subject: [PATCH 08/24] fix links
---
docs/learning-path.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/learning-path.md b/docs/learning-path.md
index 65d14a6b8..a724bfa66 100644
--- a/docs/learning-path.md
+++ b/docs/learning-path.md
@@ -15,7 +15,7 @@ n8n has an active community where you can get and offer help. Connect, share, an
## Set up your n8n
-If you don't have an account yet, sign-up to a [free trial on n8n Cloud](/manage-cloud/overview/) or install n8n's community edition with [Docker](/installation/docker/) (recommended) or [npm](/installation/npm/). See [Choose your n8n](/choose-n8n/) for more details.
+If you don't have an account yet, sign-up to a [free trial on n8n Cloud](/manage-cloud/overview/) or install n8n's community edition with [Docker](/hosting/installation/docker/) (recommended) or [npm](/hosting/installation/npm/). See [Choose your n8n](/choose-n8n/) for more details.
## Try it out
@@ -37,7 +37,7 @@ Build more complex workflows while learning key concepts along the way. Earn a b
Explore various [self-hosting options in n8n](/hosting/). If you’re not sure where to start, these are two popular options:
- [Hosting n8n on DigitalOcean](/hosting/installation/server-setups/digital-ocean/)
-- [Hosting n8n on Amazon Web Services](/installation/server-setups/aws/)
+- [Hosting n8n on Amazon Web Services](/hosting/installation/server-setups/aws/)
## Build a node
From 0144ee1444bf7270c4521a32d5b5300fb16193af Mon Sep 17 00:00:00 2001
From: Deborah
Date: Thu, 2 May 2024 13:39:59 +0100
Subject: [PATCH 09/24] Update docs/learning-path.md
---
docs/learning-path.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/learning-path.md b/docs/learning-path.md
index a724bfa66..6f7591e47 100644
--- a/docs/learning-path.md
+++ b/docs/learning-path.md
@@ -15,7 +15,7 @@ n8n has an active community where you can get and offer help. Connect, share, an
## Set up your n8n
-If you don't have an account yet, sign-up to a [free trial on n8n Cloud](/manage-cloud/overview/) or install n8n's community edition with [Docker](/hosting/installation/docker/) (recommended) or [npm](/hosting/installation/npm/). See [Choose your n8n](/choose-n8n/) for more details.
+If you don't have an account yet, sign up to a [free trial on n8n Cloud](https://app.n8n.cloud/register){:target=_blank .external-link} or install n8n's community edition with [Docker](/hosting/installation/docker/) (recommended) or [npm](/hosting/installation/npm/). See [Choose your n8n](/choose-n8n/) for more details.
## Try it out
From 156507e8f9125d3c1a63f3ddfb6c3330994bb62a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?=
Date: Thu, 2 May 2024 14:54:46 +0200
Subject: [PATCH 10/24] Switch default Postgres user from `root` to `postgres`
(#2070)
* Switch default Postgres user from `root` to `postgres`
* catch the second mention of it
---------
Co-authored-by: Deborah Barnard
---
.../configuration/environment-variables/database.md | 10 +++++-----
.../configuration/supported-databases-settings.md | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/hosting/configuration/environment-variables/database.md b/docs/hosting/configuration/environment-variables/database.md
index ae6687440..21447aeaf 100644
--- a/docs/hosting/configuration/environment-variables/database.md
+++ b/docs/hosting/configuration/environment-variables/database.md
@@ -26,12 +26,12 @@ This page outlines environment variables to configure your chosen database for y
| Variable | Type | Default | Description |
| :------- | :---- | :------- | :---------- |
-| `DB_POSTGRESDB_DATABASE`
/`_FILE` | String | `n8n` | The name of the PostgreSQL database. Default value is `n8n`. |
-| `DB_POSTGRESDB_HOST`
/`_FILE` | String | `localhost` | The PostgreSQL host. Default value is `localhost`. |
-| `DB_POSTGRESDB_PORT`
/`_FILE` | Number | `5432` | The PostgreSQL port. Default value is `5432`. |
-| `DB_POSTGRESDB_USER`
/`_FILE` | String | `root` | The PostgreSQL user. Default value is `root`. |
+| `DB_POSTGRESDB_DATABASE`
/`_FILE` | String | `n8n` | The name of the PostgreSQL database. |
+| `DB_POSTGRESDB_HOST`
/`_FILE` | String | `localhost` | The PostgreSQL host. |
+| `DB_POSTGRESDB_PORT`
/`_FILE` | Number | `5432` | The PostgreSQL port. |
+| `DB_POSTGRESDB_USER`
/`_FILE` | String | `postgres` | The PostgreSQL user. |
| `DB_POSTGRESDB_PASSWORD`
/`_FILE` | String | - | The PostgreSQL password. |
-| `DB_POSTGRESDB_SCHEMA`
/`_FILE` | String | `public` | The PostgreSQL schema. Default value is `public`. |
+| `DB_POSTGRESDB_SCHEMA`
/`_FILE` | String | `public` | The PostgreSQL schema. |
| `DB_POSTGRESDB_SSL_CA`
/`_FILE` | String | - | The PostgreSQL SSL certificate authority. |
| `DB_POSTGRESDB_SSL_CERT`
/`_FILE` | String | - | The PostgreSQL SSL certificate. |
| `DB_POSTGRESDB_SSL_KEY`
/`_FILE` | String | - | The PostgreSQL SSL key. |
diff --git a/docs/hosting/configuration/supported-databases-settings.md b/docs/hosting/configuration/supported-databases-settings.md
index c9ab9459b..a8ced74aa 100644
--- a/docs/hosting/configuration/supported-databases-settings.md
+++ b/docs/hosting/configuration/supported-databases-settings.md
@@ -20,7 +20,7 @@ To use PostgresDB as the database, you can provide the following environment var
- `DB_POSTGRESDB_DATABASE` (default: 'n8n')
- `DB_POSTGRESDB_HOST` (default: 'localhost')
- `DB_POSTGRESDB_PORT` (default: 5432)
- - `DB_POSTGRESDB_USER` (default: 'root')
+ - `DB_POSTGRESDB_USER` (default: 'postgres')
- `DB_POSTGRESDB_PASSWORD` (default: empty)
- `DB_POSTGRESDB_SCHEMA` (default: 'public')
- `DB_POSTGRESDB_SSL_CA` (default: undefined): Path to the server's CA certificate used to validate the connection (opportunistic encryption isn't supported)
From d819c8b0e197ee5a44f4cae2e52a5f6e1f8c608f Mon Sep 17 00:00:00 2001
From: Jon
Date: Thu, 2 May 2024 13:55:14 +0100
Subject: [PATCH 11/24] Add new trigger option (#2064)
---
.../builtin/trigger-nodes/n8n-nodes-base.wisetrigger.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/integrations/builtin/trigger-nodes/n8n-nodes-base.wisetrigger.md b/docs/integrations/builtin/trigger-nodes/n8n-nodes-base.wisetrigger.md
index 27541467d..5af101603 100644
--- a/docs/integrations/builtin/trigger-nodes/n8n-nodes-base.wisetrigger.md
+++ b/docs/integrations/builtin/trigger-nodes/n8n-nodes-base.wisetrigger.md
@@ -19,6 +19,7 @@ For usage examples and templates to help you get started, refer to n8n's [Wise T
## Events
- Triggered every time a balance account is credited
+- Triggered every time a balance account is credited or debited
- Triggered every time a transfer's list of active cases is updated
-- Triggered every time a transfer's status is updated
+- Triggered every time a transfer's status is updated
From 8cc2485fec9c4aef424ecc7598bb720781261aa0 Mon Sep 17 00:00:00 2001
From: Deborah Barnard
Date: Thu, 2 May 2024 14:45:16 +0100
Subject: [PATCH 12/24] release note, AskAI, node updates
---
.../builtin/app-nodes/n8n-nodes-base.misp.md | 4 ++
.../core-nodes/n8n-nodes-base.httprequest.md | 8 ++++
.../builtin/credentials/httprequest.md | 43 ++++++++++--------
docs/release-notes.md | 44 +++++++++++++++++++
4 files changed, 81 insertions(+), 18 deletions(-)
diff --git a/docs/integrations/builtin/app-nodes/n8n-nodes-base.misp.md b/docs/integrations/builtin/app-nodes/n8n-nodes-base.misp.md
index 421e32e52..055600848 100644
--- a/docs/integrations/builtin/app-nodes/n8n-nodes-base.misp.md
+++ b/docs/integrations/builtin/app-nodes/n8n-nodes-base.misp.md
@@ -25,6 +25,7 @@ For usage examples and templates to help you get started, take a look at n8n's [
* Delete
* Get
* Get All
+ * Search
* Update
* Event
* Create
@@ -32,6 +33,7 @@ For usage examples and templates to help you get started, take a look at n8n's [
* Get
* Get All
* Publish
+ * Search
* Unpublish
* Update
* Event Tag
@@ -51,6 +53,8 @@ For usage examples and templates to help you get started, take a look at n8n's [
* Noticelist
* Get
* Get All
+* Object
+ * Search
* Organisation
* Create
* Delete
diff --git a/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md b/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md
index 67062f972..ef41a0ae0 100644
--- a/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md
+++ b/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md
@@ -122,5 +122,13 @@ Import a curl command:
2. Paste in your curl command.
3. Select **Import**. n8n loads the request configuration into the node fields. This overwrites any existing configuration.
+## Ask AI to configure the HTTP node
+
+From version 1.40.0, you can use AI to configure the node parameters:
+
+1. Select **Ask AI**.
+1. Enter the **Service** and **Request** you want to use. For example, to use the NASA API to get their picture of the day, enter `NASA` in **Service** and `get picture of the day` in **Request**.
+1. Check the parameters carefully: the AI tries to fill them out correctly, but you may still need to adjust or correct the configuration.
+
diff --git a/docs/integrations/builtin/credentials/httprequest.md b/docs/integrations/builtin/credentials/httprequest.md
index 405ff72fa..84ea498a4 100644
--- a/docs/integrations/builtin/credentials/httprequest.md
+++ b/docs/integrations/builtin/credentials/httprequest.md
@@ -14,13 +14,19 @@ You can use these credentials to authenticate the following nodes:
You must use the authentication method required by the app or service you want to query.
-### Existing credential types
+### Predefined credential types
n8n recommends using this option whenever there's a credential type available for the service you want to connect to. It offers an easier way to set up and manage credentials, compared to configuring generic credentials.
You can use [Predefined credential types](/integrations/custom-operations/#predefined-credential-types) to perform custom operations with some APIs where n8n has a node for the platform. For example, n8n has an Asana node, and supports using your Asana credentials in the HTTP Request node. Refer to [Custom operations](/integrations/custom-operations/) for more information.
-### Generic authentication
+### Using a predefined credential type
+
+--8<-- "_snippets/integrations/predefined-credential-type-how-to.md"
+
+Refer to [Custom API operations](/integrations/custom-operations/) for more information.
+
+## Generic authentication
The following generic authentication methods are available:
@@ -34,26 +40,19 @@ The following generic authentication methods are available:
You can learn more about HTTP authentication [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#see_also){:target=_blank .external-link}.
-
-## Using an existing credential type
-
---8<-- "_snippets/integrations/predefined-credential-type-how-to.md"
-
-Refer to [Custom API operations](/integrations/custom-operations/) for more information.
-
-## Using Basic Auth or Digest Auth
+### Using Basic Auth or Digest Auth
1. Update the credential name.
2. Enter the **Username** and **Password** for the app or service your HTTP Request is targeting.
3. Select **Save** to save your credentials.
-## Using Header Auth
+### Using Header Auth
1. Update the credential name.
2. Enter the header **Name** and **Value** required for the app or service your HTTP Request is targeting. Read more about [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers#authentication){:target=_blank .external-link}.
3. Select **Save** to save your credentials.
-## Using OAuth1
+### Using OAuth1
1. Update the credential name.
2. Enter the following authentication details:
@@ -67,7 +66,7 @@ Refer to [Custom API operations](/integrations/custom-operations/) for more info
Read more about [OAuth1](https://oauth.net/1/){:target=_blank .external-link}.
-## Using OAuth2
+### Using OAuth2
1. Update the credential name.
2. Enter the following authentication details:
@@ -82,11 +81,11 @@ Read more about [OAuth1](https://oauth.net/1/){:target=_blank .external-link}.
Read more about [OAuth2](https://oauth.net/2/){:target=_blank .external-link}.
-## Using Custom Auth
+### Using Custom Auth
The **Generic Auth Type** > **Custom Auth** option expects JSON data to define your credential. You can use `headers`, `qs`, `body` or a mix. See the examples below to get started.
-### Sending two headers
+#### Sending two headers
```
{
"headers": {
@@ -96,7 +95,7 @@ The **Generic Auth Type** > **Custom Auth** option expects JSON data to define y
}
```
-### Body
+#### Body
```
{
"body" : {
@@ -106,7 +105,7 @@ The **Generic Auth Type** > **Custom Auth** option expects JSON data to define y
}
```
-### Query string
+#### Query string
```
{
"qs": {
@@ -116,7 +115,7 @@ The **Generic Auth Type** > **Custom Auth** option expects JSON data to define y
}
```
-### Sending header and query string
+#### Sending header and query string
```
{
"headers": {
@@ -127,3 +126,11 @@ The **Generic Auth Type** > **Custom Auth** option expects JSON data to define y
}
}
```
+
+## Provide an SSL certificate
+
+You can send an SSL certificate with your HTTP request. You can use this alongside other credential types.
+
+1. In the node **Settings** {.off-glb}, enable **SSL Certificates**.
+1. On the **Parameters** tab, add the SSL credential to **Credential for SSL Certificates**.
+
diff --git a/docs/release-notes.md b/docs/release-notes.md
index e69ff5eff..43ca8e110 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -29,6 +29,50 @@ n8n uses [semantic versioning](https://semver.org/){:target=_blank .external-lin
* PATCH version when making backward-compatible bug fixes.
+## n8n@1.40.0
+
+View the [commits](https://github.com/n8n-io/n8n/compare/n8n@1.39.1...n8n@1.40.0){:target=_blank .external-link} for this version.
+**Release date:** 2024-05-02
+
+/// warning | Breaking change
+Please note that this version contains a breaking change for instances using a Postgres database. The default value for the DB_POSTGRESDB_USER environment variable was switched from `root` to `postgres`. Refer to the [breaking changes log](https://github.com/n8n-io/n8n/blob/master/packages/cli/BREAKING-CHANGES.md#1400){:target=_blank .external-link} for details.
+///
+
+This release contains new features, new nodes, node enhancements, and bug fixes.
+
+
+
+#### New feature: Ask AI in the HTTP node
+
+You can now ask AI to help create API requests in the HTTP Request node:
+
+1. In the HTTP Request node, select **Ask AI**.
+1. Enter the **Service** and **Request** you want to use. For example, to use the NASA API to get their picture of the day, enter `NASA` in **Service** and `get picture of the day` in **Request**.
+1. Check the parameters: the AI tries to fill them out, but you may still need to adjust or correct the configuration.
+
+
+
+
+
+#### New node: Groq Chat Model
+
+This release adds the [Groq Chat Model node](/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgroq/).
+
+
+
+For full release details, refer to [Releases](https://github.com/n8n-io/n8n/releases){:target=_blank .external-link} on GitHub.
+
+### Contributors
+
+[Alberto Pasqualetto](https://github.com/albertopasqualetto){:target=_blank .external-link}
+[Bram Kn](https://github.com/bramkn){:target=_blank .external-link}
+[CodeShakingSheep](https://github.com/CodeShakingSheep){:target=_blank .external-link}
+[Nicolas-nwb](https://github.com/Nicolas-nwb){:target=_blank .external-link}
+[pemontto](https://github.com/pemontto){:target=_blank .external-link}
+[pengqiseven](https://github.com/pengqiseven){:target=_blank .external-link}
+[Yoshino-s](https://github.com/Yoshino-s){:target=_blank .external-link}
+[webk](https://github.com/webkp){:target=_blank .external-link}
+
## n8n@1.39.1
View the [commits](https://github.com/n8n-io/n8n/compare/n8n@1.39.0...n8n@1.39.1){:target=_blank .external-link} for this version.
From 1f3e36a70019d010c85330cf65a13a84cac28013 Mon Sep 17 00:00:00 2001
From: Deborah Barnard
Date: Thu, 2 May 2024 14:45:31 +0100
Subject: [PATCH 13/24] wip
---
.../builtin/core-nodes/n8n-nodes-base.httprequest.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md b/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md
index ef41a0ae0..e8f744278 100644
--- a/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md
+++ b/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md
@@ -128,7 +128,7 @@ From version 1.40.0, you can use AI to configure the node parameters:
1. Select **Ask AI**.
1. Enter the **Service** and **Request** you want to use. For example, to use the NASA API to get their picture of the day, enter `NASA` in **Service** and `get picture of the day` in **Request**.
-1. Check the parameters carefully: the AI tries to fill them out correctly, but you may still need to adjust or correct the configuration.
+1. Check the parameters: the AI tries to fill them out, but you may still need to adjust or correct the configuration.
From a4aa21b7b646797998e4c4c0c790cd1c5a855040 Mon Sep 17 00:00:00 2001
From: Deborah Barnard
Date: Thu, 2 May 2024 14:54:55 +0100
Subject: [PATCH 14/24] add ai env vars
---
.../configuration/environment-variables/ai.md | 22 +++++++++++++++++++
.../core-nodes/n8n-nodes-base.httprequest.md | 4 +++-
docs/release-notes.md | 2 ++
3 files changed, 27 insertions(+), 1 deletion(-)
create mode 100644 docs/hosting/configuration/environment-variables/ai.md
diff --git a/docs/hosting/configuration/environment-variables/ai.md b/docs/hosting/configuration/environment-variables/ai.md
new file mode 100644
index 000000000..d3f9b0f96
--- /dev/null
+++ b/docs/hosting/configuration/environment-variables/ai.md
@@ -0,0 +1,22 @@
+---
+title: AI environment variables
+description: Manage AI features in your n8n instance.
+contentType: reference
+tags:
+ - environment variables
+hide:
+ - toc
+ - tags
+---
+
+# Credentials environment variables
+
+--8<-- "_snippets/self-hosting/file-based-configuration.md"
+
+| Variable | Type | Default | Description |
+| :------- | :---- | :------- | :---------- |
+| `N8N_AI_ENABLED` | Boolean | `false` | Whether AI features are enabled (true) or not (false) |
+| `N8N_AI_PROVIDER` | String | `openai` | The AI provider to use. Currently, n8n only supports OpenAI. |
+| `N8N_AI_OPENAI_KEY` | String | - | Your OpenAI API key. |
+| `N8N_AI_OPENAI_MODEL` | String | `gpt-4-turbo` | The OpenAI model to use. |
+| `N8N_AI_PINECONE_API_KEY` | String | - | Your Pinecone API key. |
diff --git a/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md b/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md
index e8f744278..ffd09f5bf 100644
--- a/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md
+++ b/docs/integrations/builtin/core-nodes/n8n-nodes-base.httprequest.md
@@ -124,7 +124,7 @@ Import a curl command:
## Ask AI to configure the HTTP node
-From version 1.40.0, you can use AI to configure the node parameters:
+From version 1.40.0, you can use AI to configure the node parameters. Self-hosted users need to [enable AI features and provide their own API keys](/hosting/configuration/environment-variables/ai/).
1. Select **Ask AI**.
1. Enter the **Service** and **Request** you want to use. For example, to use the NASA API to get their picture of the day, enter `NASA` in **Service** and `get picture of the day` in **Request**.
@@ -132,3 +132,5 @@ From version 1.40.0, you can use AI to configure the node parameters:
+
+
diff --git a/docs/release-notes.md b/docs/release-notes.md
index 43ca8e110..f9e510a2f 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -50,6 +50,8 @@ You can now ask AI to help create API requests in the HTTP Request node:
1. Enter the **Service** and **Request** you want to use. For example, to use the NASA API to get their picture of the day, enter `NASA` in **Service** and `get picture of the day` in **Request**.
1. Check the parameters: the AI tries to fill them out, but you may still need to adjust or correct the configuration.
+Self-hosted users need to [enable AI features and provide their own API keys](/hosting/configuration/environment-variables/ai/)
+
From 6f12dc39b20788e07e007b83df113dc75700254d Mon Sep 17 00:00:00 2001
From: Deborah Barnard
Date: Thu, 2 May 2024 15:00:54 +0100
Subject: [PATCH 15/24] add ai env vars to nav
---
mkdocs.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/mkdocs.yml b/mkdocs.yml
index ab05da29a..14426d5c9 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1149,6 +1149,7 @@ nav:
- Configuration:
- Environment variables:
- Environment variables overview : hosting/configuration/environment-variables/index.md
+ - License: hosting/configuration/environment-variables/ai.md
- Credentials: hosting/configuration/environment-variables/credentials.md
- Database: hosting/configuration/environment-variables/database.md
- Deployment: hosting/configuration/environment-variables/deployment.md
From 9f0cdf8132dd4ecd7589df3672785678489a88c9 Mon Sep 17 00:00:00 2001
From: Deborah Barnard
Date: Thu, 2 May 2024 15:02:05 +0100
Subject: [PATCH 16/24] the alphabet is difficult
---
docs/release-notes.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/release-notes.md b/docs/release-notes.md
index f9e510a2f..35b63091f 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -72,8 +72,9 @@ For full release details, refer to [Releases](https://github.com/n8n-io/n8n/rele
[Nicolas-nwb](https://github.com/Nicolas-nwb){:target=_blank .external-link}
[pemontto](https://github.com/pemontto){:target=_blank .external-link}
[pengqiseven](https://github.com/pengqiseven){:target=_blank .external-link}
-[Yoshino-s](https://github.com/Yoshino-s){:target=_blank .external-link}
[webk](https://github.com/webkp){:target=_blank .external-link}
+[Yoshino-s](https://github.com/Yoshino-s){:target=_blank .external-link}
+
## n8n@1.39.1
From 3fda435708514af4cc338dd5ce5254de4ab95dd4 Mon Sep 17 00:00:00 2001
From: Deborah Barnard
Date: Thu, 2 May 2024 15:04:34 +0100
Subject: [PATCH 17/24] update next
---
.../self-hosting/installation/latest-next-version.md | 2 +-
docs/release-notes.md | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/_snippets/self-hosting/installation/latest-next-version.md b/_snippets/self-hosting/installation/latest-next-version.md
index 29a91dcbb..19ea4e8c0 100644
--- a/_snippets/self-hosting/installation/latest-next-version.md
+++ b/_snippets/self-hosting/installation/latest-next-version.md
@@ -2,5 +2,5 @@
n8n releases a new minor version most weeks. The `latest` version is for production use. `next` is the most recent release. You should treat `next` as a beta: it may be unstable. To report issues, use the [forum](https://community.n8n.io/c/questions/12){:target=_blank .external-link}.
Current `latest`: 1.38.2
-Current `next`: 1.39.1
+Current `next`: 1.40.0
///
diff --git a/docs/release-notes.md b/docs/release-notes.md
index 35b63091f..169f3281a 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -34,6 +34,10 @@ n8n uses [semantic versioning](https://semver.org/){:target=_blank .external-lin
View the [commits](https://github.com/n8n-io/n8n/compare/n8n@1.39.1...n8n@1.40.0){:target=_blank .external-link} for this version.
**Release date:** 2024-05-02
+/// note | Next version
+This is the `next` version. n8n recommends using the `latest` version. The `next` version may be unstable. To report issues, use the [forum](https://community.n8n.io/c/questions/12){:target=_blank .external-link}.
+///
+
/// warning | Breaking change
Please note that this version contains a breaking change for instances using a Postgres database. The default value for the DB_POSTGRESDB_USER environment variable was switched from `root` to `postgres`. Refer to the [breaking changes log](https://github.com/n8n-io/n8n/blob/master/packages/cli/BREAKING-CHANGES.md#1400){:target=_blank .external-link} for details.
///
@@ -81,10 +85,6 @@ For full release details, refer to [Releases](https://github.com/n8n-io/n8n/rele
View the [commits](https://github.com/n8n-io/n8n/compare/n8n@1.39.0...n8n@1.39.1){:target=_blank .external-link} for this version.
**Release date:** 2024-04-25
-/// note | Next version
-This is the `next` version. n8n recommends using the `latest` version. The `next` version may be unstable. To report issues, use the [forum](https://community.n8n.io/c/questions/12){:target=_blank .external-link}.
-///
-
This release contains bug fixes.
For full release details, refer to [Releases](https://github.com/n8n-io/n8n/releases){:target=_blank .external-link} on GitHub.
From ca69aac3ced2ebd36dc515a774c9772ae6fe441e Mon Sep 17 00:00:00 2001
From: Deborah Barnard
Date: Thu, 2 May 2024 15:10:40 +0100
Subject: [PATCH 18/24] fix nav
---
mkdocs.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mkdocs.yml b/mkdocs.yml
index 14426d5c9..8e0430d48 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1149,7 +1149,7 @@ nav:
- Configuration:
- Environment variables:
- Environment variables overview : hosting/configuration/environment-variables/index.md
- - License: hosting/configuration/environment-variables/ai.md
+ - AI: hosting/configuration/environment-variables/ai.md
- Credentials: hosting/configuration/environment-variables/credentials.md
- Database: hosting/configuration/environment-variables/database.md
- Deployment: hosting/configuration/environment-variables/deployment.md
From fb795397dc2f29e65c5e8e47b41f9314b4949f2a Mon Sep 17 00:00:00 2001
From: Aya Tanikawa <15815271+ayatnkw@users.noreply.github.com>
Date: Thu, 2 May 2024 16:57:31 +0200
Subject: [PATCH 19/24] update gif
---
.../export-import/selectingnodes.gif | Bin 251742 -> 314688 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/docs/_images/workflows/export-import/selectingnodes.gif b/docs/_images/workflows/export-import/selectingnodes.gif
index 899dd14f9b2b6e9d8c5d9b7a70f8ef641450c511..bf41e4ac7244ff99bb3af3bd248b44fe161dd771 100644
GIT binary patch
literal 314688
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