Commit graph

467 commits

Author SHA1 Message Date
Jan Oberhauser c85faff4f1
feat: Make it possible to dynamically load community nodes (#2849)
*  Make it possible to dynamically load node packages

*  Fix comment

*  Make possible to dynamically install nodes from npm

* Created migration for sqlite regarding community nodes

* Saving to db whenever a package with nodes is installed

* Created endpoint to fetch installed packages

* WIP - uninstall package with nodes

* Fix lint issues

* Updating nodes via API

* Lint and improvement fixes

* Created community node helpers and removed packages taht do not contain nodes

* Check for package updates when fetching installed packages

* Blocked access to non-owner and preventing incorrect install of packages

* Added auto healing process

* Unit tests for helpers

* Finishing tests for helpers

* Improved unit tests, refactored more helpers and created integration tests for GET

* Implemented detection of missing packages on init and added warning to frontend settings

* Add check for banned packages and fix broken tests

* Create migrations for other db systems

* Updated with latest changes from master

* Fixed conflict errors

* Improved unit tests, refactored more helpers and created integration tests for GET

* Implemented detection of missing packages on init and added warning to frontend settings

* 🔥 Removing access check for the Settings sidebar item

*  Added inital community nodes settings screen

* Added executionMode flag to settings

*  Implemented N8N-callout component

* 💄Updating Callout component template propery names

* 💄 Updating Callout component styling.

* 💄Updating Callout component sizing and colors.

* ✔️ Updating Callout component test snapshots after styling changes

*  Updating the `ActionBox` component so it supports callouts and conditional button rendering

* 💄 Removing duplicate callout theme validation in the `ActionBox` component. Adding a selection control for it in the storybook.

*  Added warning message if instance is in the queue mode. Updated colors based on the new design.

*  Added a custom permission support to router

* 🔨 Implemented UM detection as a custom permission.

* 👌Updating route permission logic.

*  Implemented installed community packages list in the settings view

* 👌 Updating settings routes rules and community nodes setting view.

* Allow installation of packages that failed to load

* 👌 Updating `ActionBox`, `CommuntyPackageCard` components and settings loading logic.

* 👌 Fixing community nodes loading state and sidebar icon spacing.

*  Implemented loading skeletons for community package cards

* 👌 Handling errrors while loading installed package list. Updating spacing.

* 👌 Updating community nodes error messages.

* Added disable flag

* 🐛 Fixing a community nodes update detection bug when there are missing packages. (#3497)

*  Added front-end support for community nodes feature flag

*  Implemented community package installation modal dialog

* 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state.

*  Implemented community packages install flow

* Standardize error codes (#3501)

* Standardize error: 400 for request issues such as invalid package name and 500 for installation problems

* Fix http status code for when package is not found

*  Implemented community package installation modal dialog

* 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state.

*  Implemented community packages install flow

*  Updated error handling based on the response codes

*  Implemented community package installation modal dialog

*  Implemented community package uninstall flow.

*  Finished update confirm modal UI

* 💄 Replaced community nodes tooltip image with the one exported from figma.

*  Implemented community package update process

*  Updating community nodes list after successful package update

* 🔒 Updating public API setting route to use new access rules. Updating express app definition in community nodes tests

*  Implemented community package installation modal dialog

* 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state.

*  Implemented community packages install flow

*  Updated error handling based on the response codes

* Change output for installation request

* Improve payload for update requests

* 👌 Updating community nodes install modal UI

* 👌 Updating community nodes confirm modal logic

* 👌 Refactoring community nodes confirm modal dialog

* 👌 Separating community nodes components loading states

* 💄 Updating community nodes install modal spacing.

* Fix behavior for installing already installed packages

* 💡 Commenting community nodes install process

* 🔥 Removing leftover commits of deleted Vue mutations

*  Updated node list to identify community nodes and handle node name clash

*  Implemented missing community node dialog.

* 💄 Updating n8n-tabs component to support tooltips

*  Updating node details with community node details.

* 🔨 Using back-end response when updating community packages

* 👌 Updating tabs component and refactoring community nodes store mutations

* 👌 Adding community node flag to node type descriptions and using it to identify community nodes

* 👌 Hiding unnecessary elements from missing node details panel.

* 👌 Updating missing node type descriptions for custom and community nodes

* 👌 Updating community node package name detection logic

* 👌 Removing communityNode flag from node description

*  Adding `force` flag to credentials fetching (#3527)

*  Adding `force` flag to credentials fetching which can be used to skip check when loading credentials

*  Forcing credentials loading when opening nodeView

* 👌 Minor updates to community nodes details panel

* tests for post endpoint

* duplicate comments

* Add Patch and Delete enpoints tests

* 🔒 Using `pageCategory`prop to assemble the list of settings routes instead of hard-coded array (#3562)

* 📈 Added front-end telemetry events for community nodes

* 📈 Updating community nodes telemetry events

* 💄 Updating community nodes settings UI elements based on product/design review

* 💄 Updating node view & node details view for community nodes based on product/design feedback

* 💄 Fixing community node text capitalisation

*  Adding community node install error message under the package name input field

* Fixed and improved tests

* Fix lint issue

* feat: Migrated to npm release of riot-tmpl fork.

* 📈 Updating community nodes telemetry events based on the product review

* 💄 Updating community nodes UI based on the design feedback

* 🔀 Merging recent node draggable panels changes

* Implement self healing process

* Improve error messages for package name requirement and disk space

* 💄 Removing front-end error message override since appropriate response is available from the back-end

* Fix lint issues

* Fix installed node name

* 💄 Removed additional node name parsing

* 📈 Updating community nodes telemetry events

* Fix postgres migration for cascading nodes when package is removed

* Remove postman mock for banned packages

* 📈 Adding missing telemetry event for community node documentation click

* 🐛 Fixing community nodes UI bugs reported during the bug bash

* Fix issue with uninstalling packages not reflecting UI

* 🐛 Fixing a missing node type bug when trying to run a workflow.

* Improve error detection for installing packages

* 💄 Updating community nodes components styling and wording based on the product feedback

* Implement telemetry be events

* Add author name and email to packages

* Fix telemetry be events for community packages

* 📈 Updating front-end telemetry events with community nodes author data

* 💄 Updating credentials documentation link logic to handle community nodes credentials

* 🐛 Fixing draggable panels logic

* Fix duplicate wrong import

* 💄 Hiding community nodes credentials documentation links when they don't contain an absolute URL

* Fix issue with detection of missing packages

* 💄 Adding the `Docs` tab to community nodes

* 💄 Adding a failed loading indicator to community nodes list

* Prevent n8n from crashing on startup

* Refactor and improve code quality

*  Remove not needed depenedency

Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Milorad Filipović <milorad@n8n.io>
Co-authored-by: Milorad FIlipović <miloradfilipovic19@gmail.com>
Co-authored-by: agobrech <ael.gobrecht@gmail.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
2022-07-20 16:24:03 +02:00
Ricardo Espinoza 994c89a6c6
feat: Add support for preAuthentication and add Metabase credentials (#3399)
*  Add preAuthentication method to credentials

* Improvements

*  Improvements

*  Add feedback

* 🔥 Remove comments

*  Add generic type to autheticate method

*  Fix typo

*  Remove console.log and fix indentation

*  Minor improvements

*  Expire credentials in every credential test run

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-07-19 10:09:06 +02:00
Jan Oberhauser 68fb1c64dc feat(core): Autofix pairedItem information if inputItems(n) === outputItems(n) 2022-07-16 08:33:48 +02:00
Michael Kret 945e25a77c
feat(Shopify Node): Add OAuth support (#3389)
*  wip

*  Add includeAccessTokenInHeader option to OAuth2

* 🔨 fixed build error, fixed trigger node when using token auth

* 🔨 fixed trigger when using oauth2

* 🔨 changed default auth method to access token

*  Improvements

*  Improvements

*  Improvements

*  Rename includeAccessTokenInHeader to keyToIncludeInAccessTokenHeader

*  Assign values to only header property

* 🔥 Remove unreachable code

*  Add keyToIncludeInAccessTokenHeader when isN8nRequest

*  Add CC grant type when isN8nRequest

Co-authored-by: Ricardo Espinoza <ricardo@n8n.io>
Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Jan Oberhauser <janober@users.noreply.github.com>
2022-07-15 10:36:01 +02:00
Jan Oberhauser 8f3d2ab071 🔖 Release n8n-core@0.126.0 2022-07-13 07:56:47 +00:00
Jan Oberhauser f348327a71 ⬆️ Set n8n-workflow@0.108.0 on n8n-core 2022-07-13 07:56:47 +00:00
Jan Oberhauser 7874aae073 🔖 Release n8n-core@0.125.0 2022-07-05 07:45:55 +00:00
Jan Oberhauser 3bdae3bd14 ⬆️ Set n8n-workflow@0.107.0 on n8n-core 2022-07-05 07:45:55 +00:00
Omar Ajoue 088daf952e
feat(Google Ads Node): Add new node (#3526)
* Add basic layout with icon for Google Ads

* Add node versioning(V1)

* Add node and credential to package

* Add basic layout with icon for Google Ads

* Add node versioning(V1)

* Add node and credential to package

* Add api call to getall

* Fix formdata in the body for the request

* N8N-2928 Added custom queries to campaign

* Fix header bug and add developer-token field

* Add operation and fields to campaign new format

* Add more configurations and queries

* Add Invoice ressources and operations

* Remov old version from the node

* Fixed bud with typo

* Correctly prepends the baseURL

* add query to invocie request

* Fixes header not parsing the expression

* Invoice param changes

* Fixes bug related to headers not being parsed, and bug with auth

* Remove useless imports

* Added analytics to google ad node and removed useless header

* Removed url for testing

* Fixed inconsistent behaviour with the access token not being refreshed

* Added placeholders to help user

* Removed useless comments

* Resolved name confusion

* Added support for body in a GET method

* Removed hyphens, parse body's expression

* Renamed operation for clarity

* Remove unused code

* Removed invoice resource and fixed bug with body and headers

The invoice operation was removed since it does not reflect
what a user would expect from it. Google ADS invoices are
only used for big advertisers where invoicing is performed
after the end of the month and for big sums. This would
be misleading for the majority of the users expecting
an expenses report.

Also fixed a bug with header and body being sent since it
was broken for multiple input rows. The first execution
would override all others.

Lastly, made some improvements to the node itself by
transforming data, adding filters and operations.

* Improve campagin operation and remove analytics; fix tests

* Improve tooltips and descriptions

* Fix lint issues

* Improve tooltip to explain amounts in micros

* Change wording for micros

* Change the fix to a more elegant solution

Co-authored-by: Cyril Gobrecht <cyril.gobrecht@gmail.com>
Co-authored-by: Aël Gobrecht <ael.gobrecht@gmail.com>
2022-07-04 22:47:50 +02:00
Jan Oberhauser 37c64da1d2 🔖 Release n8n-core@0.124.0 2022-06-29 07:19:04 +00:00
Jan Oberhauser df57b854dd ⬆️ Set n8n-workflow@0.106.0 on n8n-core 2022-06-29 07:19:04 +00:00
Jan Oberhauser 522b31a47b
feat(core): Give access to getBinaryDataBuffer in preSend method (#3588) 2022-06-28 18:32:09 +02:00
brianinoa 1e4fd9e4df
feat(core): Expose item index being processed (#3590)
* 🧑‍💻 Expose item index being processed

*  Fix tests for getCurrentItemIndex

*  Fix tests for getCurrentItemIndex

*  Rename method

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-26 15:52:37 -07:00
brianinoa 23eba33613
refactor: Automatically add fileExtension from FileTypeResult to binary data (#3591)
* ♻️ Add fileExtension from FileTypeResult to buffer data

*  Minor improvement

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-26 15:33:17 -07:00
Jan Oberhauser 60cc41ecf4 🔖 Release n8n-core@0.123.0 2022-06-20 23:57:57 +00:00
Jan Oberhauser 795edad2db ⬆️ Set n8n-workflow@0.105.0 on n8n-core 2022-06-20 23:57:57 +00:00
Ben Hesseldieck 6f4a5039e0
⬆️ Upgrade multiple dependencies (#3547)
* ⬆️ upgrade typeorm

* ⬆️ upgrade @types/node

* ⬆️ upgrade mssql

* ⬆️ upgrade monaco-editor to 0.30.1

* ️ update package-lock

Co-authored-by: Jan Oberhauser <janober@users.noreply.github.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-20 15:17:18 -07:00
Jan Oberhauser a2a109f480 🔖 Release n8n-core@0.122.1 2022-06-16 11:20:53 -07:00
Jan Oberhauser c9273bcd38
fix(core): Fix issue with restarting waiting executions (#3531) 2022-06-16 20:19:28 +02:00
Jan Oberhauser adb161f248 🔖 Release n8n-core@0.122.0 2022-06-14 17:04:39 +00:00
Jan Oberhauser a632e1bdde ⬆️ Set n8n-workflow@0.104.0 on n8n-core 2022-06-14 17:04:38 +00:00
Ricardo Espinoza e29c5975e1
feat(core): Add "Client Credentials" grant type to OAuth2 (#3489)
*  Add OAuth2 client credentials grant type

*  Improvements

* 🐛 Fix linting issue

* 🐛 Fix typo

* 🐛 Fix small issue with type

* 🐛 When token expire get a new one instead of refreshing it

*  Fix issue that it did not display it correctly for OAuth1

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-13 22:27:19 -07:00
Jan Oberhauser 80b7d70c3c 🔖 Release n8n-core@0.121.3 2022-06-09 14:01:28 +02:00
Jan Oberhauser 5eea3cd6d0 fix(core): Fix issue when a node does not return data 2022-06-09 13:59:52 +02:00
Jan Oberhauser 0b4588fb6a 🔖 Release n8n-core@0.121.2 2022-06-09 09:14:46 +02:00
Jan Oberhauser e88fab5ee2 fix(core): Fix another possible issue with multi input nodes 2022-06-09 09:11:34 +02:00
Jan Oberhauser 91e99046b0 🔖 Release n8n-core@0.121.1 2022-06-09 09:01:53 +02:00
Jan Oberhauser f79675d5c7 fix(core): Fix issue with multi input nodes 2022-06-09 08:59:22 +02:00
Jan Oberhauser ede5dfab36 🔖 Release n8n-core@0.121.0 2022-06-08 19:24:14 +00:00
Jan Oberhauser 23f7ac95f4 ⬆️ Set n8n-workflow@0.103.0 on n8n-core 2022-06-08 19:24:14 +00:00
Jan Oberhauser a76d02a4cc 🔖 Release n8n-core@0.120.0 2022-06-07 19:43:38 +00:00
Jan Oberhauser a40b71ec6b ⬆️ Set n8n-workflow@0.102.0 on n8n-core 2022-06-07 19:43:37 +00:00
Jan Oberhauser b5535e4a62
feat(core): Run Error Workflow also on trigger activation error (#3470)
* feat(core): Run Error Workflow also when workflow gets deactivated
or could not be activated on startup because of error
R#

*  Add missing file
2022-06-06 09:17:35 +02:00
Jan Oberhauser bdb84130d6
feat(core): Add support for pairedItem (beta) (#3012)
*  Add pairedItem support

* 👕 Fix lint issue

* 🐛 Fix resolution in frontend

* 🐛 Fix resolution issue

* 🐛 Fix resolution in frontend

* 🐛 Fix another resolution issue in frontend

*  Try to automatically add pairedItem data if possible

*  Cleanup

*  Display expression errors in editor UI

* 🐛 Fix issue that it did not display errors in production

* 🐛 Fix auto-fix of missing pairedItem data

* 🐛 Fix frontend resolution for not executed nodes

*  Fail execution on pairedItem resolve issue and display information
about itemIndex and runIndex

*  Allow that pairedItem is only set to number if runIndex is 0

*  Improve Expression Errors

*  Remove no longer needed code

*  Make errors more helpful

*  Add additional errors

* 👕 Fix lint issue

*  Add pairedItem support to core nodes

*  Improve support in Merge-Node

*  Fix issue with not correctly converted incoming pairedItem data

* 🐛 Fix frontend resolve issue

* 🐛 Fix frontend parameter name display issue

*  Improve errors

* 👕 Fix lint issue

*  Improve errors

*  Make it possible to display parameter name in error messages

*  Improve error messages

*  Fix error message

*  Improve error messages

*  Add another error message

*  Simplify
2022-06-03 17:25:07 +02:00
Jan Oberhauser 032e249818 🔖 Release n8n-core@0.119.0 2022-05-30 12:08:19 +00:00
Jan Oberhauser 608fbc6ddf ⬆️ Set n8n-workflow@0.101.0 on n8n-core 2022-05-30 12:08:19 +00:00
Jan Oberhauser b851289001
feat(RabbitMQ Trigger Node): Make message acknowledgement and parallel processing configurable (#3385)
* feat(RabbitMQ Trigger Node): Make message acknowledgement and concurrent
processing configurable

*  Make sure that messages do not get executed multiple times

* 👕 Fix lint issue

* 🐛 Fix issue that for manual executions in "own" mode messages got
know acknowledged

*  Increment count now that console.log got removed

*  Improvements

*  Fix default value

*  Improve display name
2022-05-30 12:16:44 +02:00
Michael Kret d3cecfc55b
fix(core): Fix problem with uploading large files (#3370)
*  fix

*  moved setting to axios config
2022-05-27 18:17:44 +02:00
Milorad FIlipović 06c407def8
feat(PostBin Node): Add PostBin node (#3236)
* 🚧 Initial progress on PostBin node.

*  Implemented Bin and Request operations for PostBin node.

* 🚧 Reworked the node in the declarative way.

* 🚧 PosBin node refactoring after reworking it.

*  Implemented Bin id parsing in PostBin node. Done some final refactoring and documentation.

*  Improvements

*  Add comments

* 👌Updating the PostBin node based on the product review

* 💄Updating PostBin node Bin ID validation logic

*  Small improvements

*  Transform the bin requests and add additional properties

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-05-27 18:04:56 +02:00
Jan Oberhauser 5e84bbb32f 🔖 Release n8n-core@0.118.0 2022-05-24 09:47:19 +00:00
Jan Oberhauser 35105219c3 ⬆️ Set n8n-workflow@0.100.0 on n8n-core 2022-05-24 09:47:19 +00:00
Jan Oberhauser 37378e3099 🔖 Release n8n-core@0.117.0 2022-05-16 16:29:46 +00:00
Jan Oberhauser 72c4f8df07 ⬆️ Set n8n-workflow@0.99.0 on n8n-core 2022-05-16 16:29:45 +00:00
Jan Oberhauser 3fcee14bf5
feat(core): Automatically convert Luxon Dates to string (#3266) 2022-05-14 00:06:12 +02:00
Jan Oberhauser 55ad28346a 🔖 Release n8n-core@0.116.0 2022-05-02 10:21:52 +00:00
Jan Oberhauser c9cd850380 ⬆️ Set n8n-workflow@0.98.0 on n8n-core 2022-05-02 10:21:52 +00:00
Jan Oberhauser d5b9b0cb95
feat(core): Introduce simplified node versioning (#3205)
*  Introduce simple node versioning

*  Add example how to read version in node-code for custom logic

* 🐛 Fix setting of parameters

* 🐛 Fix another instance where it sets the wrong parameter

*  Remove unnecessary TOODs

*  Revert Set Node example changes

* ;rotating_light: Add test
2022-04-28 19:04:09 +02:00
Jan Oberhauser 2f82055ca4 🔖 Release n8n-core@0.115.0 2022-04-25 10:48:47 +00:00
Jan Oberhauser a50cd1a088 ⬆️ Set n8n-workflow@0.97.0 on n8n-core 2022-04-25 10:48:47 +00:00
Jan Oberhauser 763343a031 🔖 Release n8n-core@0.114.0 2022-04-19 10:46:31 +00:00