diff --git a/packages/cli/src/Interfaces.ts b/packages/cli/src/Interfaces.ts index 443bee6539..9718a39ffd 100644 --- a/packages/cli/src/Interfaces.ts +++ b/packages/cli/src/Interfaces.ts @@ -301,6 +301,9 @@ export interface IN8nUISettings { timezone: string; urlBaseWebhook: string; versionCli: string; + n8nMetadata?: { + [key: string]: string | number | undefined; + }; } export interface IPackageVersions { diff --git a/packages/editor-ui/src/Interface.ts b/packages/editor-ui/src/Interface.ts index 5e28745774..8f4151b08f 100644 --- a/packages/editor-ui/src/Interface.ts +++ b/packages/editor-ui/src/Interface.ts @@ -117,6 +117,10 @@ export interface INodeTypesMaxCount { }; } +export interface IExternalHooks { + run(eventName: string, metadata?: IDataObject): Promise; +} + export interface IRestApi { getActiveWorkflows(): Promise; getActivationError(id: string): Promise; @@ -406,6 +410,9 @@ export interface IN8nUISettings { }; urlBaseWebhook: string; versionCli: string; + n8nMetadata?: { + [key: string]: string | number | undefined; + }; } export interface IWorkflowSettings extends IWorkflowSettingsWorkflow { diff --git a/packages/editor-ui/src/components/CredentialsInput.vue b/packages/editor-ui/src/components/CredentialsInput.vue index 86104a5c3f..0da2b05adb 100644 --- a/packages/editor-ui/src/components/CredentialsInput.vue +++ b/packages/editor-ui/src/components/CredentialsInput.vue @@ -119,6 +119,7 @@ import Vue from 'vue'; import { copyPaste } from '@/components/mixins/copyPaste'; +import { externalHooks } from '@/components/mixins/externalHooks'; import { restApi } from '@/components/mixins/restApi'; import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { showMessage } from '@/components/mixins/showMessage'; @@ -147,6 +148,7 @@ import mixins from 'vue-typed-mixins'; export default mixins( copyPaste, + externalHooks, nodeHelpers, restApi, showMessage, @@ -336,6 +338,8 @@ export default mixins( this.$emit('credentialsCreated', {data: result, options: { closeDialog }}); + this.$externalHooks().run('credentials.create', { credentialTypeData: this.credentialTypeData }); + return result; }, async oAuthCredentialAuthorize () { diff --git a/packages/editor-ui/src/components/MainSidebar.vue b/packages/editor-ui/src/components/MainSidebar.vue index 8208cfdff9..2b6ae3e054 100644 --- a/packages/editor-ui/src/components/MainSidebar.vue +++ b/packages/editor-ui/src/components/MainSidebar.vue @@ -181,7 +181,6 @@ import { restApi } from '@/components/mixins/restApi'; import { showMessage } from '@/components/mixins/showMessage'; import { titleChange } from '@/components/mixins/titleChange'; import { workflowHelpers } from '@/components/mixins/workflowHelpers'; -import { workflowSave } from '@/components/mixins/workflowSave'; import { workflowRun } from '@/components/mixins/workflowRun'; import { saveAs } from 'file-saver'; @@ -195,7 +194,6 @@ export default mixins( titleChange, workflowHelpers, workflowRun, - workflowSave, ) .extend({ name: 'MainHeader', diff --git a/packages/editor-ui/src/components/WorkflowActivator.vue b/packages/editor-ui/src/components/WorkflowActivator.vue index 67fbaff7be..a3df33c045 100644 --- a/packages/editor-ui/src/components/WorkflowActivator.vue +++ b/packages/editor-ui/src/components/WorkflowActivator.vue @@ -22,6 +22,7 @@