Commit Graph

153 Commits

Author SHA1 Message Date
Iván Ovejero ee03400c25 refactor(core): Decouple emailing and workflow sharing from internal hooks (no-changelog) (#10326) 2024-08-08 12:33:18 +02:00
Val fa17391dbd feat: Return scopes on executions (no-changelog) (#10310) 2024-08-07 10:19:09 +01:00
Tomi Turtiainen c8d322a9ba refactor(core): Reorganize webhook related components under src/webhooks (no-changelog) (#10296) 2024-08-07 11:23:44 +03:00
Tomi Turtiainen afa43e75f6 test(core): Move unit tests closer to testable components (no-changelog) (#10287) 2024-08-05 12:12:25 +03:00
Iván Ovejero aa0a470dce refactor(core): Clean up event relays (no-changelog) (#10284) 2024-08-02 16:52:49 +02:00
Iván Ovejero 7056e50b00 feat(core): Allow filtering executions and users by project in Public API (#10250) 2024-08-02 14:16:17 +02:00
Iván Ovejero d8688bd463 refactor(core): Decouple workflow created, saved, deleted events from internal hooks (no-changelog) (#10264) 2024-08-01 13:44:23 +02:00
Tomi Turtiainen d6770b5fca fix(core): Flush instance stopped event immediately (#10238) 2024-07-30 14:49:41 +03:00
Iván Ovejero b81f0bf9ea refactor(core): Port workflows config (no-changelog) (#10173) 2024-07-24 14:38:29 +02:00
Iván Ovejero f1a3791abc refactor(core): Split out subworkflow policy check from permission checker (no-changelog) (#10168) 2024-07-24 12:51:01 +02:00
Iván Ovejero 95b85dd5c1 refactor(core): Port nodes config (no-changelog) (#10140)
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2024-07-23 13:32:50 +02:00
Iván Ovejero aba1c64500 refactor(core): Rename EventRelay to EventService (no-changelog) (#10110) 2024-07-19 12:55:38 +02:00
Danny Martini 0f495986f8 fix(core): Allow owner and admin to edit nodes with credentials that haven't been shared with them explicitly (#9922) 2024-07-09 16:25:50 +02:00
कारतोफ्फेलस्क्रिप्ट™ c7d4b471c4 refactor(core): Move backend config to a separate package (no-changelog) (#9325) 2024-07-05 11:43:27 +02:00
Danny Martini ab2a548856 fix(core): Don't allow using credentials that are not part of the same project (#9916) 2024-07-03 11:42:59 +02:00
Iván Ovejero 8e529219df refactor(core): Lint to restrict @n8n/typeorm to persistence layer (no-changelog) (#9840) 2024-06-24 10:24:05 +02:00
Val aeeced4d97 fix: Get workflow not returning home project and shared projects (no-changelog) (#9815) 2024-06-20 15:43:23 +01:00
Iván Ovejero 199dff4fb3 refactor(core): Decouple event bus from internal hooks (no-changelog) (#9724) 2024-06-20 12:32:22 +02:00
Val adbd0d17ab fix: Changes to workflow staticData erroneously updating updatedAt (#9790) 2024-06-19 14:44:55 +01:00
Tomi Turtiainen 6c1a4c8ebf fix: Fix sending pin data twice causing payload too large errors (#9710) 2024-06-12 15:11:39 +03:00
Danny Martini 202c91e7ed feat(core): Allow transferring credentials from any project to any team project (#9563) 2024-06-04 13:54:48 +02:00
Danny Martini d6db8cbf23 feat(core): Allow transferring workflows from any project to any team project (#9534) 2024-06-03 16:57:04 +02:00
Csaba Tuncsik 596c472ecc feat: RBAC (#8922)
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
Co-authored-by: Val <68596159+valya@users.noreply.github.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
Co-authored-by: Valya Bullions <valya@n8n.io>
Co-authored-by: Danny Martini <danny@n8n.io>
Co-authored-by: Danny Martini <despair.blue@gmail.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: oleg <me@olegivaniv.com>
Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: Elias Meire <elias@meire.dev>
Co-authored-by: Giulio Andreini <andreini@netseven.it>
Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
Co-authored-by: Ayato Hayashi <go12limchangyong@gmail.com>
2024-05-17 10:53:15 +02:00
Iván Ovejero 7b925ab871 refactor(core): Rename ActiveWorkflowRunner to ActiveWorkflowManager (no-changelog) (#9280) 2024-05-06 17:54:05 +02:00
Iván Ovejero a3b59843d5 refactor(core): Lint for cyclomatic complexity in BE packages (no-changelog) (#9111) 2024-04-10 14:02:02 +02:00
कारतोफ्फेलस्क्रिप्ट™ 072c3db97d refactor(core): Rename push sessionId to pushRef (#8905) 2024-04-03 13:43:14 +02:00
कारतोफ्फेलस्क्रिप्ट™ 372d5c7d01 ci: Upgrade eslint, prettier, typescript, and some other dev tooling (no-changelog) (#8895)
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2024-03-26 14:22:57 +01:00
कारतोफ्फेलस्क्रिप्ट™ db4a419c8d refactor(core): Enforce authorization by default on all routes (no-changelog) (#8762) 2024-02-28 17:02:18 +01:00
Jan Oberhauser a29b41ec55 fix(core): Fix pairedItem issue with partial manual executions (#8575)
Co-authored-by: Danny Martini <danny@n8n.io>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2024-02-23 11:43:08 +01:00
कारतोफ्फेलस्क्रिप्ट™ 8e392cfc1d feat(core): Migrate to n8n's typeorm fork (#8590) 2024-02-08 15:13:29 +01:00
Iván Ovejero dc5ec8f946 refactor(core): Streamline flows in multi-main mode (no-changelog) (#8446) 2024-02-05 09:26:55 +01:00
Iván Ovejero 92f939f827 fix(core): Fix workflow tagging failure due to unique constraint check (#8505) 2024-02-02 12:36:55 +01:00
Iván Ovejero dac511b710 refactor(core): Modernize credentials controllers and services (no-changelog) (#8488)
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2024-01-31 09:48:48 +01:00
Iván Ovejero 9e93980957 fix(core): Prevent calling internal hook email event if emailing is disabled (#8462)
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2024-01-29 16:15:30 +01:00
कारतोफ्फेलस्क्रिप्ट™ c70fa66e76 refactor(core): Use DI for WorkflowRunner (no-changelog) (#8372) 2024-01-26 13:49:39 +01:00
कारतोफ्फेलस्क्रिप्ट™ d6deceacde refactor(core): Remove roleId indirection (no-changelog) (#8413) 2024-01-24 13:38:57 +01:00
Iván Ovejero c0bc94c78f refactor(core): Finish removing UserManagementHelper (no-changelog) (#8418) 2024-01-23 13:58:31 +01:00
Iván Ovejero a0a1830696 feat(core): Email recipients on resource shared (#8408) 2024-01-23 12:03:59 +01:00
Iván Ovejero f35d4fcbd8 refactor(core): Simplify OrchestrationService (no-changelog) (#8364) 2024-01-22 11:16:29 +01:00
Iván Ovejero 749ac2b407 fix(core): Adjust starter node priority for manual executions with pinned activators (#8386) 2024-01-19 10:18:04 +01:00
Tomi Turtiainen 9a1cc56806 fix: Set '@typescript-eslint/return-await' rule to 'always' for node code (no-changelog) (#8363)
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2024-01-17 17:08:50 +02:00
कारतोफ्फेलस्क्रिप्ट™ 7cdbb424e3 refactor(core): Move methods from WorkflowHelpers into various workflow services (no-changelog) (#8348) 2024-01-17 10:16:13 +01:00
Iván Ovejero 1a0e285553 feat(core): Implement inter-main communication for test webhooks in multi-main setup (#8267) 2024-01-12 11:48:58 +01:00
oleg 884396ea0d fix(API): Fix manual chat trigger execution (#8300)
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
2024-01-11 14:01:07 +01:00
Iván Ovejero 5032bf0e34 fix(core): Fix test webhook deregistration (#8247) 2024-01-09 16:02:32 +01:00
Tomi Turtiainen 8affdf680d fix: Hide cred setup button from canvas (no-changelog) (#8255) 2024-01-08 13:59:04 +02:00
Iván Ovejero 90c065e999 refactor(core): Convert workflows controller to DI (no-changelog) (#8253) 2024-01-08 12:54:23 +01:00
Iván Ovejero 23a4ac96c0 refactor(core): Continue moving typeorm operators to repositories (no-changelog) (#8212)
Follow-up to: https://github.com/n8n-io/n8n/pull/8186
2024-01-05 13:06:24 +01:00
Iván Ovejero 22a5f5258d feat(core): Cache test webhook registrations (#8176)
In a multi-main setup, we have the following issue. The user's client
connects to main A and runs a test webhook, so main A starts listening
for a webhook call. A third-party service sends a request to the test
webhook URL. The request is forwarded by the load balancer to main B,
who is not listening for this webhook call. Therefore, the webhook call
is unhandled.

To start addressing this, cache test webhook registrations, using Redis
for queue mode and in-memory for regular mode. When the third-party
service sends a request to the test webhook URL, the request is
forwarded by the load balancer to main B, who fetches test webhooks from
the cache and, if it finds a match, executes the test webhook. This
should be transparent - test webhook behavior should remain the same as
so far.

Notes:
- Test webhook timeouts are not cached. A timeout is only relevant to
the process it was created in, so another process retrieving from Redis
a "foreign" timeout will be unable to act on it. A timeout also has
circular references, so `cache-manager-ioredis-yet` is unable to
serialize it.
- In a single-main scenario, the timeout remains in the single process
and is cleared on test webhook expiration, successful execution, and
manual cancellation - all as usual.
- In a multi-main scenario, we will need to have the process who
received the webhook call send a message to the process who created the
webhook directing this originating process to clear the timeout. This
will likely be implemented via execution lifecycle hooks and Redis
channel messages checking session ID. This implementation is out of
scope for this PR and will come next.
- Additional data in test webhooks is not cached. From what I can tell,
additional data is not needed for test webhooks to be executed.
Additional data also has circular references, so
`cache-manager-ioredis-yet` is unable to serialize it.

Follow-up to: #8155
2024-01-03 16:58:33 +01:00
Iván Ovejero 40c1eeeddd refactor(core): Continue moving typeorm operators to repositories (no-changelog) (#8186)
Follow-up to: #8163
2024-01-02 17:53:24 +01:00