Commit graph

1199 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
Iván Ovejero 2997711e00
Make multiple commands cross-platform (#3733)
*  Replace `;` with `&&` in scripts

* 👕 Fix lint
2022-07-20 10:14:12 +02:00
Ricardo Espinoza 803e0097fa
fix(api): Add missing node settings parameters (#3737) 2022-07-20 08:58:38 +02:00
Ricardo Espinoza 7ba9a055cd
fix(api): Validate static data value for resource workflow (#3736) 2022-07-20 08:57:29 +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
Ahsan Virani f71737928f
refactor: Move OAuth2 endpoints to OAuth2 controller (#3450)
* Move oauth2 endpoints to oauth2 controller

* Remove old oauth2-credential auth endpoint from server.ts

* Move OAuth2 callback endpoint to controller

* Fix tests and eslint issues

* Fix typo

* fix lint issues

* update package-lock

* Import lodash methods individually

* Minimise lint rule disables

* Cleanup

* rebase

* CR

* npm package: Remove lodash, use lodash.intersect

* fixups

* rebase
2022-07-15 17:30:06 +02:00
Iván Ovejero eefd594074
test: Mock mailer service (#3711)
* 🧪 Mock mailer service

* 🔥 Remove unneeded imports
2022-07-14 22:07:07 +02:00
Jan Oberhauser 60f86f0ae9 🔖 Release n8n@0.186.1 2022-07-14 10:33:02 +02:00
Jan Oberhauser 77da7c28fa ⬆️ n8n-nodes-base@0.186.1 on n8n 2022-07-14 10:31:45 +02:00
Jan Oberhauser b67ec19c8d 🔖 Release n8n@0.186.0 2022-07-13 07:59:26 +00:00
Jan Oberhauser 7af7214529 ⬆️ Set n8n-core@0.126.0, n8n-editor-ui@0.152.0, n8n-nodes-base@0.184.0 and n8n-workflow@0.108.0 on n8n 2022-07-13 07:59:25 +00:00
Ahsan Virani 6b2db8e4f4
refactor: Telemetry updates (#3529)
* Init unit tests for telemetry

* Update telemetry tests

* Test Workflow execution errored event

* Add new tracking logic in pulse

* cleanup

* interfaces

* Add event_version for Workflow execution count event

* add version_cli in all events

* add user saved credentials event

* update manual wf exec finished, fixes

* improve typings, lint

* add node_graph_string in User clicked execute workflow button event

* add User set node operation or mode event

* Add instance started event in FE

* Add User clicked retry execution button event

* add expression editor event

* add input node type to add node event

* add User stopped workflow execution wvent

* add error message in saved credential event

* update stop execution event

* add execution preflight event

* Remove instance started even tfrom FE, add session started to FE,BE

* improve typing

* remove node_graph as property from all events

* move back from default export

* move psl npm package to cli package

* cr

* update webhook node domain logic

* fix is_valid for User saved credentials event

* fix Expression Editor variable selector event

* add caused_by_credential in preflight event

* undo webhook_domain

* change node_type to full type

* add webhook_domain property in manual execution event (#3680)

* add webhook_domain property in manual execution event

* lint fix
2022-07-10 09:53:04 +03:00
Jan Oberhauser 74a824032f 🔖 Release n8n@0.185.0 2022-07-05 07:49:20 +00:00
Jan Oberhauser 43f552679b ⬆️ Set n8n-core@0.125.0, n8n-editor-ui@0.151.0, n8n-nodes-base@0.183.0 and n8n-workflow@0.107.0 on n8n 2022-07-05 07:49:20 +00:00
Iván Ovejero 70a1aa53f7 🎨 Formatting fixes 2022-06-30 15:53:56 +02:00
Iván Ovejero f8eb5aa52a 🧪 Add missing SMTP timeout 2022-06-30 15:53:43 +02:00
Iván Ovejero a2c599d98d 🧪 Make PG truncation sequential 2022-06-30 15:53:13 +02:00
Iván Ovejero 4ae8b54dc2 🧪 Hide logging during tests 2022-06-30 15:05:23 +02:00
Iván Ovejero 945eb63878 🧪 Separate statements when clearing mappings in MySQL 2022-06-30 14:12:47 +02:00
Iván Ovejero e6347e34ca 🧪 Add DB init timeout 2022-06-30 14:06:16 +02:00
Iván Ovejero de55fdb625 🧪 Truncate mapping tables 2022-06-30 13:43:50 +02:00
Jan Oberhauser fd80f45ec9 🔖 Release n8n@0.184.0 2022-06-29 07:21:46 +00:00
Jan Oberhauser bae27c2d31 ⬆️ Set n8n-core@0.124.0, n8n-editor-ui@0.150.0, n8n-nodes-base@0.182.0 and n8n-workflow@0.106.0 on n8n 2022-06-29 07:21:45 +00:00
Jan Oberhauser 86721fc496
feat(core) Simplify authentication type (#3578)
*  Add generic auth type

*  Remove queryAuth

*  Remove bearer

*  Remove headerAuth

*  Remove basicAuth

*  Adjust tests

*  Small improvements

* 👕 Fix lint issue
2022-06-26 15:55:51 -07:00
Iván Ovejero 7879239e03
test: Make oclif commands testable (#3571)
*  Add `@oclif/core`

* 📦 Update `package-lock.json`

* 📘 Export `Logger` for use as type

*  Create `BaseCommand`

* 🐛 Prevent DB re-init

* ♻️ Refactor `reset` command

* 🧪 Fix `reset` test

* 👕 Add lint exception

Co-authored-by: Jan Oberhauser <janober@users.noreply.github.com>
2022-06-25 21:03:46 -07:00
Iván Ovejero 3ee384fd87
test: Fix failing tests on MySQL for Public API (#3520)
*  Generalize transformer

*  Use transformer

* 🧪 Fix expectations
2022-06-23 10:59:23 -07:00
Iván Ovejero 2ccc7fbc9d
fix: Correct misfix from node-param-display-name-wrong-for-dynamic-multi-options (#3575)
* 👕 Correct misfix

* 👕 Fix build
2022-06-23 10:45:56 -07:00
Alex Grozav 891844ea8b
feat: Migrated to npm release of riot-tmpl fork (#3581)
* feat: Migrated to npm release of riot-tmpl fork.

* fix: Updated imports to use @n8n_io/riot-tmpl

* fix: Fixed Logger.ts types.

Co-authored-by: Jan Oberhauser <janober@users.noreply.github.com>
2022-06-23 07:07:56 -07:00
Ahsan Virani 3cb693d5d4
fix(core): Fix logger error when logging circular json (#3583)
* Fix logger error when logging circular json

* add type
2022-06-23 07:05:20 -07:00
Jan Oberhauser e3f10b6101 🔖 Release n8n@0.183.0 2022-06-21 00:01:59 +00:00
Jan Oberhauser 6ac232a639 ⬆️ Set n8n-core@0.123.0, n8n-editor-ui@0.149.0, n8n-nodes-base@0.181.0 and n8n-workflow@0.105.0 on n8n 2022-06-21 00:01:59 +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
Ricardo Espinoza d417ea7ffa
fix(core): Fix issue that some predefined credentials do not show up on HTTP Request Node (#3556)
* 🐛 Fix issue with credentials that define authenticate method

*  Small improvement

*  Fix typo

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-18 14:37:37 -07:00
Ricardo Espinoza c4b63fa999
test(API): Fix issues with Public API tests (#3515) 2022-06-17 22:20:21 -07:00
Iván Ovejero 189009a8b7
refactor(core): Improve DB directory setup (#3502) 2022-06-17 22:15:03 -07:00
Ricardo Espinoza f75f5d711f
fix(core): Fix issue that GET /workflows/:id does not return tags (#3522) 2022-06-17 21:45:18 -07:00
Jan Oberhauser 74e6b06467
fix(core): Do allow OPTIONS requests from any source (#3555) 2022-06-17 19:14:05 +02:00
Jan Oberhauser a62ceee5fa 🔖 Release n8n@0.182.1 2022-06-16 11:24:18 -07:00
Jan Oberhauser c67d2860c7 ⬆️ Set n8n-core@0.122.1 on n8n 2022-06-16 11:21:54 -07:00
Jan Oberhauser 27da115734 🔖 Release n8n@0.182.0 2022-06-14 17:07:01 +00:00
Jan Oberhauser 63157ce3e0 ⬆️ Set n8n-core@0.122.0, n8n-editor-ui@0.148.0, n8n-nodes-base@0.180.0 and n8n-workflow@0.104.0 on n8n 2022-06-14 17:07:01 +00:00
Iván Ovejero b8e3bcc052
refactor(core): Post-release refactorings of Public API (#3495)
*  Post-release refactorings

* 🧪 Add `--forceExit`

* 🛠 typing refactor (#3486)

* 🐛 Fix middleware arguments

* 👕 Fix lint

*  Restore commented out block

Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com>
2022-06-14 09:32:19 -07:00
Iván Ovejero c121952324
fix(core): Fix Public API failing to build on Windows (#3499)
*  Add build script

* 📦 Add dependencies

* 📦 Update package-lock.json

* 👕 Ignore `build.mjs`
2022-06-13 12:36:43 -07:00
Jan Oberhauser dfdbcc1eb3 🔖 Release n8n@0.181.2 2022-06-09 14:02:55 +02:00
Jan Oberhauser f94edd13a5 ⬆️ Set n8n-core@0.121.3 on n8n 2022-06-09 14:02:19 +02:00
Jan Oberhauser 22281f4ff9 🔖 Release n8n@0.181.1 2022-06-09 09:16:45 +02:00
Jan Oberhauser 64414fb7a6 ⬆️ Set n8n-core@0.121.2 on n8n 2022-06-09 09:15:31 +02:00
Jan Oberhauser 9a933dcebb 🔖 Release n8n@0.181.0 2022-06-08 19:27:00 +00:00
Jan Oberhauser deec0b0dcc ⬆️ Set n8n-core@0.121.0, n8n-editor-ui@0.147.0, n8n-nodes-base@0.179.0 and n8n-workflow@0.103.0 on n8n 2022-06-08 19:27:00 +00:00
Ricardo Espinoza a18081d749
feat: Add n8n Public API (#3064)
*  Inicial setup

*  Add authentication handler

*  Add GET /users route

*  Improvements

* 👕 Fix linting issues

*  Add GET /users/:identifier endpoint

*  Add POST /users endpoint

*  Add DELETE /users/:identifier endpoint

*  Return error using express native functions

* 👕 Fix linting issue

*  Possibility to add custom middleware

*  Refactor POST /users

*  Refactor DELETE /users

*  Improve cleaning function

*  Refactor GET /users and /users/:identifier

*  Add API spec to route

*  Add raw option to response helper

* 🐛 Fix issue adding custom middleware

*  Enable includeRole parameter in GET /users/:identifier

*  Fix linting issues after merge

*  Add missing config variable

*  General improvements

 asasas

*  Add POST /users tests

* Debug public API tests

* Fix both sets of tests

*  Improvements

*  Load api versions dynamically

*  Add endpoints to UM to create/delete an API Key

*  Add index to apiKey column

* 👕 Fix linting issue

*  Clean open api spec

*  Improvements

*  Skip tests

* 🐛 Fix bug with test

*  Fix issue with the open api spec

*  Fix merge issue

*  Move token enpoints from /users to /me

*  Apply feedback to openapi.yml

*  Improvements to api-key endpoints

* 🐛 Fix test to suport API dynamic loading

*  Expose swagger ui in GET /{version}/docs

*  Allow to disable public api via env variable

*  Change handlers structure

* 🚧 WIP create credential, delete credential complete

* 🐛 fix route for creating api key

*  return api key of authenticated user

*  Expose public api activation to the settings

* ⬆️ Update package-lock.json file

*  Add execution resource

*  Fix linting issues

* 🛠 conditional public api endpoints excluding

* ️ create credential complete

*  Added n8n-card component. Added spacing utility classes.

* ♻️ Made use of n8n-card in existing components.

*  Added api key setup view.

*  Added api keys get/create/delete actions.

*  Added public api permissions handling.

* ♻️ Temporarily disabling card tests.

* ♻️ Changed translations. Storing api key only in component.

*  Added utilities storybook entry

* ♻️ Changed default value for generic copy input.

* 🧹 clean up createCredential

*  Add workflow resource to openapi spec

* 🐛 Fix naming with env variable

*  Allow multifile openapi spec

*  Add POST /workflows/:workflowId/activate

* fix up view, fix issues

* remove delete api key modal

* remove unused prop

* clean up store api

* remove getter

* remove unused dispatch

* fix component size to match

* use existing components

* match figma closely

* fix bug when um is disabled in sidebar

* set copy input color

* remove unused import

*  Remove css path

*  Add POST /workflows/:workflowId/desactivate

*  Add POST /workflows

* Revert " Remove css path"

a3d0a71719

* attempt to fix docker image issue

* revert dockerfile test

* disable public api

* disable api differently

* Revert "disable api differently"

b70e29433e

* Revert "disable public api"

886e5164fb

* remove unused box

*  PUT /workflows/:workflowId

*  Refactor workflow endpoints

*  Refactor executions endpoints

*  Fix typo

*  add credentials tests

*  adjust users tests

* update text

* add try it out link

*  Add delete, getAll and get to the workflow resource

* address spacing comments

* ️ apply correct structure

*  Add missing test to user resource and fix some issues

*  Add workflow tests

*  Add missing workflow tests and fix some issues

*  Executions tests

*  finish execution tests

*  Validate credentials data depending on type

* ️ implement review comments

* 👕 fix lint issues

*  Add apiKey to sanatizeUser

*  Fix issues with spec and tests

*  Add new structure

*  Validate credentials type and properties

*  Make all endpoints except /users independent on UM

*  Add instance base path to swagger UI

*  Remove testing endpoints

*  Fix issue with openapi tags

*  Add endpoint GET /credentialTypes/:id/schema

* 🐛 Fix issue adding json middleware to public api

*  Add API playground path to FE

*  Add telemetry and external hooks

* 🐛 Fix issue with user tests

*  Move /credentialTypes under /credentials

*  Add test to GET /credentials/schema/:id

* 🛠 refactor schema naming

*  Add DB migrations
asas

*  add tests for crd apiKey

*  Added API View telemetry events.

*  Remove rsync from the building process as it is missing on alpine base image

*  add missing BE telemetry events

* 🐛 Fix credential tests

*  address outstanding feedback

* 🔨 Remove move:openapi script

* ⬆️ update dependency

* ⬆️ update package-lock.json

* 👕 Fix linting issue

* 🐛 Fix package.json issue

* 🐛 fix migrations and tests

* 🐛 fix typos + naming

* 🚧 WIP fixing tests

*  Add json schema validation

*  Add missing fields to node schema

*  Add limit max upper limit

*  Rename id paths

* 🐛 Fix tests

* Add package-lock.jsonto custom dockerfile

* ⬆️ Update package-lock.json

* 🐛 Fix issue with build

* ✏️ add beta label to api view

* 🔥 Remove user endpoints

*  Add schema examples to GET /credentials/schema/:id

* 🔥 Remove user endpoints tests

* 🐛 Fix tests

* 🎨 adapt points from design review

* 🔥 remove unnecessary text-align

* ️ update UI

* 🐛 Fix issue with executions filter

*  Add tags filter to GET /workflows

*  Add missing error messages

*  add and update public api tests

*  add tests for owner activiating/deactivating non-owned wfs

* 🧪 add tests for filter for tags

* 🧪 add tests for more filter params

* 🐛 fix inclusion of tags

* 🛠 enhance readability

* ️ small refactorings

* 💄 improving readability/naming

*  Set API latest version dinamically

* Add comments to toJsonSchema function

*  Fix issue

*  Make execution data usable

*  Fix validation issue

*  Rename data field and change parameter and options

* 🐛 Fix issue parameter "detailsFieldFormat" not resolving correctly

* Skip executions tests

* skip workflow failing test

* Rename details property to data

*  Add includeData parameter

* 🐛 Fix issue with openapi spec

* 🐛 Fix linting issue

*  Fix execution schema

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: Mutasem <mutdmour@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-06-08 20:53:12 +02:00