Commit graph

9546 commits

Author SHA1 Message Date
Milorad FIlipović 04dfcd73be
fix(editor): Separate cloud endpoint calls (#7312)
This PR untangles calls to cloud endpoints so failure in one of them
doesn't stop others to go through.
2023-10-02 14:25:03 +02:00
Iván Ovejero 1691223789
fix(core): Account for itemless case on restoring binary data ID (#7305)
https://linear.app/n8n/issue/PAY-862
2023-10-02 09:13:55 +02:00
Csaba Tuncsik d1b6c7fd79
feat(editor): Workflow history [WIP]- create workflow history list component (no-changelog) (#7186)
Co-authored-by: Omar Ajoue <krynble@gmail.com>
2023-09-29 17:48:36 +02:00
Omar Ajoue ec0379378e
feat(core): Add plan name to telemetry (no-changelog) (#7296)
Github issue / Community forum post (link here to close automatically):
2023-09-29 15:41:32 +02:00
कारतोफ्फेलस्क्रिप्ट™ 6a1557bc50 Merge tag 'n8n@1.9.0' 2023-09-29 14:28:06 +02:00
कारतोफ्फेलस्क्रिप्ट™ f8406c04b1
ci: Fix typescript incremental builds (no-changelog) (#7275)
`tsBuildInfoFile` is supposed to be relative to `tsconfig` like `outDir`
is.
Because of this, we are currently saving the TS incremental build cache
for all packages in the same file. This is likely causing issues where
the built backend code sometimes does not accurately map to the current
source code.

This PR changes the incremental build setup to keep the cache in
individual `dist` folders, like it used to be up until a 2 months ago,
before https://github.com/n8n-io/n8n/pull/6816.
2023-09-29 13:26:06 +02:00
Michael Kret 763d4514fa
fix(Postgres Node): Node requires comma-separated string even when using a single parameter through an expression (#7300)
Github issue / Community forum post (link here to close automatically):
2023-09-29 13:27:31 +03:00
Elias Meire ec2aa3819c
fix(Notion Node): Rename Notion API Key to Internal Integration Token (#7176)
Github issue / Community forum post (link here to close automatically):
2023-09-29 09:21:29 +02:00
github-actions[bot] 167124ceb8
🚀 Release 1.9.0 (#7288)
# [1.9.0](https://github.com/n8n-io/n8n/compare/n8n@1.8.0...n8n@1.9.0)
(2023-09-28)


### Bug Fixes

* **Airtable Node:** Attachments field type fix
([#7227](https://github.com/n8n-io/n8n/issues/7227))
([2af967c](2af967cf88))
* **core:** Change WorkflowHistory nodes/connections columns to be json
([#7282](https://github.com/n8n-io/n8n/issues/7282))
([a80abad](a80abad3af))
* **core:** Fix binary data manager check on pruning
([#7251](https://github.com/n8n-io/n8n/issues/7251))
([484035e](484035eb51))
* **core:** Fix missing execution ID in webhook-based workflow producing
binary data ([#7244](https://github.com/n8n-io/n8n/issues/7244))
([33991e9](33991e92d0))
* **core:** Handle filename* with quotes in Content-Disposition header
([#7229](https://github.com/n8n-io/n8n/issues/7229))
([67b985f](67b985fe89))
* **core:** Make DNS resolution order configurable
([#7272](https://github.com/n8n-io/n8n/issues/7272))
([5b3121c](5b3121c415))
* **core:** Make senderId required for all command messages
([#7252](https://github.com/n8n-io/n8n/issues/7252))
([4b01428](4b014286cf))
* **core:** Prevent executions from displaying Running status
incorrectly ([#7261](https://github.com/n8n-io/n8n/issues/7261))
([861cac5](861cac5257))
* **core:** Use consistent timezone-aware timestamps in postgres
([#6948](https://github.com/n8n-io/n8n/issues/6948))
([0132514](0132514f8b)),
closes [#2178](https://github.com/n8n-io/n8n/issues/2178)
[#2810](https://github.com/n8n-io/n8n/issues/2810)
[#3855](https://github.com/n8n-io/n8n/issues/3855)
[#2813](https://github.com/n8n-io/n8n/issues/2813)
* **editor:** Add debug feature docs link
([#7240](https://github.com/n8n-io/n8n/issues/7240))
([4614e1e](4614e1e1c9))
* **editor:** Fix SQL editor issue
([#7236](https://github.com/n8n-io/n8n/issues/7236))
([647fc6c](647fc6c555))
* **editor:** Ensure new Set node is on top of search list
([#7215](https://github.com/n8n-io/n8n/issues/7215))
([2491ccf](2491ccf4d9))
* **editor:** Forbid password reset when cloud account is limited in the
number of users [7188](https://github.com/n8n-io/n8n/issues/7188)
([303bc8e](303bc8e71e))
* **HTTP Request Node:** Add suggestion how to fix '429 - too many
requests' errors ([#7293](https://github.com/n8n-io/n8n/issues/7293))
([0bc33b1](0bc33b1cc2))
* **Item Lists Node:** Concatenate operation pairedItems fix
([#7286](https://github.com/n8n-io/n8n/issues/7286))
([cde23a1](cde23a1bb1))
* **Respond to Webhook Node:** JSON output from expression fix
([#7294](https://github.com/n8n-io/n8n/issues/7294))
([8bc369d](8bc369dd40))


### Features

* Add onboarding flow
([#7212](https://github.com/n8n-io/n8n/issues/7212))
([01e9340](01e9340621))
* **core:** Add secrets provider reload and refactor
([#7277](https://github.com/n8n-io/n8n/issues/7277))
([53a7502](53a7502d20))
* **core:** Add Tournament as the new default expression evaluator
([#6964](https://github.com/n8n-io/n8n/issues/6964))
([bf74f09](bf74f09d69))
* **core:** Initial workflow history API
([#7234](https://github.com/n8n-io/n8n/issues/7234))
([0083a9e](0083a9e45d))
* **core:** Introduce object store service
([#7225](https://github.com/n8n-io/n8n/issues/7225))
([fa84545](fa845453bb))
* **editor:** Add user cloud ID to telemetry
[#7232](https://github.com/n8n-io/n8n/issues/7232)
([60c152d](60c152dc72))
* **editor:** Rework banners framework and add email confirmation banner
([#7205](https://github.com/n8n-io/n8n/issues/7205))
([b0e98b5](b0e98b59a6))
* **MISP Node:** Update credential to support HTTP Request node
([#7268](https://github.com/n8n-io/n8n/issues/7268))
([e4c302c](e4c302c683))


### Performance Improvements

* **core:** Skip unneeded calls on every pruning cycle
([#7260](https://github.com/n8n-io/n8n/issues/7260))
([db01164](db01164ce1))

Co-authored-by: netroy <netroy@users.noreply.github.com>
2023-09-28 17:22:28 +02:00
कारतोफ्फेलस्क्रिप्ट™ cf5a0ca456
ci: Refactor DB tests (no-changelog) (#7292)
[DB tests](https://github.com/n8n-io/n8n/actions/runs/6340094467)
2023-09-28 16:53:05 +02:00
Marcus 0bc33b1cc2
fix(HTTP Request Node): Add suggestion how to fix '429 - too many requests' errors (#7293)
Github issue / Community forum post (link here to close automatically):
2023-09-28 16:00:45 +02:00
Michael Kret 8bc369dd40
fix(Respond to Webhook Node): JSON output from expression fix (#7294)
Github issue / Community forum post (link here to close automatically):
https://github.com/n8n-io/n8n/issues/7077
2023-09-28 16:46:00 +03:00
Michael Auerswald 53a7502d20
feat(core): Add secrets provider reload and refactor (#7277)
This PR adds a message for queue mode which triggers an external secrets
provider reload inside the workers if the configuration has changed on
the main instance.

It also refactors some of the message handler code to remove cyclic
dependencies, as well as remove unnecessary duplicate redis clients
inside services (thanks to no more cyclic deps)
2023-09-28 12:57:35 +02:00
Val a80abad3af
fix(core): Change WorkflowHistory nodes/connections columns to be json (#7282)
Github issue / Community forum post (link here to close automatically):
2023-09-28 10:37:33 +02:00
Michael Kret cde23a1bb1
fix(Item Lists Node): Concatenate operation pairedItems fix (#7286)
Github issue / Community forum post (link here to close automatically):

---------

Co-authored-by: Jonathan Bennetts <jonathan.bennetts@gmail.com>
2023-09-28 10:20:54 +03:00
कारतोफ्फेलस्क्रिप्ट™ 0132514f8b
fix(core): Use consistent timezone-aware timestamps in postgres (#6948)
Fixes:
* ENG-51 / N8N-2490
* PAY-397
* #2178
* #2810
* #3855

Supersedes #2813

[DB
Tests](https://github.com/n8n-io/n8n/actions/runs/6000780146/job/16273596338)
2023-09-27 18:44:47 +02:00
कारतोफ्फेलस्क्रिप्ट™ ebce6fe1b0
refactor(core): Skip sending webhook activation errors to Sentry (no-changelog) (#7171) 2023-09-27 16:57:52 +02:00
Michael Auerswald 07d072c28f
fix(core): Bump License SDK Version (no-changelog) (#7279) 2023-09-27 16:29:09 +02:00
Val 0083a9e45d
feat(core): Initial workflow history API (#7234)
Github issue / Community forum post (link here to close automatically):
2023-09-27 15:22:39 +01:00
कारतोफ्फेलस्क्रिप्ट™ 5c57e2ccc3
ci: Update pnpm-lock.yaml (no-changelog) (#7273)
The lockfile got incorrectly formatted in
https://github.com/n8n-io/n8n/pull/7225.
2023-09-27 14:44:13 +02:00
Milorad FIlipović d936ca0c9f
fix(editor): Update cloud endpoint paths (no-changelog) (#7274)
Github issue / Community forum post (link here to close automatically):
2023-09-27 13:44:03 +02:00
Omar Ajoue 861cac5257
fix(core): Prevent executions from displaying Running status incorrectly (#7261)
Github issue / Community forum post (link here to close automatically):

https://linear.app/n8n/issue/HELP-338/large-number-of-long-running-executions-for-nadjalemlist#comment-18d1fc96

After investigating this issue with @ivov and @flipswitchingmonkey we've
identified this missing assignment of execution status.

This is the only inconsistency we've found that could cause executions
to continue displaying as `Running` even after finished.
2023-09-27 12:38:53 +02:00
कारतोफ्फेलस्क्रिप्ट™ 5b3121c415
fix(core): Make DNS resolution order configurable (#7272) 2023-09-27 12:19:18 +02:00
Jon e4c302c683
feat(MISP Node): Update credential to support HTTP Request node (#7268) 2023-09-27 11:05:48 +01:00
Michael Auerswald 6d7fe95c58
fix(core): Do not set ttl globally in test (no-changelog) (#7271) 2023-09-27 12:03:15 +02:00
Jon cd6e22887f
docs: Update alias for iCalendar node (#7269) 2023-09-27 09:49:40 +01:00
Iván Ovejero fa845453bb
feat(core): Introduce object store service (#7225)
Depends on https://github.com/n8n-io/n8n/pull/7220 | Story:
[PAY-840](https://linear.app/n8n/issue/PAY-840/introduce-object-store-service-and-manager-for-binary-data)

This PR introduces an object store service for Enterprise edition. Note
that the service is tested but currently unused - it will be integrated
soon as a binary data manager, and later for execution data.
`amazonaws.com` in the host is temporarily hardcoded until we integrate
the service and test against AWS, Cloudflare and Backblaze, in the next
PR.

This is ready for review - the PR it depends on is approved and waiting
for CI.

---------

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-09-27 09:42:35 +02:00
Jon 2c4e25c06b
fix(PagerDuty Node): Fix typos for incident descriptions (no-changelog) (#7267) 2023-09-27 08:07:58 +01:00
Iván Ovejero 251abe9240
ci: Adjust Postgres/MySQL failure notification (no-changelog) (#7262)
Prevent DB test runs on PRs from spamming the build alerts channel.

Ref: https://github.com/n8n-io/n8n/actions/runs/6298825743
2023-09-26 18:00:00 +02:00
Iván Ovejero db01164ce1
perf(core): Skip unneeded calls on every pruning cycle (#7260) 2023-09-26 16:53:38 +02:00
Alex Grozav 0824800dff
fix(editor): Fix issue that double incoming connection often does not resolve expression (no-changelog) (#7257)
Cherry-picked from AI Tool Creation branch

---------

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2023-09-26 14:33:42 +01:00
Michael Auerswald 4b014286cf
fix(core): Make senderId required for all command messages (#7252)
all commands sent between main instance and workers need to contain a
server id to prevent senders from reacting to their own messages,
causing loops

this PR makes sure all sent messages contain a sender id by default as
part of constructing a sending redis client.

---------

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-09-26 13:58:06 +02:00
Iván Ovejero 77d6e3fc07
refactor(core): Include workflow ID in binary data writes (no-changelog) (#7220)
Depends on: https://github.com/n8n-io/n8n/pull/7195 | Story:
[PAY-837](https://linear.app/n8n/issue/PAY-837/implement-object-store-manager-for-binary-data)

This PR includes `workflowId` in binary data writes so that the S3
manager can support this filepath structure
`/workflows/{workflowId}/executions/{executionId}/binaryData/{binaryFilename}`
to easily delete binary data for workflows. Also all binary data service
and manager methods that take `workflowId` and `executionId` are made
consistent in arg order.

Note: `workflowId` is included in filesystem mode for compatibility with
the common interface, but `workflowId` will remain unused by filesystem
mode until we decide to restructure how this mode stores data.

---------

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-09-25 18:04:52 +02:00
Iván Ovejero 75541e91f2
refactor(core)!: Make getBinaryStream async (#7247)
Story: [PAY-846](https://linear.app/n8n/issue/PAY-846) | Related:
https://github.com/n8n-io/n8n/pull/7225

For the S3 backend for external storage of binary data and execution
data, the `getAsStream` method in the binary data manager interface used
by FS and S3 will need to become async. This is a breaking change for
nodes-base.
2023-09-25 16:59:45 +02:00
Iván Ovejero 484035eb51
fix(core): Fix binary data manager check on pruning (#7251)
Ensure that we do not attempt to prune binary data in `default` binary
data mode.
2023-09-25 16:50:11 +02:00
Ricardo Espinoza d47986aec3
fix: Bug when trailing user reset password on instance (no-changelog) (#7250)
Github issue / Community forum post (link here to close automatically):
2023-09-25 09:55:33 -04:00
Mutasem Aldmour 01e9340621
feat: Add onboarding flow (#7212)
Github issue / Community forum post (link here to close automatically):
2023-09-25 15:49:36 +02:00
Ricardo Espinoza 60c152dc72
feat: Add user cloud it to telemetry (#7232)
Github issue / Community forum post (link here to close automatically):
2023-09-25 12:59:41 +02:00
Iván Ovejero 33991e92d0
fix(core): Fix missing execution ID in webhook-based workflow producing binary data (#7244)
Story: https://linear.app/n8n/issue/PAY-839

This is a longstanding bug, fixed now so that the S3 backend for binary
data can use execution IDs as part of the filename.

To reproduce:

1. Set up a workflow with a POST Webhook node that accepts binary data.
2. Activate the workflow and call it sending a binary file, e.g. `curl
-X POST -F "file=@/path/to/binary/file/test.jpg"
http://localhost:5678/webhook/uuid`
3. Check `~/.n8n/binaryData`. The binary data and metadata files will be
missing the execution ID, e.g. `11869055-83c4-4493-876a-9092c4708b9b`
instead of `39011869055-83c4-4493-876a-9092c4708b9b`.
2023-09-25 12:30:28 +02:00
Iván Ovejero dcc9cc13ed
feat(core): Remove storeMetadata and getSize from binary data manager interface (no-changelog) (#7195)
Depends on: #7164 | Story:
[PAY-838](https://linear.app/n8n/issue/PAY-838/introduce-object-store-service-for-binary-data)

This PR removes `storeMetadata` and `getSize` from the binary data
manager interface, as these are specific to filesystem mode. Also this
disambiguates identifiers:

```
binaryDataId
filesystem:289b4aac51e-dac6-4167-b793-6d5c415e2b47 {mode}:{fileId}

fileId - FS
289b4aac51e-dac6-4167-b793-6d5c415e2b47 {executionId}{uuid}

fileId - S3
/workflows/{workflowId}/executions/{executionId}/binary_data/b4aac51e-dac6-4167-b793-6d5c415e2b47
```

Note: The object store changes originally in this PR were extracted out
into the final PR.

---------

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-09-25 10:07:06 +02:00
Iván Ovejero 6d6e2488c6
refactor(core): Generalize binary data manager interface (no-changelog) (#7164)
Depends on: #7092 | Story:
[PAY-768](https://linear.app/n8n/issue/PAY-768)

This PR: 
- Generalizes the `IBinaryDataManager` interface.
- Adjusts `Filesystem.ts` to satisfy the interface.
- Sets up an S3 client stub to be filled in in the next PR.
- Turns `BinaryDataManager` into an injectable service.
- Adjusts the config schema and adds new validators.

Note that the PR looks large but all the main changes are in
`packages/core/src/binaryData`.

Out of scope:
- `BinaryDataManager` (now `BinaryDataService`) and `Filesystem.ts` (now
`fs.client.ts`) were slightly refactored for maintainability, but fully
overhauling them is **not** the focus of this PR, which is meant to
clear the way for the S3 implementation. Future improvements for these
two should include setting up a backwards-compatible dir structure that
makes it easier to locate binary data files to delete, removing
duplication, simplifying cloning methods, using integers for binary data
size instead of `prettyBytes()`, writing tests for existing binary data
logic, etc.

---------

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-09-22 17:22:12 +02:00
Csaba Tuncsik 4614e1e1c9
fix(editor): Add debug feature docs link (#7240) 2023-09-22 13:27:08 +02:00
Michael Kret 647fc6c555
fix(editor): Fix SQL editor issue (#7236)
Github issue / Community forum post (link here to close automatically):
2023-09-22 14:17:54 +03:00
Iván Ovejero e8e44f6b6e
refactor(core): Log binary data file write errors (no-changelog) (#7237)
This PR adds logging for binary data file write errors, to capture why
executions sometimes point to non-existing binary data files. See
[Sentry
error](https://n8nio.sentry.io/issues/4495134693/?alert_rule_id=14556563&alert_type=issue&notification_uuid=4b50a5da-6ae9-472e-9658-984cca824762&project=4503924908883968&referrer=slack).
2023-09-22 11:48:20 +02:00
Jon c0df5cdfd4
fix(APITemplate.io Node): Fix action description for create pdf (no-changelog) (#7226)
Github issue / Community forum post (link here to close automatically):
https://github.com/n8n-io/n8n/issues/7224
2023-09-22 07:27:00 +01:00
Val bf74f09d69
feat(core): Add Tournament as the new default expression evaluator (#6964)
Github issue / Community forum post (link here to close automatically):

---------

Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-09-21 13:57:45 +01:00
Elias Meire 67b985fe89
fix(core): Handle filename* with quotes in Content-Disposition header (#7229)
Github issue / Community forum post (link here to close automatically):
2023-09-21 14:54:10 +02:00
Michael Kret 2af967cf88
fix(Airtable Node): Attachments field type fix (#7227)
Github issue / Community forum post (link here to close automatically):

https://community.n8n.io/t/possible-airtable-bug-when-creating-attachment-record/29288
2023-09-21 15:00:41 +03:00
Ricardo Espinoza 303bc8e71e
fix: Issue enforcing user limits on start plan (#7188) 2023-09-21 05:56:40 -04:00
Milorad FIlipović b0e98b59a6
feat(editor): Rework banners framework and add email confirmation banner (#7205)
This PR introduces banner framework overhaul:
First version of the banner framework was built to allow multiple
banners to be shown at the same time. Since that proven to be the case
we don't need and it turned out to be pretty messy keeping only one
banner visible in such setup, this PR reworks it so it renders only one
banner at a time, based on [this priority
list](https://www.notion.so/n8n/Banner-stack-60948c4167c743718fde80d6745258d5?pvs=4#6afd052ec8d146a1b0fab8884a19add7)
that is assembled together with our product & design team.

### How to test banner stack:
1. Available banners and their priorities are registered
[here](f9f122d46d/packages/editor-ui/src/components/banners/BannerStack.vue (L14))
2. Banners are pushed to stack using `pushBannerToStack` action, for
example:
```
useUIStore().pushBannerToStack('TRIAL');
```
4. Try pushing different banners to stack and check if only the one with
highest priorities is showing up

### How to test the _Email confirmation_ banner:
1. Comment out [this
line](b80d2e3bec/packages/editor-ui/src/stores/cloudPlan.store.ts (L59)),
so cloud data is always fetched
2. Create an
[override](https://chrome.google.com/webstore/detail/resource-override/pkoacgokdfckfpndoffpifphamojphii)
(URL -> File) that will serve user data that triggers this banner:
- **URL**: `*/rest/cloud/proxy/admin/user/me`
- **File**:
```
{
    "confirmed": false,
    "id": 1,
    "email": "test@test.com",
    "username": "test"
}
```
3. Run n8n
2023-09-21 09:47:21 +02:00