## Summary
- Moved out canvas loading handling to canvas store
- Tag editable routes via meta to remove router dependency from generic
helpers
- Replace all occurrences of `genericHelpers` mixin with composable and
audit usage
- Moved out `isRedirectSafe` and `getRedirectQueryParameter` out of
genericHelpers to remove dependency on router
Removing the router dependency is important, because `useRouter` and
`useRoute` compostables are only available if called from component
instance. So if composable is nested within another composable, we
wouldn't be able to use these. In this case we'd always need to inject
the router and pass it through several composables. That's why I moved
the `readonly` logic to router meta and `isRedirectSafe` and
`getRedirectQueryParameter` out as they were only used in a single
component.
---------
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
## Summary
Required as part of NodeView refactoring:
- Migrates `pinData` mixin to `usePinnedData` composable.
- Adds `useActiveNode` and `useNodeType` composables
## Related tickets and issues
https://linear.app/n8n/issue/N8N-6355/pindata
## 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))
- [x] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up
ticket created.
- [x] 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.
## Summary
Adding a link between the workflow and the template it originated from
by saving `templateId` in the workflow metadata
## Related tickets and issues
ADO-1537
## 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.
- [x] 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.
## Summary
Keyboard shortcuts such as Shift+S get triggered even when other keys
(Ctrl/Alt) are pressed, creating conflicts with browser or OS shortcuts.
This PR makes keyboard shortcuts more strict: the exact combination
needs to be pressed, no extra keys allowed.
--> Ctrl+Shift+S will no longer trigger the Shift+S shortcut to add a
sticky note
## Related tickets and issues
https://n8nio.slack.com/archives/C035KBDA917/p1702545933647959
## Summary
We want to show lead enrichment template suggestions to cloud users that
agreed to this. This PR introduces the front-end part of this feature
- Handoff document
- Figma Hi-fi
- [How to
test](https://linear.app/n8n/issue/ADO-1549/[n8n-fe]-update-workflows-list-page-to-show-fake-door-templates#comment-b6644c99)
Tests are being worked on in a separate PR
## Related tickets and issues
Fixes ADO-1546
Fixes ADO-1549
Fixes ADO-1604
## Review / Merge checklist
- [ ] 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: ricardo <ricardoespinoza105@gmail.com>
## Summary
- Refactor usage of `setSuspendDrawing`, removing it from loops and only
calling it after batch operations are done
- Batch adding of nodes to improve copy/paste and workflow load
performance
- Cache i18n calls
- Debounce connections dragging handler if there are more than 20 nodes
## Related tickets and issues
> Include links to **Linear ticket** or Github issue or Community forum
post. Important in order to close *automatically* and provide context to
reviewers.
- https://community.n8n.io/t/slow-ui-in-big-scenarios/33830/8
---------
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
Github issue / Community forum post (link here to close automatically):
---------
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
Co-authored-by: Giulio Andreini <andreini@netseven.it>
- Convert `nodeHelpers` mixin into composable and fix types
- Replace usage of the mixin with the new composable
- Add missing store imports in components that were dependent on opaque
imports from nodeHelpers mixin
- Refactor the `CollectionParameter` component to the modern script
setup syntax
Github issue / Community forum post (link here to close automatically):
---------
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
This PR should improve performance when opening large workflows that
contain node issues (Fixes ADO-1521)
**Background**
Main reason for this poor performance is that our `getCurrentWorkflow()`
store getter is unnecessarily heavy but on top of that we are calling it
more than we need. This addresses the second part of the issue by
changing the following:
- Pausing node issue processing while workflows are loading
- Only getting current workflow once (instead for every node) when
calling `refreshNodeIssues`
**Benchmark**
This was tested on a workflow attached to [this Linear
ticket](https://linear.app/n8n/issue/ADO-1501/deliveryhero-enterprise-instance-very-slow-loading-workflows)
and this fix brings down opening time from **~1m10s** to **~28s** on my
laptop.
**Tests**
- [Latest e2e tests
run](https://github.com/n8n-io/n8n/actions/runs/7060874994)
https://community.n8n.io/t/ui-very-slow-with-more-than-100-nodes/8236/14
This PR fixes mouse position detection in workflow previews (executions
preview and workflow history view):
https://github.com/n8n-io/n8n/assets/2598782/83237b76-b099-4560-9c47-a963f0848297
**Cause**:
We were setting `isDemo` state in canvas store only when the `NodeView`
component is activated, which never happens for `NodeView` instances
that are kept alive (above mentioned workflow previews)
**Fix**:
This workflow updates store state also when the `NodeView` component is
mounted.
extracted out of #7336
---------
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
Co-authored-by: Oleg Ivaniv <me@olegivaniv.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
This PR introduces the following changes:
- New Vue stores: `collaborationStore` and `pushConnectionStore`
- Front-end push connection handling overhaul: Keep only a singe
connection open and handle it from the new store
- Add user avatars in the editor header when there are multiple users
working on the same workflow
- Sending a heartbeat event to back-end service periodically to confirm
user is still active
- Back-end overhauls (authored by @tomi):
- Implementing a cleanup procedure that removes inactive users
- Refactoring collaboration service current implementation
---------
Co-authored-by: Tomi Turtiainen <10324676+tomi@users.noreply.github.com>
Fixes the issue that currently no Switch-Node can be created by for
example pressing + on the parent node or via tab when another node is
already selected.
Github issue / Community forum post (link here to close automatically):
---------
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
Co-authored-by: Oleg Ivaniv <me@olegivaniv.com>
extracted out of #7336
---------
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
Co-authored-by: OlegIvaniv <me@olegivaniv.com>
Co-authored-by: Jan Oberhauser <janober@users.noreply.github.com>
Co-authored-by: Val <68596159+valya@users.noreply.github.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: Deborah <deborah@starfallprojects.co.uk>
Co-authored-by: Jesper Bylund <mail@jesperbylund.com>
Co-authored-by: Jon <jonathan.bennetts@gmail.com>
Sometimes canvas selection stops working after users interact with node
action buttons (for example if node is moved by dragging one of the
buttons)
NOTE: Ticket number in the branch name is wrong, this fixes ADO-1226
* fix(editor): Fix redo when adding node on connection
* ✅ Adding tests for pushed nodes
* ✔️ Updating drag command for dragging nodes on the canvas
* 👌 Handling drag end with a command option
* initial telemetry setup and adjusted pull return
* quicksave before merge
* feat: add conflicting workflow list to pull modal
* feat: update source control pull modal
* fix: fix linting issue
* feat: add Enter keydown event for submitting source control push modal (no-changelog)
feat: add Enter keydown event for submitting source control push modal
* quicksave
* user workflow table for export
* improve telemetry data
* pull api telemetry
* fix lint
* Copy tweaks.
* remove authorName and authorEmail and pick from user
* rename owners.json to workflow_owners.json
* ignore credential conflicts on pull
* feat: several push/pull flow changes and design update
* pull and push return same data format
* fix: add One last step toast for successful pull
* feat: add up to date pull toast
* fix: add proper Learn more link for push and pull modals
* do not await tracking being sent
* fix import
* fix await
* add more sourcecontrolfile status
* Minor copy tweak for "More info".
* Minor copy tweak for "More info".
* ignore variable_stub conflicts on pull
* ignore whitespace differences
* do not show remote workflows that are not yet created
* fix telemetry
* fix toast when pulling deleted wf
* lint fix
* refactor and make some imports dynamic
* fix variable edit validation
* fix telemetry response
* improve telemetry
* fix unintenional delete commit
* fix status unknown issue
* fix up to date toast
* do not export active state and reapply versionid
* use update instead of upsert
* fix: show all workflows when clicking push to git
* feat: update Up to date pull translation
* fix: update read only env checks
* do not update versionid of only active flag changes
* feat: prevent access to new workflow and templates import when read only env
* feat: send only active state and version if workflow state is not dirty
* fix: Detect when only active state has changed and prevent generation a new version ID
* feat: improve readonly env messages
* make getPreferences public
* fix telemetry issue
* fix: add partial workflow update based on dirty state when changing active state
* update unit tests
* fix: remove unsaved changes check in readOnlyEnv
* fix: disable push to git button when read onyl env
* fix: update readonly toast duration
* fix: fix pinning and title input in protected mode
* initial commit (NOT working)
* working push
* cleanup and implement pull
* fix getstatus
* update import to new method
* var and tag diffs are no conflicts
* only show pull conflict for workflows
* refactor and ignore faulty credentials
* add sanitycheck for missing git folder
* prefer fetch over pull and limit depth to 1
* back to pull...
* fix setting branch on initial connect
* fix test
* remove clean workfolder
* refactor: Remove some unnecessary code
* Fixed links to docs.
* fix getstatus query params
* lint fix
* dialog to show local and remote name on conflict
* only show remote name on conflict
* fix credential expression export
* fix: Broken test
* dont show toast on pull with empty var/tags and refactor
* apply frontend changes from old branch
* fix tag with same name import
* fix buttons shown for non instance owners
* prepare local storage key for removal
* refactor: Change wording on pushing and pulling
* refactor: Change menu item
* test: Fix broken test
* Update packages/cli/src/environments/sourceControl/types/sourceControlPushWorkFolder.ts
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
---------
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
* ⚡ Implemented new grid row - banners
* ✨ Fixing node creator and executions sidebar position after layout update
* 💄 Added configurable round corners to the Callout component
* ⚡ Fixing mouse position detection and main tab bar position
* ⚡ Implemented basic banner component structure
* ⚡ Implemented banner state and dismiss logic
* ⚡ Fixing grid layout. Updating banners height state dynamically
* ⚡ Fix zoom to fit position, mouse position in demo mode and callout vertical alignment
* ⚡ Implementing proper trial banners logic
* 💄 Only showing execution usage data once the sidebar is fully expanded
* ✨ Implemented permanent/temporary dismiss logic for v1 flag
* ⚡ Minor refactoring of banner logic
* ⚡ Updating permanent dismiss logic to work with all banners
* 👕 Fixing linting errors
* ✔️ Updating Callout component test snapshots
* 💄 Tweaking zoom to fit position
* ✔️ Updating testing endpoints to use new store data
* ✅ Added banners unit tests
* ✔️ Fixing failing banner tests
* ✅ Added more banner tests
* ⚡ Updating banners dimensions on resize, removing leftover code
* ✔️ Removing store import from API file
* 👕 Fixing lint errors
* ⚡ Updating migration files
* ⚡ Using query parameters in migrations
* 👌 Addressing design review feedback
* ⚡ Updating upgrade plan button click
* ⚡ Updating the migrations syntax
* 👌 Updating permanent banner dismiss endpoint and back-end logic
* 👌 Refactoring trial banner component and ui store
* 👌 Addressing more points from code review
* 👌 Moving DOM logic from the store
* ✔️ Updated callout component snapshots
* 👌 Updating mysql migration file
* ✔️ Updating e2e test canvas coordinates after setting it's position to absolute
* 👌 Addressing back-end review feedback
* 👌 Improving typing around banners
* 👕 Fixing lint errors
* fix(core): Make node execution order configurable, and backward-compatible
* ⚡ Also add new Merge-Node behaviour
* ⚡ Fix typo
* Fix lint issue
* update labels
* rename legacy to v0
* remove the unnecessary log
* default all new workflows to use v1 execution-order
* remove the controller changes
* clone default settings to avoid it getting modified
---------
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
* first commit for postgres migration
* (not working)
* sqlite migration
* quicksave
* fix tests
* fix pg test
* fix postgres
* fix variables import
* fix execution saving
* add user settings fix
* change migration to single lines
* patch preferences endpoint
* cleanup
* improve variable import
* cleanup unusued code
* Update packages/cli/src/PublicApi/v1/handlers/workflows/workflows.handler.ts
Co-authored-by: Omar Ajoue <krynble@gmail.com>
* address review notes
* fix var update/import
* refactor: Separate execution data to its own table (#6323)
* wip: Temporary migration process
* refactor: Create boilerplate repository methods for executions
* fix: Lint issues
* refactor: Added search endpoint to repository
* refactor: Make the execution list work again
* wip: Updating how we create and update executions everywhere
* fix: Lint issues and remove most of the direct access to execution model
* refactor: Remove includeWorkflowData flag and fix more tests
* fix: Lint issues
* fix: Fixed ordering of executions for FE, removed transaction when saving execution and removed unnecessary update
* refactor: Add comment about missing feature
* refactor: Refactor counting executions
* refactor: Add migration for other dbms and fix issues found
* refactor: Fix lint issues
* refactor: Remove unnecessary comment and auto inject repo to internal hooks
* refactor: remove type assertion
* fix: Fix broken tests
* fix: Remove unnecessary import
* Remove unnecessary toString() call
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
* fix: Address comments after review
* refactor: Remove unused import
* fix: Lint issues
* fix: Add correct migration files
---------
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
* remove null values from credential export
* fix: Fix an issue with queue mode where all running execution would be returned
* fix: Update n8n node to allow for workflow ids with letters
* set upstream on set branch
* remove typo
* add nodeAccess to credentials
* fix unsaved run check for undefined id
* fix(core): Rename version control feature to source control (#6480)
* rename versionControl to sourceControl
* fix source control tooltip wording
---------
Co-authored-by: Romain Minaud <romain.minaud@gmail.com>
* fix(editor): Pay 548 hide the set up version control button (#6485)
* feat(DebugHelper Node): Fix and include in main app (#6406)
* improve node a bit
* fixing continueOnFail() ton contain error in json
* improve pairedItem
* fix random data returning object results
* fix nanoId length typo
* update pnpm-lock file
---------
Co-authored-by: Marcus <marcus@n8n.io>
* fix(editor): Remove setup source control CTA button
* fix(editor): Remove setup source control CTA button
---------
Co-authored-by: Michael Auerswald <michael.auerswald@gmail.com>
Co-authored-by: Marcus <marcus@n8n.io>
* fix(editor): Update source control docs links (#6488)
* feat(DebugHelper Node): Fix and include in main app (#6406)
* improve node a bit
* fixing continueOnFail() ton contain error in json
* improve pairedItem
* fix random data returning object results
* fix nanoId length typo
* update pnpm-lock file
---------
Co-authored-by: Marcus <marcus@n8n.io>
* feat(editor): Replace root events with event bus events (no-changelog) (#6454)
* feat: replace root events with event bus events
* fix: prevent cypress from replacing global with globalThis in import path
* feat: remove emitter mixin
* fix: replace component events with event bus
* fix: fix linting issue
* fix: fix breaking expression switch
* chore: prettify ndv e2e suite code
* fix(editor): Update source control docs links
---------
Co-authored-by: Michael Auerswald <michael.auerswald@gmail.com>
Co-authored-by: Marcus <marcus@n8n.io>
Co-authored-by: Alex Grozav <alex@grozav.com>
* fix tag endpoint regex
---------
Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Romain Minaud <romain.minaud@gmail.com>
Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
Co-authored-by: Marcus <marcus@n8n.io>
Co-authored-by: Alex Grozav <alex@grozav.com>
* fix(editor): Fix an issue where dragging during when rename modal active would break workflow connections
* Use enum to check for confirm state of modal
* ✨ Removing the `makeApiRequest` method from `restAPI` mixin, removing the mixing from the App component
* ✨ Removing `restApi` mixin
* 👕 Fixing lint errors
* ✔️ Fixing execution list unit tests and merge bug in workflowRun mixin
* 🐛 Added missing useStore
* refactor: replace new Vue() with custom event bus (no-changelog)
* fix: export types from design system main
* fix: update component types
* fix: update form inputs event bus
* refactor(editor): Migrate mouseSelect & deviceSupportHelpers mixins to composables (no-changelog)
* Fix node drop position and correct event listeners
* feat(editor): Do not add manual trigger node if node creator trigger via canvas actions
* Add e2e tests
* Install cypress-plugin-tab, do not use cy.realPress as it hangs the tests
* Exclude tab tests
* WIP: Cypress parallel CI run test
* Trigger action on branch push
* Change build artifacts path
* Make sure to checkout the repo for testing job
* Use Cypress action for installing
* Lock cypress action userd version
* Skip node install step since we're using cypress node16 container
* Let Cypress handle pnpm install
* Use setup-node action for caching pnpm
* Set CYPRESS_CACHE_FOLDER
* Set CYPRESS_CACHE_FOLDER
* Manually cache pnpm store
* Dont fix pnpm version
* Use caching action also in testing job
* Zip packages dist before uploading the artifacts and change caching key
* Use absolute build paths for zipping job
* Use zip command in action
* Use tar for zipping packages
* Debuggin directory ls
* Debugging caching of modules
* Attempt to fix permissions issue
* Porivde Cypress executable via `CYPRESS_RUN_BINARY`
* Cache /github/home
* Adjust caching keys
* Debug: search for cypress exec
* Debugging: List dirs
* Use pnpm install action to install node_modules
* Do not log /home/runner
* Use node_modules/.bin Cypress binary
* Use absolute path to nodue modules
* Run Cypress via custom command
* Try with patched cypress action
* Revert logging
* Manually specify cypress config file
* Use absolute paths
* Fix cypress config name
* Debug print cypress config
* Remove debugging, increase to 4 containers
* Increase amount of containers
* Add env-version matrix
* Replace node14 with node18 in testing matrix
* Remove debugging and add node 14
* Use just node14
* Use cypress:base and remove browser req
* Give more general timeouts
* Try with node16
* Change cache directive position
* Replace zip artifact upload with cache
* Cache full packages not just dist
* Test with variable inputs
* Add commit info message
* Remove wrongly commited code
* Allow WF API dispatch
* Try Chrome browser again for comparison
* Include Monaco in the build
* Make e2e workflow re-usable
* Comment out invalid reusable workflow args
* Use electron and add node 14 run
* Fix env arg
* Provide custom ci-build-id
* Refactor remaining e2e workflow to use reusable action
* Remove single matrix directive
* Refactor ci-pull-req
* Make lint job dependant on test jobs
* Disable debugging job
* Make containers dynamic
* Cleanup & install git for linting action
* Use regular buntu image for PR linting
* Debugging failing tests
* Remove fixed spec name
* Debug e2e env var
* Do not use realkeypress which crashes electron runner
* Debugging
* chore: remove console
* chore: remove console
* test: remove node 14 tests
* test: replace test branch with master
* test: use tests in current branch
* test: use relative path
* chore: clean up
* test: only trigger on approval
* ci: update test PR
* ci: use curr branch
* ci: only run 14 on schedule, not for slack command
* ci: only run test on approval
* ci: clean up branch, rename step
* ci: rename steps
* ci: clean up cancel
* ci: clean up env var
* ci: set var
* ci: use chromef
* ci: use electron
* chore: add console log
* chore: add console log
* ci: update to string
* ci: set all env options
* test: build
* ci: fix step issue
* Fix failing tests & upgrade to Cypress 12
* Allow WF dispatch of e2e reusable
* Fix wrong naming in e2e-tests workflow
* Redeploy
* Fix tests
* Fix NDV tests and remove skipping of webhooks execution tests
* Fix clipboard read command
* Fix execution failing tests
* Reset before each 15 and 3
* Fix flaky tests
* Cleanup and log envs
* Test fixes
* Default owner spec fixes
* Get rid of CYPRESS_RUN_ENV
* Increase amount of containers, cleanup and add mock for credentials test call
* Cleanup & fix PR tests unit tests
* Wait for WF to loade in sharing spec
* Do linting and unit tests first
* Use frozen lockfile
* Revert back ci pull request jobs order
* Refine credential input selector and move cy.waitForLoad to correct position in 15-scheduler spec
* test: build
* Wait for WF execution instead of arbitraty timeout in WF execution spec, change order of jobs for ci pull request
* Fix flaky 3-default owner spec and wait for execution list to load in 20-workflow-executions
* Use setup node action
* Remove caching for lint/unit tests
* Experiment with parallel test & lint on ci
* Provide cache key dynamically
* Run e2e in parallel on pr
* Only run node14 e2e on daily schedule
* Make sure to generate generate new ci-build-id on re-runs
* Remove debugging prints
* Address PR comments
* Rename custom onBeforeUnload handler
* Make sure 19-execution spec waits for wf to load properly before import fixtures
---------
Co-authored-by: Mutasem <mutdmour@gmail.com>
* feat(editor): roll out schema view
* feat(editor): add posthog tracking
* refactor: use composables
* refactor: clean up console log
* refactor: clean up impl
* chore: clean up impl
* fix: fix demo var
* chore: add comment
* refactor: clean up
* chore: wrap error func
* refactor: clean up import
* refactor: make store
* feat: enable rudderstack usebeacon, move event to unload
* chore: clean up alert
* refactor: move tracking from hooks
* fix: reload flags on login
* fix: add func to setup
* fix: clear duplicate import
* chore: add console to tesT
* chore: add console to tesT
* fix: try reload
* chore: randomize instnace id for testing
* chore: randomize instnace id for testing
* chore: add console logs for testing
* chore: move random id to fe
* chore: use query param for testing
* feat: update PostHog api endpoint
* feat: update rs host
* feat: update rs host
* feat: update rs endpoints
* refactor: use api host for BE events as well
* refactor: refactor out posthog client
* feat: add feature flags to login
* feat: add feature flags to login
* feat: get feature flags to work
* feat: add created at to be events
* chore: add todos
* chore: clean up store
* chore: add created at to identify
* feat: add posthog config to settings
* feat: add bootstrapping
* chore: clean up
* chore: fix build
* fix: get dates to work
* fix: get posthog to recognize dates
* chore: refactor
* fix: update back to number
* fix: update key
* fix: get experiment evals to work
* feat: add posthog to signup router
* feat: add feature flags on sign up
* chore: clean up
* fix: fix import
* chore: clean up loading script
* feat: add timeout, fix: script loader
* fix: test timeout and get working on 8080
* refactor: move out posthog
* feat: add experiment tracking
* fix: clear tracked on reset
* fix: fix signup bug
* fix: handle errors when telmetry is disabled
* refactor: remove redundant await
* fix: add back posthog to telemetry
* test: fix test
* test: fix test
* test: add tests for posthog client
* lint: fix
* fix: fix issue with slow decide endpoint
* lint: fix
* lint: fix
* lint: fix
* lint: fix
* chore: address PR feedback
* chore: address PR feedback
* feat: add onboarding experiment
* adds ExecutionEvents view modal to ExecutionList
* fix time rendering and remove wf column
* checks for unfinished executions and fails them
* prevent re-setting stoppedAt for execution
* some cleanup / manually create rundata after crash
* quicksave
* remove Threads lib, log worker rewrite
* cleanup comment
* fix sentry destination return value
* test for tests...
* run tests with single worker
* fix tests
* remove console log
* add endpoint for execution data recovery
* lint cleanup and some refactoring
* fix accidental recursion
* remove cyclic imports
* add rundata recovery to Workflowrunner
* remove comments
* cleanup and refactor
* adds a status field to executions
* setExecutionStatus on queued worker
* fix onWorkflowPostExecute
* set waiting from worker
* get crashed status into frontend
* remove comment
* merge fix
* cleanup
* catch empty rundata in recovery
* refactor IExecutionsSummary and inject nodeExecution Errors
* reduce default event log size to 10mb from 100mb
* add per node execution status
* lint fix
* merge and lint fix
* phrasing change
* improve preview rendering and messaging
* remove debug
* Improve partial rundata recovery
* fix labels
* fix line through
* send manual rundata to ui at crash
* some type and msg push fixes
* improve recovered item rendering in preview
* update workflowStatistics on recover
* merge fix
* review fixes
* merge fix
* notify eventbus when ui is back up
* add a small timeout to make sure the UI is back up
* increase reconnect timeout to 30s
* adjust recover timeout and ui connection lost msg
* do not stop execution in editor after x reconnects
* add executionRecovered push event
* fix recovered connection not green
* remove reconnect toast and merge existing rundata
* merge editor and recovered data for own mode
* test(editor): Execution testing from UI perspective
* test(editor): Execution testing from UI perspective
* test(editor): Execution test rename
* test(editor): Execution test rename and add stop test
* test(editor): Execution test with webhook
* test(editor): Execution test with webhook
* fix(editor): Prevent creation of input connections for nodes without input
* WIP: Workflow checks service and controller
* fix: Created SQLite migration to remove broken connections
* Cleanup & add mysql/posgres migrations
* Linter fixes
* Unify the migration scripts
* Escape migration workflow_entity
* Wrap the migration in try/catch and do not parse nodes and connection if mysql/postgres
* Do migration changes also fro mysql
* refactor: Wrap only the necessary call in try catch block
---------
Co-authored-by: Omar Ajoue <krynble@gmail.com>
* ⚡ Adding source and target test data to connection HTML elements
* ⚡ Using new action to add node on the connection
* 🔥 Removing leftover log
* 🔥 Removing leftover test action
* 👌 Refactoring to address PR feedback
* refactor(editor): Fix duplicate NodeView keys when navigating between routes (no-changelog)
* Prettier fixes
* Use computed to export jsPlumb instance from canvas
* Force jsPlumb computed instance type
* feat(editor): Supress validation errors when node is added from node creator
* Supress initial errors also for resource locator inputs
* Use nodeMetadata prop to store node's `pristine` state
* Revert `setNodeParameters` check for `nodeMetadata`
* Rename getIsNodePristine to isNodePristine
* 🐛 Only add current workflow executions to to store when loading executions from global list
* 🐛 Fixing infinite scroll on executions list
* 🐛 Fixing global and current executions list sync
* ⚡ Resetting executions list when opening new workflow
* 🐛 Handling opening execution from global list before opening a workflow
* ⚡ Scrolling to active execution card if out of view, keeping selected execution after workflow load
* fix: Prevent workflows with only manual trigger from being activated
* fix: Fix workflow id when sharing from workflows list
* fix: Update sharing modal translations
* fix: Allow sharees to disable workflows and fix issue with unique key when removing a user
* refactor: Improve error messages and change logging level to be less verbose
* fix: Broken user removal transfer issue
* feat: Implement workflow sharing BE telemetry
* chore: temporarily add sharing env vars
* feat: Implement BE telemetry for workflow sharing
* fix: Prevent issues with possibly missing workflow id
* feat: Replace WorkflowSharing flag references (no-changelog) (#4918)
* ci: Block all external network calls in tests (no-changelog) (#4930)
* setup nock to prevent tests from making any external requests
* mock all calls to posthog sdk
* feat: Replace WorkflowSharing flag references (no-changelog)
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>
* refactor: Remove temporary feature flag for workflow sharing
* refactor: add sharing_role to both manual and node executions
* refactor: Allow changing name, position and disabled of read only nodes
* feat: Overhaul dynamic translations for local and cloud (#4943)
* feat: Overhaul dynamic translations for local and cloud
* fix: remove type casting
* chore: remove unused translations
* fix: fix workflow sharing translation
* test: Fix broken test
* refactor: remove unnecessary import
* refactor: Minor code improvements
* refactor: rename dynamicTranslations to contextBasedTranslationKeys
* fix: fix type imports
* refactor: Consolidate sharing feature check
* feat: update cred sharing unavailable translations
* feat: update upgrade message when user management not available
* fix: rename plan names to Pro and Power
* feat: update translations to no longer contain plan names
* wip: subworkflow permissions
* feat: add workflowsFromSameOwner caller policy
* feat: Fix subworkflow permissions
* shared entites should check for role when deleting users
* refactor: remove circular dependency
* role filter shouldn't be an array
* fixed role issue
* fix: Corrected behavior when removing users
* feat: show instance owner credential sharing message only if isnt sharee
* feat: update workflow caller policy caller ids labels
* feat: update upgrade plan links to contain instance ids
* fix: show check errors below creds message only to owner
* fix(editor): Hide usage page on cloud
* fix: update credential validation error message for sharee
* fix(core): Remove duplicate import
* fix(editor): Extending deployment types
* feat: Overhaul contextual translations (#4992)
feat: update how contextual translations work
* refactor: improve messageing for subworkflow permissions
* test: Fix issue with user deletion and transfer
* fix: Explicitly throw error message so it can be displayed in UI
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>
Co-authored-by: freyamade <freya@n8n.io>
Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
* ✨ Added history store and mixin
* ✨ Implemented node position change undo/redo
* ✨ Implemented move nodes bulk command
* ⚡ Not clearing the redo stack after pushing the bulk command
* 🔨 Implemented commands using classes
* 🔥 Removed unnecessary interfaces and actions
* 🔥 Removing unused constants
* 🔨 Refactoring classes file
* ⚡ Adding eventBus to command obects
* ✨ Added undo/redo support for adding and removing nodes
* ✨ Implemented initial add/remove connections undo support
* ⚡ Covering some corner cases with reconnecting nodes
* ⚡ Adding undo support for reconnecting nodes
* ⚡ Fixing going back and forward between undo and redo
* ✨ Implemented async command revert
* ⚡ Preventing push to undo if bulk redo/undo is in progress
* ⚡ Handling re-connecting nodes and stopped pushing empty bulk actions to undo stack
* ✨ Handling adding a node between two connected nodes
* ⚡ Handling the case of removing multiple connections on the same index. Adding debounce to undo/redo keyboard calls
* ⚡ Removing unnecessary timeouts, adding missing awaits, refactoring
* ⚡ Resetting history when opening new workflow, fixing incorrect bulk recording when inserting node
* ✔️ Fixing lint error
* ⚡ Minor refactoring + some temporary debugging logs
* ⚡ Preserving node properties when undoing it's removal, removing some unused repaint code
* ✨ Added undo/redo support for import workflow and node enable/disable
* 🔥 Removing some unused constant
* ✨ Added undo/redo support for renaming nodes
* ⚡ Fixing rename history recording
* ✨ Added undo/redo support for duplicating nodes
* 📈 Implemented telemetry events
* 🔨 A bit of refactoring
* ⚡ Fixing edgecases in removing connection and moving nodes
* ⚡ Handling case of adding duplicate nodes when going back and forward in history
* ⚡ Recording connections added directly to store
* ⚡ Moving main history reset after wf is opened
* 🔨 Simplifying rename recording
* 📈 Adding NDV telemetry event, updating existing event name case
* 📈 Updating telemetry events
* ⚡ Fixing duplicate connections on undo/redo
* ⚡ Stopping undo events from firing constantly on keydown
* 📈 Updated telemetry event for hitting undo in NDV
* ⚡ Adding undo support for disabling nodes using keyboard shortcuts
* ⚡ Preventing adding duplicate connection commands to history
* ⚡ Clearing redo stack when new change is added
* ⚡ Preventing adding connection actions to undo stack while redoing them
* 👌 Addressing PR comments part 1
* 👌 Moving undo logic for disabling nodes to `NodeView`
* 👌 Implemented command comparing logic
* ⚡ Fix for not clearing redo stack on every user action
* ⚡ Fixing recording when moving nodes
* ⚡ Fixing undo for moving connections
* ⚡ Fixing tracking new nodes after latest merge
* ⚡ Fixing broken bulk delete
* ⚡ Preventing undo/redo when not on main node view tab
* 👌 Addressing PR comments
* 👌 Addressing PR comment
* WIP: Node Actions List UI
* WIP: Recommended Actions and preseting of fields
* WIP: Resource category
* 🎨 Moved actions categorisation to the server
* 🏷️ Add missing INodeAction type
* ✨ Improve SSR categorisation, fix adding of mixed actions
* ♻️ Refactor CategorizedItems to composition api, style fixes
* WIP: Adding multiple nodes
* ♻️ Refactor rest of the NodeCreator component to composition API, conver globalLinkActions to composable
* ✨ Allow actions dragging, fix search and refactor passing of actions to categorized items
* 💄 Fix node actions title
* Migrate to the pinia store, add posthog feature and various fixes
* 🐛 Fix filtering of trigger actions when not merged
* fix: N8N-5439 — Do not use simple node item when at NodeHelperPanel root
* 🐛 Design review fixes
* 🐛 Fix disabling of merged actions
* Fix trigger root filtering
* ✨ Allow for custom node actions parser, introduce hubspot parser
* 🐛 Fix initial node params validation, fix position of second added node
* 🐛 Introduce operations category, removed canvas node names overrride, fix API actions display and prevent dragging of action nodes
* ✨ Prevent NDV auto-open feature flag
* 🐛 Inject recommened action for trigger nodes without actions
* Refactored NodeCreatorNode to Storybook, change filtering of merged nodes for the trigger helper panel, minor fixes
* Improve rendering of app nodes and animation
* Cleanup, any only enable accordion transition on triggerhelperpanel
* Hide node creator scrollbars in Firefox
* Minor styles fixes
* Do not copy the array in rendering method
* Removed unused props
* Fix memory leak
* Fix categorisation of regular nodes with a single resource
* Implement telemetry calls for node actions
* Move categorization to FE
* Fix client side actions categorisation
* Skip custom action show
* Only load tooltip for NodeIcon if necessary
* Fix lodash startCase import
* Remove lodash.startcase
* Cleanup
* Fix node creator autofocus on "tab"
* Prevent posthog getFeatureFlag from crashing
* Debugging preview env search issues
* Remove logs
* Make sure the pre-filled params are update not overwritten
* Get rid of transition in itemiterator
* WIP: Rough version of NodeActions keyboard navigation, replace nodeCreator composable with Pinia store module
* Rewrite to add support for ActionItem to ItemIterator and make CategorizedItems accept items props
* Fix category item counter & cleanup
* Add APIHint to actions search no-result, clean up NodeCreatorNode
* Improve node actions no results message
* Remove logging, fix filtering of recommended placeholder category
* Remove unused NodeActions component and node merging feature falg
* Do not show regular nodes without actions
* Make sure to add manual trigger when adding http node via actions hint
* Fixed api hint footer line height
* Prevent pointer-events od NodeIcon img and remove "this" from template
* Address PR points
* Fix e2e specs
* Make sure canvas ia loaded
* Make sure canvas ia loaded before opening nodeCreator in e2e spec
* Fix flaky workflows tags e2e getter
* Imrpove node creator click outside UX, add manual node to regular nodes added from trigger panel
* Add manual trigger node if dragging regular from trigger panel
* ✨ Added `utils` module. Moved `canvasHelpers` and old `utils.ts` file to it
* ✨ Moved rest of utils and helpers
* ⚡ Fixing sytax errors
* 🔨 Refactoring new utils files
* 🔨 Organizing imports, adding comments and a bit more refactoring
* ✔️ Fixing tests
* 🔨 Moving mixins to `src`
* feat(editor): extract credentials view into reusable layout components for workflows view
* feat(editor): add workflow card and start work on empty state
* feat: add hoverable card and finish workflows empty state
* fix: undo workflows response interface changes
* chore: fix linting issues.
* fix: remove enterprise sharing env schema
* fix(editor): fix workflows resource view when sharing is enabled
* fix: change owner tag design and order
* feat: add personalization survey on workflows page
* fix: update component snapshots
* feat: refactored workflow card to use workflow-activator properly
* fix: fix workflow activator and proptypes
* fix: hide owner tag for workflow card until sharing is available
* fix: fixed ownedBy and sharedWith appearing for workflows list
* feat: update tags component design
* refactor: change resource filter select to n8n-user-select
* fix: made telemetry messages reusable
* chore: remove unused import
* refactor: fix component name casing
* refactor: use Vue.set to make workflow property reactive
* feat: add support for clicking on tags for filtering
* chore: fix tags linting issues
* fix: fix resources list layout when title words are very long
* refactor: add active and inactive status text to workflow activator
* fix: fix credentials and workflows sorting when name contains leading whitespace
* fix: remove wrongfully added style tag
* feat: add translations and storybook examples for truncated tags
* fix: remove enterprise sharing env from schema
* refactor: fix workflows module and workflows field store naming conflict
* feat: add workflow share button and open dummy modal
* feat: add workflow sharing modal (in progress)
* feat: add message when sharing disabled
* feat: add sharing messages based on flags
* feat: add workflow sharing api integration and readonly state handling
* fix: change how foreign credentials are handled
* refactor: migrate newly added workflow sharing store methods to pinia
* fix: update foreign credentials handler and add executable prop to node-settings
* fix: fix credentials display issue caused by addCredentials override
* fix: fix various issues when sharing from empty state
* fix: update node duplication credentials
* fix: revert defautl values for sharing env
* feat: hide share button behind feature flag
* chore: add env variable for sharing feature (testing only)
* fix: change enterprise-edition component casing
* ✨ Passing an execution mode to the preview iframe so UI can be adjusted based on it
* ✨ Handling production execution mode to hide the pin data in node details view
* ✨ Added pinia support. Migrated community nodes module.
* ✨ Added ui pinia store, moved some data from root store to it, updated modals to work with pinia stores
* ✨ Added ui pinia store and migrated a part of the root store
* ✨ Migrated `settings` store to pinia
* ✨ Removing vuex store refs from router
* ✨ Migrated `users` module to pinia store
* ⚡ Fixing errors after sync with master
* ⚡ One more error after merge
* ⚡ Created `workflows` pinia store. Moved large part of root store to it. Started updating references.
* ✨ Finished migrating workflows store to pinia
* ⚡ Renaming some getters and actions to make more sense
* ✨ Finished migrating the root store to pinia
* ✨ Migrated ndv store to pinia
* ⚡ Renaming main panel dimensions getter so it doesn't clash with data prop name
* ✔️ Fixing lint errors
* ✨ Migrated `templates` store to pinia
* ✨ Migrated the `nodeTypes`store
* ⚡ Removed unused pieces of code and oold vuex modules
* ✨ Adding vuex calls to pinia store, fixing wrong references
* 💄 Removing leftover $store refs
* ⚡ Added legacy getters and mutations to store to support webhooks
* ⚡ Added missing front-end hooks, updated vuex state subscriptions to pinia
* ✔️ Fixing linting errors
* ⚡ Removing vue composition api plugin
* ⚡ Fixing main sidebar state when loading node view
* 🐛 Fixing an error when activating workflows
* 🐛 Fixing isses with workflow settings and executions auto-refresh
* 🐛 Removing duplicate listeners which cause import error
* 🐛 Fixing route authentication
* ⚡ Updating freshly pulled $store refs
* ⚡ Adding deleted const
* ⚡ Updating store references in ee features. Reseting NodeView credentials update flag when resetting workspace
* ⚡ Adding return type to email submission modal
* ⚡ Making NodeView only react to paste event when active
* 🐛 Fixing signup view errors
* ✨ Started migrating the `credentials` module to pinia
* 👌 Addressing PR review comments
* ✨ Migrated permissions module to pinia
* ✨ Migrated `nodeCreator`, `tags` and `versions` modules to pinia
* ✨ Implemented webhooks pinia store
* ⚡ Removing all leftover vuex files and references
* ✨ Removing final vuex refs
* ⚡ Updating expected credentialId type
* ⚡ Removing node credentials subscription code, reducing node click debounce timeout
* 🐛 Fixing pushing nodes downstream when inserting new node
* ✔️ Fixing a lint error in new type guard
* ⚡ Updating helper reference
* ✔️ Removing unnecessary awaits
* ⚡ fix(editor): remove unnecessary imports from NDV
* ⚡ Merging mapStores blocks in NodeView
* ⚡ fix(editor): make sure JS Plumb not loaded earlier than needed
* ⚡ Updating type guard nad credentials subscriptions
* ⚡ Updating type guard so it doesn't use `any` type
Co-authored-by: Csaba Tuncsik <csaba@n8n.io>