## 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
This is part-1 of refactoring our code editors to extract different type
of editors into their own components.
In part-2 we'll
1. delete a of unused or duplicate code
2. switch to a `useEditor` composable to bring more UX consistency
across all the code editors.
## Review / Merge checklist
- [x] PR title and summary are descriptive
- [x] Tests included
- 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>
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>
useStorage takes the default value `undefined` and sets it in local
storage.. also returns "undefined" as string which breaks onboarding
flows
Github issue / Community forum post (link here to close automatically):
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>
* feat(editor): Add "Download" button if JSON data is to large
* ⚡ Some code improvements + change button style
---------
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
* 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>
* fix(editor): Remove duplicate mapping of `item.json` key in data pinning
* fix(editor): Remove duplicate mapping of `item.json` key in data pinning
* fix(editor): Remove duplicate mapping of `item.json` key in data pinning
* test(editor): Unit test the fix of duplicate mapping of `item.json` key in data pinning
* ✨ 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
* feat(editor): Add support for schema view in the NDV output
* Make intercepts waiting optional in waitForLoad method
* Update RunDataSchema snapshots
* Do not reset output panel view on execution, properly key run RunDataSchemaItem to make sure they are unique across panels
* Update snapshot tests
* Make adding of schema view button option more readable
* 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: add tests for pinning
* test: add test for value
* test: add pinned data tests
* test: refactor into ndv
* refactor: move to ndv
* refactor: rename node
* test: fix test
* test: fix refactor
* test: remove unused id
* test: update test
* test: chain rename input
* test: refactor invoking text
* test: fix ndv tests
* test: move test id
* test: add tests for mapping
* test: update selectors
* test: add mapping
* test: remove wait
* test: add back line removed by mistake
* test: refactor to support both in/output displays
* test: add display mode switching
* test: fix drop
* chore: clean up change
* refactor: add draganddrop
* fix: fix drag and drop
* test: add mapping test for second value
* test: update text
* test: update param
* delete unused code
* fix: Do not set the `Content-Disposition` header when viewing binary files
* remove the duplicate styles.
these already exist in BinaryDataDisplayEmbed.vue
* stringify objects before encoding them objects in MoveBinaryData
* add fileSize and fileType on MoveBinaryData converted data
* show `view` option for text files as well
* improve how JSON binary data is shown in the UI
* feat(editor): Generate custom schema from data (#4562)
* feat(core): adding a type package to n8n
* feat(editor): adding custom schema generator
* fix: add new types package to lock file
* fix: remove n8n_io/types package
* fix: adding path to generated schema
* fix: handling nested lists in schema generation
* fix: add date support to schema generation
* fix: define dates in ISO format
* fix: using test instead of it in repeated tests
* fix(editor): JSON schema treat nested lists as object to allow mapping each level
* fix(editor): rename JSON schema type
* fix(editor): make JSON schema path required
* fix(editor): using JSON schema bracket notation for object props to handle exceptional keys
* fix(editor): reorder JSON schema generator function args
* feat(editor): Add date recognizer util function (#4620)
* ✨ Implemented date recogniser fuction
* ✅ Added unit tests for date recogniser
* ✔️ Fixing linting errors
* 👌 Updating test cases
* feat(editor): Implement JSON Schema view UI functionalities (#4601)
* feat(core): adding a type package to n8n
* feat(editor): adding custom schema generator
* fix: add new types package to lock file
* fix: remove n8n_io/types package
* fix: adding path to generated schema
* fix: handling nested lists in schema generation
* fix: add date support to schema generation
* fix: define dates in ISO format
* fix: using test instead of it in repeated tests
* fix(editor): JSON schema treat nested lists as object to allow mapping each level
* fix(editor): rename JSON schema type
* fix(editor): make JSON schema path required
* fix(editor): using JSON schema bracket notation for object props to handle exceptional keys
* fix(editor): reorder JSON schema generator function args
* fix(editor): WIP json schema view
* fix(editor): formatting fix
* fix(editor): WIP json schema viewer
* fix(editor): fix schema generator and add deep merge
* fix(editor): WIP update json schema view components
* fix(editor): extend valid date checking
* fix(editor): WIP improving JSON schema view
* chore(editor): code formatting
* feat(editor): WIP Json schema view mapping + animations
* feat(editor): WIP update mergeDeep
* feat(editor): adding first item of json data to the end once more to get sample data from the first item
* feat(editor): adding first item of json data to the end once more to get sample data from the first item
* fix(editor): improving draggable design
* fix(editor): move util functions to their correct place after merge conflict
* fix(editor): move some type guards
* fix(editor): move some type guards
* fix(editor): change import path in unit test
* fix(editor): import missing interface
* fix(editor): remove unused functions and parts from json schema generation
* feat(editor): Add telemetry calls to JSON schema mapping (#4695)
* feat(editor): WIP JSON schema telemetry call
* feat(editor): make telemetry usable outside of Vue component context
* chore(editor): remove unused variable
* Merge branch 'feature/json-schema-view' of github.com:n8n-io/n8n into n8n-5410-add-telemetry-calls
# Conflicts:
# packages/editor-ui/src/components/RunDataJsonSchema.vue
* fix(editor): VUE typing for telemetry
* fix(editor): enable PostHog feature flag
* fix(editor): Schema design review (#4740)
* refactor(editor): rename JsonSchema to Schema
* fix(editor): schema component name
* fix(editor): schema pill style
* fix(editor): schema type date as string
* fix(editor): schema styles (support long text + firefox)
* fix(editor): schema truncate text if it's too long
* fix(editor): schema types
* fix(editor): droppable styles
* fix(editor): schema component props
* fix(editor): fix draggable pill styles
* fix(editor): schema view styles
* fix(editor): schema mapping tooltip
* fix(editor): schema mapping styles
* fix(editor): mapping styles
* fix(editor): empty schema case
* fix(editor): delay mapping tooltip
* test(editor): add schema view snapshot test
* fix(editor): schema empty string
* fix(editor): schema string without space
* fix(editor): update schema test snapshot
* fix(editor): applying review comments
* fix(editor): make n8nExternalHooks optional
* fix(editor): remove TODO comment
Co-authored-by: Milorad FIlipović <milorad@n8n.io>
* ✨ 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`
* ✨ 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
* fix(editor): update `vue-json-pretty` package
* fix(editor): JSON view show string numbers and null properly
* fix(editor): testing if RunDataJson.vue display the values according to its type
* chore(editor): resolve package-lock.json conflict
* fix(editor): using @pinia/testing library to mock pinia store
* chore: fix package-lock.json after merge conflicts
* ✨ 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, fi xing 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
* 👌 Addressing PR review comments
* 👌 Addressing new PR comments
* 👌 Updating invite id logic in signup view
* fix(editor): limiting columns in table view
* fix(editor): adding ghost table column with tooltip to table view
* fix(editor): limit columns to 40
* fix(editor): show table columns if it doesn't exceed the limit
* fix(editor): rolling back globalLinkActions changes
* fix(editor): using i18n tag for having cleaner event handling
* fix(editor): emphasizing magic variable
* fix(editor): removing unused prop
* feature: block UI in NDV when workflow is listening to events
* feature: hide stop listening button in parameters pane and show stop listening button in input pane for webhook
* feature: create block UI design system component
* fix: add back accidentally removed prop
* fix(editor): extend node settings event listener button functionality
* refactor(editor): using composition API in BlockUi component
* feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node (#4108)
* feat(ExecuteWorkflowTrigger node): Implement ExecuteWorkflowTrigger node
* feat(editor): Do not show duplicate button if canvas contains `maxNodes` amount of nodes
* feat(ManualTrigger node): Implement ManualTrigger node (#4110)
* feat(ManualTrigger node): Implement ManualTrigger node
* 📝 Remove generics doc items from ManualTrigger node
* feat(editor-ui): Trigger tab redesign (#4150)
* 🚧 Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory
* 🚧 Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations
* ✨ Implement MainPanel background scrim
* ♻️ Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType`
* 🐛 Fix SlideTransition for all the NodeCreato panels
* 💄 Fix cursos for CategoryItem and NodeItem
* 🐛 Make sure ALL_NODE_FILTER is always set when MainPanel is mounted
* 🎨 Address PR comments
* label: Use Array type for CategorizedItems props
* 🏷️ Add proper types for Vue props
* 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel
* 🎨 Use kebab case for main-panel and icon component
* 🏷️ Improve types
* feat(editor-ui): Redesign search input inside node creator panel (#4204)
* 🚧 Begin with TriggerPanel implementation, add Other Trigger Nodes subcategory
* 🚧 Extracted categorized categories/subcategory/nodes rendering into its own component — CategorizedItems, removed SubcategoryPanel, added translations
* ✨ Implement MainPanel background scrim
* ♻️ Move `categoriesWithNodes`, 'visibleNodeTypes` and 'categorizedItems` to store, implemented dynamic categories count based on `selectedType`
* 🐛 Fix SlideTransition for all the NodeCreato panels
* 💄 Fix cursos for CategoryItem and NodeItem
* 🐛 Make sure ALL_NODE_FILTER is always set when MainPanel is mounted
* 🎨 Address PR comments
* label: Use Array type for CategorizedItems props
* 🏷️ Add proper types for Vue props
* 🎨 Use standard component registration for CategorizedItems inside TriggerHelperPanel
* ✨ Redesign search input and unify usage of categorized items
* 🏷️ Use lowercase "Boolean" as `isSearchVisible` computed return type
* 🔥 Remove useless emit
* ✨ Implement no result view based on subcategory, minor fixes
* 🎨 Remove unused properties
* feat(node-email): Change EmailReadImap display name and name (#4239)
* feat(editor-ui): Implement "Choose a Triger" action and related behaviour (#4226)
* ✨ Implement "Choose a Triger" action and related behaviour
* 🔇 Lint fix
* ♻️ Remove PlaceholderTrigger node, add a button instead
* 🎨 Merge onMouseEnter and onMouseLeave to a single function
* 💡 Add comment
* 🔥 Remove PlaceholderNode registration
* 🎨 Rename TriggerPlaceholderButton to CanvasAddButton
* ✨ Add method to unregister custom action and rework CanvasAddButton centering logic
* 🎨 Run `setRecenteredCanvasAddButtonPosition` on `CanvasAddButton` mount
* fix(editor): Fix selecting of node from node-creator panel by clicking
* 🔀 Merge fixes
* fix(editor): Show execute workflow trigger instead of workflow trigger in the trigger helper panel
* feat(editor): Fix node creator panel slide transition (#4261)
* fix(editor): Fix node creator panel slide-in/slide-out transitions
* 🎨 Fix naming
* 🎨 Use kebab-case for transition component name
* feat(editor): Disable execution and show notice when user tries to run workflow without enabled triggers
* fix(editor): Address first batch of new WF experience review (#4279)
* fix(editor): Fix first batch of review items
* bug(editor): Fix nodeview canvas add button centering
* 🔇 Fix linter errors
* bug(ManualTrigger Node): Fix manual trigger node execution
* fix(editor): Do not show canvas add button in execution or demo mode and prevent clicking if creator is open
* fix(editor): do not show pin data tooltip for manual trigger node
* fix(editor): do not use nodeViewOffset on zoomToFit
* 💄 Add margin for last node creator item and set font-weight to 700 for category title
* ✨ Position welcome note next to the added trigger node
* 🐛 Remve always true welcome note
* feat(editor): Minor UI and UX tweaks (#4328)
* 💄 Make top viewport buttons less prominent
* ✨ Allow user to switch to all tabs if it contains filter results, move nodecreator state props to its own module
* 🔇 Fix linting errors
* 🔇 Fix linting errors
* 🔇 Fix linting errors
* chore(build): Ping Turbo version to 1.5.5
* 💄 Minor traigger panel and node view style changes
* 💬 Update display name of execute workflow trigger
* feat(core, editor): Update subworkflow execution logic (#4269)
* ✨ Implement `findWorkflowStart`
* ⚡ Extend `WorkflowOperationError`
* ⚡ Add `WorkflowOperationError` to toast
* 📘 Extend interface
* ✨ Add `subworkflowExecutionError` to store
* ✨ Create `SubworkflowOperationError`
* ⚡ Render subworkflow error as node error
* 🚚 Move subworkflow start validation to `cli`
* ⚡ Reset subworkflow execution error state
* 🔥 Remove unused import
* ⚡ Adjust CLI commands
* 🔥 Remove unneeded check
* 🔥 Remove stray log
* ⚡ Simplify syntax
* ⚡ Sort in case both Start and EWT present
* ♻️ Address Omar's feedback
* 🔥 Remove unneeded lint exception
* ✏️ Fix copy
* 👕 Fix lint
* fix: moved find start node function to catchable place
Co-authored-by: Omar Ajoue <krynble@gmail.com>
* 💄 Change ExecuteWorkflow node to primary
* ✨ Allow user to navigate to all tab if it contains search results
* 🐛 Fixed canvas control button while in demo, disable workflow activation for non-activavle nodes and revert zoomToFit bottom offset
* :fix: Do not chow request text if there's results
* 💬 Update noResults text
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
* refactor(editor-ui): update 'vue-json-pretty' and adjust component to preserve same behaviour (#4152)
* fix(editor-ui): export interface to solve 'TS4082: Default export of the module has or is using private name' error temporarily
* refactor(editor-ui): update 'vue-json-pretty' and adjust component to preserve same behaviour
* refactor(editor-ui): move json data view into its own component (#4158)
* refactor(editor-ui): move json data view into its own component
* fix(editor-ui): make JSON data component work again
* fix(editor-ui): JSON data component type issues
* fix(editor-ui): JSON data component prop 'inputData'
* refactor(editor-ui): rename helper function
* fix(editor-ui): add declaration to `vue-json-pretty` component
* refactor(editor-ui): JSON mapping move more logic to new component
* refactor(editor-ui): some cleanup in JSON mapping component
* refactor(editor-ui): changing key mapping translation
* refactor(editor-ui): add basic drag'n'drop functionality to JSON view
* refactor(editor-ui): moving JSON view actions into separate components
* fix(editor-ui): JSON view action copy default selected path
* fix(editor-ui): refactor draggable to play nicer with other (3rd party) components
* fix(editor-ui): improve draggable performance
* fix(editor-ui): add disable user selection class to body
* fix(editor-ui): reduce click handler cognitive load in JSON view copy actions
* fix(editor-ui): JSON view mapped path
* fix(editor-ui): remove unnecessary wrapper around RunDataTable.vue
* fix(editor-ui): respect input node distance when json parameter path is copied
* fix(editor-ui): JSON mapping property highlight
* fix(editor-ui): block event only on mousemove for draggable to not select content
* refactor(editor-ui): fixing prop types and organising imports
* fix(editor-ui): JSON view use double quotes where appropriate
* fix(editor-ui): fix new package additions after merge conflict
* fix(editor-ui): fix package update after merge conflict
* fix(editor-ui): JSON view prop names text break
* fix(editor-ui): use kebab-case name for component
* fix(editor-ui): calling convertPath on draggable node path
* feat(editor-ui): add mapping discoverability tooltip to mappable inputs (#4227)
* refactor(editor-ui): move json data view into its own component
* fix(editor-ui): make JSON data component work again
* fix(editor-ui): JSON data component type issues
* fix(editor-ui): JSON data component prop 'inputData'
* refactor(editor-ui): rename helper function
* fix(editor-ui): add declaration to `vue-json-pretty` component
* refactor(editor-ui): JSON mapping move more logic to new component
* refactor(editor-ui): some cleanup in JSON mapping component
* refactor(editor-ui): changing key mapping translation
* refactor(editor-ui): add basic drag'n'drop functionality to JSON view
* refactor(editor-ui): moving JSON view actions into separate components
* fix(editor-ui): JSON view action copy default selected path
* fix(editor-ui): refactor draggable to play nicer with other (3rd party) components
* fix(editor-ui): improve draggable performance
* fix(editor-ui): add disable user selection class to body
* fix(editor-ui): reduce click handler cognitive load in JSON view copy actions
* fix(editor-ui): JSON view mapped path
* fix(editor-ui): remove unnecessary wrapper around RunDataTable.vue
* fix(editor-ui): respect input node distance when json parameter path is copied
* fix(editor-ui): JSON mapping property highlight
* fix(editor-ui): block event only on mousemove for draggable to not select content
* refactor(editor-ui): fixing prop types and organising imports
* fix(editor-ui): JSON view use double quotes where appropriate
* fix(editor-ui): fix new package additions after merge conflict
* fix(editor-ui): fix package update after merge conflict
* fix(editor-ui): JSON view prop names text break
* fix(editor-ui): update helper after merge conflict
* refactor(editor-ui): cleanup RunaDataTable tooltips
* refactor(editor-ui): add temporary static tooltip to input with mapping
* fix(editor-ui): input mapping tooltip proper input name
* fix(editor-ui): show input mapping tooltip when conditions are met
* fix(editor-ui): show different input mapping tooltip for different view types (table, json)
* fix(editor-ui): drop lodash isEmpty
* fix(editor-ui): using and keeping only getter function
* fix(editor-ui): check `INodeExecutionData[]` array emptyness (still needs some improvement)
* feat(editor-ui): add telemetry calls to data mapping (#4250)
* fix(editor-ui): add types package for jsonpath
* fix(editor-ui): JSON view drag'n'drop telemetry call
* fix(editor-ui): add data mapping tooltip close telemetry to parameter input
* fix(editor-ui): execute previous node tooltip linebreak
* fix(editor-ui): input data mapping tooltip show-hide logic
* fix(editor-ui): input data mapping tooltip position
* fix(editor-ui): using a placeholder gif in mapping discoverability tooltip
* refactor(design-system): adding optional configurable buttons to tooltip (#4260)
* refactor(design-system): unbreaking wrapper around element ui tooltip
* fix(design-system): update test snapshot
* refactor(design-system): adding buttons to tooltip
* fix(design-system): update test snapshot
* fix(design-system): change tooltip props and some cleanup
* fix(design-system): update test snapshot
* chore: fix package lock file after merge
* fix(editor-ui): modifications according to Max's review (#4273)
* fix(editor-ui): modifications according to Max's review
* fix(editor-ui): JSON prop names should not be written bold
* fix(editor-ui): use proper animated gif in JSON data mapping discoverability tooltip
* 🎉 starting feature development
* ✨ sharing/unsharing a credential (#3601)
* 🎉 initial design
* ✨ sharing/unsharing of credentials
* ✅ add tests for EE credentials controller
* 💪 implement review comments
* 🛠 refactor agent creation and credential role locking
* 👕 linting adjustments (#3691)
* 👕 Adjust rule `naming-convention`
* 👕 Fix `naming-convention` config value
* 👕 Disregard casing for EE-prefixed vars
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
* 🛠 refactor authAgents in tests (#3725)
* 🛠 refactor authAgent
* 🛠 refactor authAgent
* 🛠 refactor authAgent
* 🛠 refactor authAgent
* 👕 fix ts issue
* 🐘 add migration for mysql and postgres + add AuthAgent type
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
* ⚡️ refactor existing credentials routes (#3672)
* 🎉 initial design
* ✨ sharing/unsharing of credentials
* ♻️ split credential update route into controller and service
* 🔥 remove credentials test that is no longer applicable
* ♻️ split credential creation route into controller and service
* ♻️ split single credential get
* ♻️ split delete credentials route
* ♻️ split get all credentials route
* 🔥 remove unused imports in credentials contoller
* 🔥 remove console.log
* :refactor: changes to credentials controller and service from review
- removed credentials from service function names
- made relations list optional
- put allowGlobalOwner in options objects
- check length of relations array so join doesn't happen if empty
- update some comments to further explain rationale
- remove unneeded `Object.assign`
- remove non-null assertion from test
* ♻️ move filtered credentials selected fields to variable
* ♻️ remove unneeded merges in credentials service
Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com>
Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com>
* ✅ fix test
* 🐛 fix imports
* 👕 fix lint issue
* User Management: switch over to decorators to define routes (#3827)
* Add permissions details to credentials for User Management (#3863)
* ⚡ Open `GET /users`
* ⚡ Add permissions to cred service
* 🚚 Rename method
* ⚡ Refactor cred controller
* 🧪 Adjust test
* ✏️ Improve comment
* ✏️ Improve another comment
* ⚡ Account for multiple sharings
* 🐛 Fix access when user is editor
* 📘 Expand interface
* 📘 Relocate types
* 📘 Exempt cred entity with service-injected fields
* 📘 Adjust interface
* ♻️ Add permissions only in `GET /credentials`
* 🧪 Add expectations for `ownedBy`
* 🧪 Add sharing details test
* 🧪 Make `ownedBy` checks more granular
* 📘 Adjust interface
* 🚚 Rename cred getter
* ♻️ Refactor cred getter
* 🧪 Expand tests
* ♻️ Refactor to use guard
* 👕 Remove unneeded lint exception
* 🔥 Remove unneeded relation
* 🚚 Move relation to `GET /credentials/:id`
* 📘 Consolidate typings
* 🎨 Add multiline for readability
* 🔥 Remove unneeded type
* ✏️ Clarity comment
* ✏️ Make comments consistent
* 👕 Add exception to fix build
* 👕 Add more lint exceptions to fix build
* 🐛 Check for non-owner
* 📘 Improve typings
* 🧪 Temporarily skip tests
* 🔥 Remove `@ts-ignore`
* 👕 Move lint exceptions
* ♻️ Refactor cred service and controller
* ⚡ Simplify check
* ✏️ adjust naming to experimental
* ⚡️ add credentialsSharing flag to settings
* 🛠 add helper to check if UM is also enabled as dependency for CredentialsSharing
* 👕 fix lint error
* 🐘 change name of credential role
* 🚧 WIP batch sharing
* 🚧 WIP use put for sharing
* ✅ add tests for batch sharing, 🛠 implement review suggestions
* ✅ expand credential sharing tests for User Management (#3931)
* 🧪 Expand cred sharing tests
* ⚡ Add recently added flags
* ✅ fix and adjust tests for /credentials
Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com>
* ✨ User management v2 Front End (#3795)
* feat: Added responsive generic page view layout.
* feat: Added empty state.
* feat: Added credentials view empty state.
* test: Added unit tests for N8nActionBox
* feat: Added credentials list initial design.
* feat: Added credential actions. Started working on filters.
* feat: Updated InfoTip markup, added tests and changed stories to typescript.
* feat: Added credentials filtering by type. Added support for apply/reset filters.
* feat: Added credential sharing user select and user list. Added paywall component.
* feat: Updated credentials view permissions.
* feat: Added support for temporary sharing config for unsaved credentials.
* test: Fixed broken snapshots.
* feat: Added overflow styles to page-view-layout list.
* feat: Handled sharee specific views.
* feat: Integration between FE and BE to support real-world credential sharing scenario.
* feat: Added front end permissions table.
* feat: Refactored credential sharing flow. Updated design elements.
* feat: Added margin and padding auto spacer utilities.
* feat: Rehauled permissions to support instanceOwner role and action inheritance.
* feat: Updated credentials view to apply filters automatically.
* feat: Removed apply filters button and added active button state.
* test: Updated component snapshots.
* refactor: Renamed ResourceSharee to ResourceReader.
* feat: Credential sharing error handling, permissions improvement.
* feat: Updated permissions and error handling.
* chore: Removed console.log.
* 🛠 refactor enabling of credentialsSharing
* feat: Removed owner menu selector from credentials when sharing is disabled.
* refactor: Moved EE features into ee store module file.
* 🛠 add sharing info to GET credentials/:id
* fix: Fixed initial credential data loading for sharing.
* chore: Removed console.log.
* 🐛 owner can fetch any credential
* 🛠 refactor users test
* 👕 fix build type issue
* fix: Removed owner tag when credential sharing is disabled. Fixed small reactivity issue.
* chore: Removed console.log.
* 🚧 separate fetching credentials between EE and open
* fix: Fixed empty dropdown in users list.
* fix: Fixed error message and initialization when credential gets unshared.
* ✅ add tests for fetching single credential
* Revert decorators based controllers
* ⚡️ adjust credentials test route to also allow testing for sharees (#3999)
* ⚡️ pull data if user is sharee
* fix: Removed sharedWith and ownedBy from credentialData on testing credentials.
Co-authored-by: Alex Grozav <alex@grozav.com>
* 📈 add BE analytics
* 💪 improve credential test
* ⚡️ adjust tracking properties
* ⚡️ removed roles from tracking
* 🐛 fix build by removing imports
* 🐛 fix missed merge conflict
* feat: User management P2 Front End bug bash and improvements (#4014)
* fix: Fixed type select size after reopening dropdown.
* fix: Fixed template cards.
* fix: Fixed card content size and copy input.
* fix: Fixed horizontal overflow.
* fix: Hiding el-tags scrollbar in select.
* fix: Added fallback credential icon. Added oAuth credential owner check.
* feat: Added disabled state to user select.
* feat: Added fallback scenario for non-existent credential types.
* feat: Adjusted credentials empty state to show that there are shared credentials.
* fix: Fixed time title.
* feat: Added actionable empty state when shared credentials are present.
* fix: Made action box x padding smaller
* feat: Repositioned owner tag for credential card.
* feat: Updated message box styling to use n8n css variables.
* feat: Added confirmation for deleting sharee.
* fix: Fixed deleted credential types. Fixed select in dropdown bug.
* fix: Various code improvements. Addressed PR review comments.
* fix: Fixed credential deletion errors.
* fix: Various code quality improvements.
* feat: N8N-4531 update cloud coming soon features (#4025)
* feat: Showing different upcoming feature messages and format for cloud.
* fix: Changed url format.
* fix: Updated how cloud deployment is determined.
* feat: N8N-4527 implementing credential sharing FE telemetry (#4023)
* feat: Added credential sharing telemetry.
* chore: Renamed computed function for consistency.
* refactor: Simplified subview telemetry sending.
* fix: Changed to callDebounced() helper.
* 📧 update email text
* fix: Adjusted feature coming soon margin.
* chore: Fixed type and line height for delete sharee confirmation modal.
* refactor(editor-ui): Update telemetry (#4040)
* 🔥 Remove `identify` from BE
* ⚡ Add `versionCli`
* ⚡ Add node creator ignore input
* ⚡ Move obfuscators to editor-ui
* ⚡ Refactor `ph-no-capture`
* ⚡ Pass `user_id` to manual exec props
* 🚚 Relocate class in `SettingsApiView`
* ⚡ Add `userId` to BE PH `identify` call
* ⏪ Revert "⚡ Add `userId` to BE PH `identify` call"
This reverts commit 895aaa45e5.
* Revert "⏪ Revert "⚡ Add `userId` to BE PH `identify` call""
This reverts commit b86a098c20.
* 🐛 Fix `Promise` handling in `track()` call
* ⏪ Restore `Db.collections` call
* ⚡ Set up PH payload to mirror RS
* 🔥 Remove excess `userId`
* 📘 Remove `userId` from interface
* 🔥 Remove unused ref and method
* fix: Fixed bug causing instanceOwner to become credential owner on update. (#4079)
* 🐛 fix test for credential shared with member
* 👕 fix lint issues
* delete conflicting migration. this data is already seeded in CreateUserManagement
* feat: Expand obfuscation to User Management credential sharing (#4070)
⚡ Expand obfuscation
* feat: Added credential sharing infotip for instance owner.
* bring back the migration. add a check to avoid conflicts on inserts
* fix(cli): use a non-env config flag to detect of enterprise features are enabled (#4105)
* chore: Changed ampersand to and in translation.
* refactor(telemetry): Obfuscate code and JSON editors (#4118)
⚡ Obfuscate code and JSON editors
* feat(editor): improve design and functionality of coming soon features (#4116)
* feat: Improved coming soon feature design and functionality.
* style: Removed empty line.
* chore: Removed unused translation.
* fix: fix telemetry for credential creates and updates (#4125)
fix telemetry for credential creates and updates
* feat: Display errors due to missing credentials in the correct node (#4124)
feat: Display errors due to invalid credentials in the correct node when missing permissions
* fix: remove duplicate header for coming soon features in cloud deployment
* telemetry: fix the payload for `User viewed credential tab`
* telemetry: add credential_id to 'User selected credential from node modal'
* feat: update empty states for coming soon features
* Update ActionBox.spec.ts.snap
* replace UserSharingsDetails with a subset of User properties
* rename the CreateCredentialsEditorRole to CreateCredentialsUserRole
* move IUser to the workflow package
* use IUser in the frontend as well
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
Co-authored-by: Valya <68596159+valya@users.noreply.github.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <netroy@users.noreply.github.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
* refactor(editor): removing output error reporting from input panel
* refactor(editor): input panel error notification with linking back to the errored node
* fix(editor): switching to the correct node after backlinking from the error in a further node
* fix(editor): input pane error message font size and translation keys
* fix(editor): output error message layout
* fix(editor-ui): update input panel node error title translation
* fix(editor-ui): achieve proper update when changing node from input error link
* fix(editor-ui): adding local utility class to not break output error layout
* update white color
* update white color
* update more whites
* update color
* update curr running
* update text color #555
* update white color
* set search bar colors
* update colors
* update node executing
* update text colors
* update light color
* update theme
* update theme
* update overlays carousel
* update theme vars
* add dark theme tokens
* update text
* update table colors
* fix conflict
* update colors