Skip to content

Commit

Permalink
Merge branch 'master' into node-1147-introduce-autocomplete-inner-sec…
Browse files Browse the repository at this point in the history
…tions
  • Loading branch information
elsmr committed Mar 6, 2024
2 parents 0d4061b + 3a7a6c8 commit c6b9f90
Show file tree
Hide file tree
Showing 161 changed files with 3,938 additions and 2,686 deletions.
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,36 @@
# [1.31.0](https://github.com/n8n-io/n8n/compare/[email protected]@1.31.0) (2024-02-28)


### Bug Fixes

* **core:** Ensure `maxRedirects` is used for any http request defining it ([#8706](https://github.com/n8n-io/n8n/issues/8706)) ([246c988](https://github.com/n8n-io/n8n/commit/246c988b9373a838086f37e603ec2827cf849588))
* **core:** Fix pairedItem issue with partial manual executions ([#8575](https://github.com/n8n-io/n8n/issues/8575)) ([a29b41e](https://github.com/n8n-io/n8n/commit/a29b41ec55d8a0cf5610a53087e455b7e649b8bc))
* **Default Data Loader Node:** Fix binary data loader in s3 mode ([#8626](https://github.com/n8n-io/n8n/issues/8626)) ([a5e6f59](https://github.com/n8n-io/n8n/commit/a5e6f5928ae39f19d6cb55a234818e776141e325))
* **editor:** Do not break NDV for version-less nodes ([#8714](https://github.com/n8n-io/n8n/issues/8714)) ([8a88d15](https://github.com/n8n-io/n8n/commit/8a88d156847852b38e1fd13f3b9240887491a665))
* **editor:** Hide previous execution data for sub-nodes in debug mode if it has execution error ([#8710](https://github.com/n8n-io/n8n/issues/8710)) ([a973b9c](https://github.com/n8n-io/n8n/commit/a973b9c077d28faa45b527cf6e0f0e6644cf354a))
* **editor:** Update Filter component state when value is updated ([#8684](https://github.com/n8n-io/n8n/issues/8684)) ([3ba2cdc](https://github.com/n8n-io/n8n/commit/3ba2cdcadbf4df4e4521cb03bf63f13a32a926a5))
* Fix execution error when using AI chain nodes with non-chat model ([#8724](https://github.com/n8n-io/n8n/issues/8724)) ([0882dc0](https://github.com/n8n-io/n8n/commit/0882dc0ce9ad4c9260390f99be56df2d6f7b5e86))
* **Postgres Trigger Node:** `closeFunction` errors should not prevent a workflow from being deactivated ([#8738](https://github.com/n8n-io/n8n/issues/8738)) ([7012577](https://github.com/n8n-io/n8n/commit/7012577fce796c6d18ab8081f90014a8cded7391))
* Send user id when setting up an account ([#8639](https://github.com/n8n-io/n8n/issues/8639)) ([27f3166](https://github.com/n8n-io/n8n/commit/27f3166272455627a2d2f851a286126310a4d5b5))
* **Trello Node:** Remove GET request body ([#8715](https://github.com/n8n-io/n8n/issues/8715)) ([8c4a744](https://github.com/n8n-io/n8n/commit/8c4a744c56ce84984ed837583cdfd7a296de5090))
* Wrong prompt input key for sql agent ([#8708](https://github.com/n8n-io/n8n/issues/8708)) ([7c1cf33](https://github.com/n8n-io/n8n/commit/7c1cf33616eb1990a9d6d7f4b93e91575f2cddc8))


### Features

* Add env variables to support exposing `/workflows/demo` route and `/nodes.json` route ([#8506](https://github.com/n8n-io/n8n/issues/8506)) ([4b01335](https://github.com/n8n-io/n8n/commit/4b01335aa45d93b0e4f2b7c69503430f1bcca28a))
* Add Outlook Trigger Node ([#8656](https://github.com/n8n-io/n8n/issues/8656)) ([720ae1b](https://github.com/n8n-io/n8n/commit/720ae1b96b4c6fd644bad60191c35d8d598ad666))
* Add support for Ollama embeddings API ([#8732](https://github.com/n8n-io/n8n/issues/8732)) ([15490ad](https://github.com/n8n-io/n8n/commit/15490ad1d47c4f0d5c3f9eb350b2a1bcad4bbec0))
* **AI Agent Node:** Allow use of Azure Chat model for OpenAI Functions agent ([#8725](https://github.com/n8n-io/n8n/issues/8725)) ([d03d927](https://github.com/n8n-io/n8n/commit/d03d9276f923d541f9c9ef86b8dc232f2737e30b))
* Allow instance owners and admins to edit all credentials ([#8716](https://github.com/n8n-io/n8n/issues/8716)) ([7371708](https://github.com/n8n-io/n8n/commit/737170893d17108098c14db6be80071e8ef51930))
* **editor:** AI Floating Nodes ([#8703](https://github.com/n8n-io/n8n/issues/8703)) ([41b191e](https://github.com/n8n-io/n8n/commit/41b191e0552aa2d92d442d1dea05913e8b386d4d))
* **editor:** Retrieve previous chat message on arrow-up ([#8696](https://github.com/n8n-io/n8n/issues/8696)) ([246f8cf](https://github.com/n8n-io/n8n/commit/246f8cfcc3acdeb323849c94542fc4ad028c4f77))
* No expression error when node hasn’t executed ([#8448](https://github.com/n8n-io/n8n/issues/8448)) ([f9a99ec](https://github.com/n8n-io/n8n/commit/f9a99ec0295499d95534d64e016f70339a56956b))
* Session is selector for memory nodes ([#8736](https://github.com/n8n-io/n8n/issues/8736)) ([2aaf211](https://github.com/n8n-io/n8n/commit/2aaf211dfc270920a4885a2b086b98ab8a3c2af6))
* SQL agent improvements ([#8709](https://github.com/n8n-io/n8n/issues/8709)) ([0952430](https://github.com/n8n-io/n8n/commit/09524304e6a8d1fdcdfe6340b71a5a443b942d6d))



# [1.30.0](https://github.com/n8n-io/n8n/compare/[email protected]@1.30.0) (2024-02-21)


Expand Down
11 changes: 7 additions & 4 deletions cypress/e2e/14-mapping.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,8 @@ describe('Data mapping', () => {
ndv.actions.clearParameterInput('value');
cy.get('body').type('{esc}');

ndv.getters.parameterInput('keepOnlySet').find('input[type="checkbox"]').should('exist');
ndv.getters.parameterInput('keepOnlySet').find('input[type="text"]').should('not.exist');
ndv.getters.parameterInput('includeOtherFields').find('input[type="checkbox"]').should('exist');
ndv.getters.parameterInput('includeOtherFields').find('input[type="text"]').should('not.exist');
ndv.getters
.inputDataContainer()
.should('exist')
Expand All @@ -296,9 +296,12 @@ describe('Data mapping', () => {
.realMouseMove(100, 100);
cy.wait(50);

ndv.getters.parameterInput('keepOnlySet').find('input[type="checkbox"]').should('not.exist');
ndv.getters
.parameterInput('keepOnlySet')
.parameterInput('includeOtherFields')
.find('input[type="checkbox"]')
.should('not.exist');
ndv.getters
.parameterInput('includeOtherFields')
.find('input[type="text"]')
.should('exist')
.invoke('css', 'border')
Expand Down
20 changes: 20 additions & 0 deletions cypress/e2e/5-ndv.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -632,4 +632,24 @@ describe('NDV', () => {
ndv.actions.changeNodeOperation('Update Row');
ndv.getters.resourceLocatorInput('documentId').find('input').should('have.value', TEST_DOC_ID);
});

it('Should open appropriate node creator after clicking on connection hint link', () => {
const nodeCreator = new NodeCreator();
const hintMapper = {
'Memory': 'AI Nodes',
'Output Parser': 'AI Nodes',
'Token Splitter': 'Document Loaders',
'Tool': 'AI Nodes',
'Embeddings': 'Vector Stores',
'Vector Store': 'Retrievers'
}
cy.createFixtureWorkflow('open_node_creator_for_connection.json', `open_node_creator_for_connection ${uuid()}`);

Object.entries(hintMapper).forEach(([node, group]) => {
workflowPage.actions.openNode(node);
cy.get('[data-action=openSelectiveNodeCreator]').contains('Insert one').click();
nodeCreator.getters.activeSubcategory().should('contain', group);
cy.realPress('Escape');
});
})
});
40 changes: 21 additions & 19 deletions cypress/fixtures/Test_workflow_3.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,21 @@
},
{
"parameters": {
"values": {
"string": [
{
"name": "other",
"value": ""
}
"assignments": {
"assignments": [
{
"id": "2b0f25a2-9483-4579-9f6d-91b7ac2fcb71",
"name": "other",
"value": "",
"type": "string"
}
]
},
"options": {}
}
},
"id": "2dfc690a-95cf-48c2-85a6-2b3bb8cd1d1d",
"name": "Set",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"typeVersion": 3.3,
"position": [
920,
300
Expand All @@ -43,21 +44,22 @@
"id": "9bee04af-1bfc-4be2-a704-e975cb887ced",
"name": "Set1",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"typeVersion": 3.3,
"position": [
1120,
300
],
"parameters": {
"values": {
"string": [
{
"name": "other",
"value": ""
}
"assignments": {
"assignments": [
{
"id": "2b0f25a2-9483-4579-9f6d-91b7ac2fcb71",
"name": "other",
"value": "",
"type": "string"
}
]
},
"options": {}
}
}
}
],
Expand Down Expand Up @@ -118,4 +120,4 @@
"instanceId": "fe45a93dd232270eb40d3ba1f7907ad3935bbd72ad5e4ee09ff61e96674f9aef"
},
"tags": []
}
}
110 changes: 110 additions & 0 deletions cypress/fixtures/open_node_creator_for_connection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
{
"name": "open_node_creator_for_connection",
"nodes": [
{
"parameters": {},
"id": "25ff0c17-7064-4e14-aec6-45c71d63201b",
"name": "When clicking \"Test workflow\"",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
740,
520
]
},
{
"parameters": {},
"id": "49f376ca-845b-4737-aac0-073d0e4fa95c",
"name": "Token Splitter",
"type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter",
"typeVersion": 1,
"position": [
1180,
540
]
},
{
"parameters": {},
"id": "d1db5111-4b01-4620-8ccb-a16ea576c363",
"name": "Memory",
"type": "@n8n/n8n-nodes-langchain.memoryXata",
"typeVersion": 1.2,
"position": [
940,
540
],
"credentials": {
"xataApi": {
"id": "q1ckaYlHTWCYDtF0",
"name": "Xata Api account"
}
}
},
{
"parameters": {},
"id": "b08b6d3a-bef8-42ac-9cef-ec9d4e5402b1",
"name": "Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.1,
"position": [
1060,
540
]
},
{
"parameters": {},
"id": "ee557938-9cf1-4b78-afef-c783c52fd307",
"name": "Tool",
"type": "@n8n/n8n-nodes-langchain.toolWikipedia",
"typeVersion": 1,
"position": [
1300,
540
]
},
{
"parameters": {
"options": {}
},
"id": "814f2e9c-cc7b-4f3c-89b4-d6eb82bc24df",
"name": "Embeddings",
"type": "@n8n/n8n-nodes-langchain.embeddingsHuggingFaceInference",
"typeVersion": 1,
"position": [
1420,
540
]
},
{
"parameters": {
"tableName": {
"__rl": true,
"mode": "list",
"value": ""
},
"options": {}
},
"id": "e8569b0b-a580-4249-9c5e-f1feed5c644e",
"name": "Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
"typeVersion": 1,
"position": [
1540,
540
]
}
],
"pinData": {},
"connections": {},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "8e90604c-f7e9-489d-8e43-1cc699b7db04",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "27cc9b56542ad45b38725555722c50a1c3fee1670bbb67980558314ee08517c4"
},
"id": "L3tgfoW660UOSuX6",
"tags": []
}
36 changes: 4 additions & 32 deletions docker/images/n8n/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ n8n is an extendable workflow automation tool. With a [fair-code](https://fairco
- [Persist data](#persist-data)
- [Start with other Database](#start-with-other-database)
- [Use with PostgresDB](#use-with-postgresdb)
- [Use with MySQL](#use-with-mysql)
- [Passing Sensitive Data via File](#passing-sensitive-data-via-file)
- [Example Setup with Lets Encrypt](#example-setup-with-lets-encrypt)
- [Updating a running docker-compose instance](#updating-a-running-docker-compose-instance)
Expand Down Expand Up @@ -95,10 +94,9 @@ docker run -it --rm \
### Start with other Database

By default n8n uses SQLite to save credentials, past executions and workflows.
n8n however also supports PostgresDB, MySQL and MariaDB. To use them simply a few
environment variables have to be set.
n8n however also supports PostgresDB.

It is important to still persist the data in the `/root/.n8n` folder. The reason
It is important to still persist the data in the `/home/node/.n8n` folder. The reason
is that it contains n8n user data. That is the name of the webhook
(in case) the n8n tunnel gets used and even more important the encryption key
for the credentials. If none gets found n8n creates automatically one on
Expand Down Expand Up @@ -128,37 +126,11 @@ docker run -it --rm \
-e DB_POSTGRESDB_SCHEMA=<POSTGRES_SCHEMA> \
-e DB_POSTGRESDB_PASSWORD=<POSTGRES_PASSWORD> \
-v ~/.n8n:/home/node/.n8n \
docker.n8n.io/n8nio/n8n \
n8n start
docker.n8n.io/n8nio/n8n
```

A full working setup with docker-compose can be found [here](https://github.com/n8n-io/n8n/blob/master/docker/compose/withPostgres/README.md)

#### Use with MySQL

Replace the following placeholders with the actual data:

- MYSQLDB_DATABASE
- MYSQLDB_HOST
- MYSQLDB_PASSWORD
- MYSQLDB_PORT
- MYSQLDB_USER

```bash
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e DB_TYPE=mysqldb \
-e DB_MYSQLDB_DATABASE=<MYSQLDB_DATABASE> \
-e DB_MYSQLDB_HOST=<MYSQLDB_HOST> \
-e DB_MYSQLDB_PORT=<MYSQLDB_PORT> \
-e DB_MYSQLDB_USER=<MYSQLDB_USER> \
-e DB_MYSQLDB_PASSWORD=<MYSQLDB_PASSWORD> \
-v ~/.n8n:/home/node/.n8n \
docker.n8n.io/n8nio/n8n \
n8n start
```

## Passing Sensitive Data via File

To avoid passing sensitive information via environment variables "\_FILE" may be
Expand Down Expand Up @@ -222,7 +194,7 @@ docker run -it --rm \
docker buildx build --platform linux/amd64,linux/arm64 --build-arg N8N_VERSION=<VERSION> -t n8n:<VERSION> .

# For example:
docker buildx build --platform linux/amd64,linux/arm64 --build-arg N8N_VERSION=0.114.0 -t n8n:0.114.0 .
docker buildx build --platform linux/amd64,linux/arm64 --build-arg N8N_VERSION=1.30.1 -t n8n:1.30.1 .
```

## What does n8n mean and how do you pronounce it?
Expand Down
9 changes: 5 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "n8n-monorepo",
"version": "1.30.0",
"version": "1.31.0",
"private": true,
"homepage": "https://n8n.io",
"engines": {
Expand Down Expand Up @@ -68,9 +68,10 @@
"tsc-watch": "^6.0.4",
"turbo": "1.10.12",
"typescript": "*",
"vite": "^5.0.12",
"vitest": "^1.2.1",
"vue-tsc": "^1.8.27"
"vite": "^5.1.5",
"vite-plugin-checker": "^0.6.4",
"vitest": "^1.3.1",
"vue-tsc": "^2.0.4"
},
"pnpm": {
"onlyBuiltDependencies": [
Expand Down
20 changes: 13 additions & 7 deletions packages/@n8n/chat/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { fileURLToPath, URL } from 'node:url';

import { defineConfig } from 'vite';
import checker from 'vite-plugin-checker';
import { resolve } from 'path';
import vue from '@vitejs/plugin-vue';
import icons from 'unplugin-icons/vite';
Expand All @@ -9,15 +10,20 @@ import dts from 'vite-plugin-dts';
const includeVue = process.env.INCLUDE_VUE === 'true';
const srcPath = fileURLToPath(new URL('./src', import.meta.url));

const plugins = [
vue(),
icons({
compiler: 'vue3',
}),
dts(),
];
if (process.env.ENABLE_TYPE_CHECKING === 'true') {
plugins.push(checker({ vueTsc: true }));
}

// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
icons({
compiler: 'vue3',
}),
dts(),
],
plugins,
resolve: {
alias: {
'@': srcPath,
Expand Down
Loading

0 comments on commit c6b9f90

Please sign in to comment.