Commit graph

86 commits

Author SHA1 Message Date
Iván Ovejero 83ca7f8e90
refactor(core): Remove watchdog interval (#11295) 2024-10-17 13:51:56 +02:00
Iván Ovejero 19fb728da0
perf(core): Optimize worker healthchecks (#11092) 2024-10-07 16:33:34 +02:00
Iván Ovejero 6a12f0c5fa
fix(core)!: Bind worker server to IPv4 (#11087) 2024-10-04 12:18:26 +02:00
Iván Ovejero 8d9eb162ae
chore: Add verbose removal to breaking changes (#11053) 2024-10-02 14:35:31 +02:00
Iván Ovejero 4f392b5e3e
fix(core): Prevent XSS via static cache dir (#10339)
Some checks failed
Test Master / install-and-build (push) Has been cancelled
Test Master / Unit tests (18.x) (push) Has been cancelled
Test Master / Unit tests (20.x) (push) Has been cancelled
Test Master / Unit tests (22.4) (push) Has been cancelled
Test Master / Lint (push) Has been cancelled
Test Master / Notify Slack on failure (push) Has been cancelled
2024-08-09 16:40:50 +02:00
Iván Ovejero b1816db449
fix(core): Respect prefix for all Prometheus metrics (#10130) 2024-07-22 12:01:44 +02:00
Danny Martini 4ac9266820
fix(core)!: $(...).[last,first,all]() defaulting to the first output instead of the output that connects the nodes (#9760) 2024-06-19 15:10:30 +02:00
Iván Ovejero 2917d04766
refactor(core)!: Switch default Postgres user from root to postgres (#9248) 2024-04-29 14:19:19 +02:00
Iván Ovejero 4052b6c073
refactor(core)!: Remove legacy --file flag for execute CLI command (#9054) 2024-04-05 14:28:04 +02:00
कारतोफ्फेलस्क्रिप्ट™ 0818824a72
feat(core)!: Set the secure flag on issued cookies (#8812) 2024-03-05 18:57:41 +01:00
Danny Martini 24859cfef5
docs: Document own mode removal in BREAKING-CHANGES.md (no-changelog) (#8632) 2024-02-14 16:26:01 +01:00
Iván Ovejero dca50dcc68
docs: Add encryption key check to breaking changes list (#8551) 2024-02-05 16:39:59 +01:00
Michael Kret ccde38a8a8
fix(Monday.com Node): Migrate to api 2023-10 (#8254) 2024-01-10 11:17:00 +02:00
Jan Oberhauser ccb2b076f8
fix: Resolve expressions in credentials following paired item (#8250)
## Summary
Fixes the issue that pairedItem information was not available in
expressions that got used in credentials


## Related tickets and issues

[PAY-1207](https://linear.app/n8n/issue/PAY-1207/paireditem-expressions-not-working-correctly-in-credentials)


## Review / Merge checklist
- [x] PR title and summary are descriptive. **Remember, the title
automatically goes into the changelog. Use `(no-changelog)` otherwise.**
([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md))
- [ ] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up
ticket created.
- [ ] Tests included.
> A bug is not considered fixed, unless a test is added to prevent it
from happening again.
   > A feature is not complete without tests.

---------

Co-authored-by: Omar Ajoue <krynble@gmail.com>
2024-01-08 09:48:20 +00:00
Iván Ovejero f53c482939
perf(core): Improve caching service (#8213)
Story: https://linear.app/n8n/issue/PAY-1188

- Implement Redis hashes on the caching service, based on Micha's work
in #7747, adapted from `node-cache-manager-ioredis-yet`. Optimize
workflow ownership lookups and manual webhook lookups with Redis hashes.
- Simplify the caching service by removing all currently unused methods
and options: `enable`, `disable`, `getCache`, `keys`, `keyValues`,
`refreshFunctionEach`, `refreshFunctionMany`, `refreshTtl`, etc.
- Remove the flag `N8N_CACHE_ENABLED`. Currently some features on
`master` are broken with caching disabled, and test webhooks now rely
entirely on caching, for multi-main setup support. We originally
introduced this flag to protect against excessive memory usage, but
total cache usage is low enough that we decided to drop this setting.
Apparently this flag was also never documented.
- Overall caching service refactor: use generics, reduce branching, add
discriminants for cache kinds for better type safety, type caching
events, improve readability, remove outdated docs, etc. Also refactor
and expand caching service tests.

Follow-up to: https://github.com/n8n-io/n8n/pull/8176

---------

Co-authored-by: Michael Auerswald <michael.auerswald@gmail.com>
2024-01-05 11:52:44 +01:00
कारतोफ्फेलस्क्रिप्ट™ 01e9a79238
feat(core): Remove discontinued crypto-js (#8104)
Since crypto-js was
[discontinued](1da3dabf93),
[we migrated all our backend encryption to native
crypto](https://github.com/n8n-io/n8n/pull/7556).
However I decided back then to not remove crypto-js just yet in
expressions, as I wanted to use `SubtleCrypto`. Unfortunately for that
to work, we'd need to make expressions async.
So, to get rid of `crypto-js`, I propose this interim solution. 

## Related tickets and issues
N8N-7020

## Review / Merge checklist
- [x] PR title and summary are descriptive
- [x] Tests included
2023-12-21 14:13:02 +01:00
Iván Ovejero 50a7401de9
docs: Update breaking changes with binary data TTL note (#7894)
Context:
https://n8nio.slack.com/archives/C035KBDA917/p1701418556761549?thread_ts=1701411854.517989&cid=C035KBDA917
2023-12-01 12:52:12 +01:00
Iván Ovejero ae8c7a635e
refactor(core)!: Remove webhook deregistration at startup and shutdown (#7515)
https://linear.app/n8n/issue/PAY-932/deprecate-flag-to-skip-webhook-deregistration-on-shutdown
2023-10-26 14:37:54 +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
कारतोफ्फेलस्क्रिप्ट™ a693b29134
ci: Fix prettier auto-formatting (no-changelog) (#7063) 2023-09-01 13:29:31 +02:00
कारतोफ्फेलस्क्रिप्ट™ 0356419c1a
feat(Code Node)!: Add a flag to disable forwarding of code logging to stdout (#6966) 2023-08-25 14:23:23 +02:00
Iván Ovejero fce8cc4275
fix(Linear Node): Fix issue creation priority (#6813) 2023-08-01 10:58:37 +02:00
कारतोफ्फेलस्क्रिप्ट™ b701dcb8ef
ci!: Drop support for Node.js 16. Add initial support for Node.js 20 (#6649)
We need to drop node 16 support, [as support for it is ends much earlier now, due to support for openssl 1.1.1 ending](https://nodejs.org/en/blog/announcements/nodejs16-eol).

`0.236.x` releases will continue to support Node.js 16 for another two months, and `1.x.x` releases will only support Node.js 18 for now.
2023-07-12 15:03:23 +02:00
Tom db81342b30
docs: Add irreversible change warning for n8n@0.234.0 (no-changelog) (#6558)
Add irreversible change warning for n8n@0.234.0

Add breaking change note for n8n@0.234.0 based on https://github.com/n8n-io/n8n/pull/6345
2023-06-28 14:03:58 +02:00
Jon 3a6af3b2a2
refactor(LoneScale List Node)!: Rename to LoneScale (#6337) 2023-06-06 16:13:58 +01:00
कारतोफ्फेलस्क्रिप्ट™ 968b733fd6
ci: Add support for Node.js 18 (#5793)
* ci: Start supporting Node.js 18

Node.js 18 became the active LTS on 2022-10-25, and Node.js 16 went into maintenance mode.
https://github.com/nodejs/Release#release-schedule

We should also slowly deprecate node 16 support, [as support for it is ends much earlier now, due to support for openssl 1.1.1 ending](https://nodejs.org/en/blog/announcements/nodejs16-eol).

* Remove hashing algorithms that are not available in newer node.js/openssl

- RSA-MD4
- RSA-MDC2
- md4
- md4WithRSAEncryption
- mdc2
- mdc2WithRSA

* in e2e tests, resolve `localhost` to ipv4 instead of ipv6
2023-06-02 15:23:28 +02:00
OlegIvaniv 444ed1bf0e
fix(core): Add breaking change record for domain and url matching (no-changelog) (#6048)
* fix(core): Add breaking change record for domain and url matching

* Correct version
2023-04-21 12:08:24 +02:00
कारतोफ्फेलस्क्रिप्ट™ 9e9003bf13
ci: Drop support for Node.js 14 (#5835)
Node.js 14 goes EOL on 2023-04-30, and support for it should be dropped.
https://github.com/nodejs/Release#release-schedule
2023-03-30 12:23:39 +02:00
Iván Ovejero 6d811f0d9f
feat(editor): Completions for extensions in expression editor (#5130)
* 🔥 Remove test extensions

* 🚧 Add test description

* 📘 Expand types

*  Export extensions

*  Export collection

*  Mark all proxies

* ✏️ Rename for clarity

*  Export from barrel

*  Create datatype completions

*  Mount datatype completions

* 🧪 Adjust tests

*  Add `path` prop

* 🔥 Remove `()` from completion labels

*  Filter out completions for pseudo-proxies

* 🐛 Fix method error

*  Add metrics

* ✏️ Improve naming

*  Start completion on empty resolvable

*  Implement completion previews

*  Break out completion manager

*  Implement in expression editor modal

* ✏️ Improve naming

*  Filter out irrelevant completions

*  Add preview hint

* ✏️ Improve comments

* 🎨 Style preview hint

*  Expand `hasNoParams`

*  Add spacing for readability

*  Add error codes

* ✏️ Add comment

* 🐛 Fix Esc behavior

*  Parse Unicode

*  Throw on invalid `DateTime`

*  Fix second root completion detection

*  Switch message at completable prefix position

* 🐛 Fix function names for non-dev build

* 🐛 Fix `json` handling

* 🔥 Comment out previews

* ♻️ Apply feedback

* 🔥 Remove extensions

* 🚚 Rename extensions

*  Adjust some implementations

* 🔥 Remove dummy extensions

* 🐛 Fix object regex

* ♻️ Apply feedback

* ✏️ Fix typos

* ✏️ Add `fn is not a function` message

* 🔥 Remove check

*  Add `isNotEmpty` for objects

* 🚚 Rename `global` to `alpha`

* 🔥 Remove `encrypt`

*  Restore `is not a function` error

*  Support `week` on `extract()`

* 🧪 Fix tests

*  Add validation to some string extensions

*  Validate number arrays in some extensions

* 🧪 Fix tests

* ✏️ Improve error message

*  Revert extensions framework changes

* 🧹 Previews cleanup

*  Condense blank completions

*  Refactor dollar completions

*  Refactor non-dollar completions

*  Refactor Luxon completions

*  Refactor datatype completions

*  Use `DATETIMEUNIT_MAP`

* ✏️ Update test description

*  Revert "Use `DATETIMEUNIT_MAP`"

This reverts commit 472a77df5c.

* 🧪 Add tests

* ♻️ Restore generic extensions

* 🔥 Remove logs

* 🧪 Expand tests

*  Add `Math` completions

* ✏️ List breaking change

*  Add doc tooltips

* 🐛 Fix node selector regex

* 🐛 Fix `context` resolution

* 🐛 Allow dollar completions in args

*  Make numeric array methods context-dependent

* 📝 Adjust docs

* 🐛 Fix selector ref

*  Surface error for valid URL

* 🐛 Disallow whitespace in `isEmail` check

* 🧪 Fix test for `isUrl`

*  Add comma validator in `toFloat`

*  Add validation to `$jmespath()`

*  Revert valid URL error

*  Adjust `$jmespath()` validation

* 🧪 Adjust `isUrl` test

*  Remove `{}` and `[]` from compact

* ✏️ Update docs

* 🚚 Rename `stripTags` to `removeTags`

*  Do not inject whitespace inside resolvable

*  Make completions aware of `()`

* ✏️ Add note

*  Update sorting

*  Hide active node name from node selector

* 🔥 Remove `length()` and its aliases

*  Validate non-zero for `chunk`

* ✏️ Reword all error messages

* 🐛 Fix `$now` and `$today`

*  Simplify with `stripExcessParens`

*  Fold luxon into datatype

* 🧪 Clean up tests

* 🔥 Remove tests for removed methods

* 👕 Fix type

* ⬆️ Upgrade lang pack

*  Undo change to `vitest` command

* 🔥 Remove unused method

*  Separate `return` line

* ✏️ Improve description

* 🧪 Expand tests for initial-only completions

* 🧪 Add bracket-aware completions

*  Make check for `all()` stricter

* ✏️ Adjust explanatory comments

* 🔥 Remove unneded copy

* 🔥 Remove outdated comment

*  Make naming consistent

* ✏️ Update comments

*  Improve URL scheme check

* ✏️ Add comment

* 🚚 Move extension

* ✏️ Update `BREAKING-CHANGES.md`

* ✏️ Update upcoming version

* ✏️ Fix grammar

* ✏️ Shorten message

* 🐛 Fix `Esc` behavior

* 🐛 Fix `isNumeric`

*  Support native methods

* 🧪 Skip Pinia tests

* ✏️ Shorten description

* 🔥 Remove outdated comment

* 🧪 Unskip Pinia tests

* ✏️ Add comments

* 🧪 Expand tests to natives

* ✏️ Add clarifying comments

*  Use `setTimeout` to make telemetry non-blocking

* 🐛 Account for no active node in cred modal

*  Resolve without workflow

* 🔥 Remove `Esc` handling on NDV

*  Use `isDateTime`

* 🚚 Move `unique` to next phase

This array extension takes optional args.

*  Merge export

* 🧪 Fix tests

*  Restore check

* ✏️ Make breaking change description more accurate

* 🧪 Fix e2e tests
2023-02-02 12:35:38 +01:00
कारतोफ्फेलस्क्रिप्ट™ 1acc7fea89
refactor(core): Add more overloads for string-type node parameters (no-changelog) (#5101)
* refactor(core): Add more overloads for string-type node parameter (no-changelog)

continued from https://github.com/n8n-io/n8n/pull/4797

* include binaryPropertyOutput
2023-01-06 15:09:32 +01:00
कारतोफ्फेलस्क्रिप्ट™ 736777385c
feat: Switch from npm to pnpm (#4429) 2022-11-09 17:32:05 +01:00
Michael Kret 6a37071350
feat(Merge Node)!: node tweaks n8n-4939 (#4321)
BREAKING CHANGE: The Merge node list of operations was rearranged.

Merge node: 'Combine' operation was added with 'Combine Mode' option, operations 'Merge By Fields', 'Merge By Position' and 'Multiplex' placed under 'Combine Mode' option.
To update -go to the workflows that use the Merge node, select 'Combine' operation and then choose an option from 'Combination Mode' that matches an operation that was previously used. If you want to continue even on error, you can set "Continue on Fail" to true.
2022-10-13 17:14:47 +03:00
Michael Kret 8a94f1e361
fix(GraphQL Node)!: Correctly report errors returned by the API (#3071)
* upstream merge

*  graphql node will throw error when response has errors property

* 🔨 updated changelog

*  Improvements

*  Improvements

*  Add package-lock.json back

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
2022-04-01 14:38:26 +02:00
Jonathan Bennetts 40e5bea514
Add breaking change for 0.165.0
* fix security culnerability

* Update BREAKING-CHANGES.md

Added note to Breaking Changes file.

Co-authored-by: quansenB <inaki.breinbauer@gmail.com>
2022-02-26 11:37:52 +01:00
Harshil Agrawal 5ea4dc03b8
Add OAuth to HubSpot Trigger node credentials (#2166)
* 🔨 HubSpot Trigger node credentials

*  Small changes

*  Add breaking change message

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
2021-09-18 22:18:35 +02:00
Tanay Pant 7365309346
🔨 Minor improvements to breaking changes (#2115) 2021-08-23 10:50:57 +02:00
Jan Oberhauser 719c0eb546 Add breaking change for 0.135.0 2021-08-22 15:23:02 +02:00
Iván Ovejero ce43194e91
Add Leads to Pipedrive node (#1986)
*  Add leads to Pipedrive node

*  Make org ID required for deal:create

* 🔨 Refactor linked entity for lead:create

* 🔨 Refactor linked entity for deal:create

* ✏️ Write breaking changes

*  Improvements

* 🐛 Fix issue with returning invalid data

*  Make lead-descriptions format consistent

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-07-20 15:53:10 +02:00
Iván Ovejero a1f0fff9fc
Expand Taiga node (#1970)
*  Expand Taiga node

*  Make projectId consistent

* 🔥 Remove logging

* 🔨 Fix user story statuses loader

*  Add epics loader

* 🔨 Make projectId required for updates

* 🔨 Refactor credentials

*  Small change

*  Update credentials in trigger

* 🔥 Remove old unused credentials

* ✏️ Write breaking changes

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
2021-07-15 00:02:30 +02:00
Iván Ovejero 5f76a5dc72
Expand Zoho node (#1763)
*  Initial refactor of Zoho node

*  Refactor out extra credentials parameter

* 🔥 Remove unused filters

*  Fix date of birth fields

*  Fix param casing

*  Adjust param types

*  Adjust invoice operations

*  Refactor types in adjusters

*  Add product resource

*  Refactor product details field

*  Adjust purchase order params

*  Adjust quote params

*  Adjust sales orders params

* 🔥 Remove old unused files

*  Add vendor resource

*  Fix minor details

*  Implement continueOnFail

* 🐛 Fix empty response for getAll

*  Simplify response for single item

* 🔥 Remove unused import

* 🔨 Restore old node name

*  Prevent request on empty update

*  Apply Dali's suggestions

*  Improvements

*  Add filters for lead:getAll

*  Add upsert to all resources

*  Add filters to all getAll operations

* 🔨 Restore continue on fail

* 🔨 Refactor upsert addition

* 🔨 Refactor getFields for readability

*  Add custom fields to all create-update ops

*  Implement custom fields adjuster

* 🔥 Remove logging

* 👕 Appease linter

* 👕 Refactor type helper for linter

*  Fix refactored type

* 🔨 Refactor reduce for simplicity

*  Fix vendor:getAll filter options

*  Fix custom fields for product operations

*  Make sort_by into options param

* 🚚 Rename upsert operation

* ✏️ Add descriptions to upsert

*  Deduplicate system-defined check fields

* 🔨 Re-order address fields

* ✏️ Generalize references in getAll fields

* 🔥 Remove extra comma

*  Make getFields helper more readable

* ✏️ Touch up description for account ID

* 🔥 Remove currency from contacts

* 🔨 Resort emails and phones for contact

* 🐛 Fix sales cycle duration param type

* ✏️ Clarify descriptions with percentages

* 🔨 Reorder total fields

* ✏️ Clarify percentages for discounts

* ✏️ Clarify percentages for commissions

* 🔨 Convert currency to picklist

* ✏️ Add documentation links

*  Add resource loaders for picklists

*  Fix build

* 🔨 Refactor product details

*  Add resolve data to all resources

*  Change resolve data toggle default

*  Restore lead:getFields operation

* 🔥 Remove upsert descriptions

* 🔨 Change casing for upsert operations

*  Add operation descriptions

* 🔨 Restore makeResolve default value

* 🔨 Return nested details

*  Reposition Resolve Data toggles

* ✏️ Document breaking changes

* Revert "Reposition Resolve Data toggles"

This reverts commit 72ac41780b.

*  Improvements

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
2021-07-02 23:34:12 +02:00
Harshil Agrawal ffc0c7b4d5
Add breaking change for Node.js version update (#1733)
*  Add breaking change for Node.js version update

*  Fix format of breaking-changes file

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-05-07 22:37:09 -05:00
Jan Oberhauser b7a074abd7 Fix breaking changes files 2021-04-30 21:14:07 -05:00
Omar Ajoue fc54f7c82b
Add query parameters for CrateDB, PostgresDB, TimescaleDB and QuestDB (Parametrized Queries) (#1577)
* Adding support to ParameterizedQuery on Postgres Node

* Created another parameter to toggle on replacement so it's clear to users what is happening.

* Fixed lint issues

*  Formatting

* Improvements to questDB node so it is more consistent

* Fixed lint issues

* Fixed typing issue

*  Apply suggestions BHesseldieck

Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com>

* Standardized output for postgres and postgres-like nodes

This changes the behavior of CrateDB, Postgres, QuestDB and TimescaleDB
nodes.

The Execute Query operation used to execute multiple queries but return
the result from only one of the queries.

This change causes the node output to containt results from all queries
that ran, making the behavior more consistent across all n8n.

* Fixing lint issues

*  Minor improvements

*  Fix breaking changes files

Co-authored-by: Gustavo Arjones <gustavo.arjones@ank.app>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
Co-authored-by: Jan <janober@users.noreply.github.com>
Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com>
2021-04-30 17:35:34 -05:00
Omar Ajoue 81d8a9f332
💥 Deprecate Activation Trigger and add two new replacement nodes (#1680)
* Add Workflow & n8n Trigger nodes

* Update nodes descriptions & icons

* Remove Activation Trigger node

* Update nodes descriptions & Add timestamp and workflow_id

* Added breaking change notice and types to events

*  Minor improvements

Co-authored-by: dali <servfrdali@yahoo.fr>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-04-24 23:14:06 +02:00
Omar Ajoue 41669c0e0f
Add options to run queries as transactions (#1612)
* add multi return

* add independently and transaction to query

* pgInsert normal and transaction

* independently for pgInsert

* normal, transaction and independently for pgUpdate

* cleanup

* implement it in other nodes

* multiple fixes

* add optional returning support

* clean up Postgres functions

* fix other postgres based dbs

* Added option to run queries as a transaction to Postgres

This commit allows users to configure Postgres, CrateDB, TimescaleDB and
QuestDB to run queries independently or as transactions as well as the
previous mode which is to execute multiple queries at once.

Previous behavior remains untouched so we only added new options.

* Standardize behavior across nodes that use postgres protocol

Also fixed unit tests.

* Added breaking change notice

* Added more information to breaking changes

*  Styling fixes

Co-authored-by: lublak <lublak.de@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-04-24 22:55:14 +02:00
Tanay Pant fac0876f95
Add breaking change for 0.113.0 2021-03-26 09:36:39 +01:00
Ricardo Espinoza 7c21e61151
🐛 Reflect correctly Dropbox breaking change. (#1544) 2021-03-16 21:23:54 +01:00
Ricardo Espinoza e1dbb72929
Add file:search operation to Dropbox Node (#1494)
*  Add search resource to Dropbox Node

* 📚 Add breaking change instructions

*  Add missing credentials

*  Add "simple" parameter to the operation search:query

*  Update breaking change message

*  Improvement

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-03-11 09:16:05 +01:00
Ricardo Espinoza dc98de1ab2
Add support for multiple subscriptions in Hubspot Trigger (#1358)
*  Add support for multiple subscriptions in Hubspot Trigger

*  Load object properties for the user

*  Improvements

*  Some improvements to the Hubspot-Node

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-02-01 08:31:40 +01:00
Tanay Pant 2398c42b30
🔨 Add breaking change for 0.104.0 (#1382) 2021-01-26 14:39:19 +01:00