From 47d9936fd40f808dbd730a14104f1f430881cc04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20G=C3=B3mez=20Morales?= Date: Fri, 12 Sep 2025 08:56:55 +0200 Subject: [PATCH] refactor(editor): Move externalSecrets.ee API to @n8n/rest-api-client package (#19404) --- packages/@n8n/api-types/src/index.ts | 8 +++++++ .../src/schemas/external-secrets.schema.ts | 22 +++++++++++++++++++ .../src/api/externalSecrets.ee.ts | 7 +++--- .../@n8n/rest-api-client/src/api/index.ts | 1 + .../src/stores/externalSecrets.ee.store.ts | 6 ++--- 5 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 packages/@n8n/api-types/src/schemas/external-secrets.schema.ts rename packages/frontend/{editor-ui => @n8n/rest-api-client}/src/api/externalSecrets.ee.ts (90%) diff --git a/packages/@n8n/api-types/src/index.ts b/packages/@n8n/api-types/src/index.ts index f27a87196e..6ab8e2ffaa 100644 --- a/packages/@n8n/api-types/src/index.ts +++ b/packages/@n8n/api-types/src/index.ts @@ -61,3 +61,11 @@ export type { DataTableFilter, DataTableFilterConditionType, } from './schemas/data-table-filter.schema'; + +export type { + ExternalSecretsProvider, + ExternalSecretsProviderSecret, + ExternalSecretsProviderData, + ExternalSecretsProviderProperty, + ExternalSecretsProviderState, +} from './schemas/external-secrets.schema'; diff --git a/packages/@n8n/api-types/src/schemas/external-secrets.schema.ts b/packages/@n8n/api-types/src/schemas/external-secrets.schema.ts new file mode 100644 index 0000000000..b6f5bd417e --- /dev/null +++ b/packages/@n8n/api-types/src/schemas/external-secrets.schema.ts @@ -0,0 +1,22 @@ +import type { NodeParameterValueType, INodeProperties } from 'n8n-workflow'; + +export interface ExternalSecretsProviderSecret { + key: string; +} + +export type ExternalSecretsProviderData = Record; + +export type ExternalSecretsProviderProperty = INodeProperties; + +export type ExternalSecretsProviderState = 'connected' | 'tested' | 'initializing' | 'error'; + +export interface ExternalSecretsProvider { + icon: string; + name: string; + displayName: string; + connected: boolean; + connectedAt: string | false; + state: ExternalSecretsProviderState; + data?: ExternalSecretsProviderData; + properties?: ExternalSecretsProviderProperty[]; +} diff --git a/packages/frontend/editor-ui/src/api/externalSecrets.ee.ts b/packages/frontend/@n8n/rest-api-client/src/api/externalSecrets.ee.ts similarity index 90% rename from packages/frontend/editor-ui/src/api/externalSecrets.ee.ts rename to packages/frontend/@n8n/rest-api-client/src/api/externalSecrets.ee.ts index 9b01310f1b..761a1f29a5 100644 --- a/packages/frontend/editor-ui/src/api/externalSecrets.ee.ts +++ b/packages/frontend/@n8n/rest-api-client/src/api/externalSecrets.ee.ts @@ -1,6 +1,7 @@ -import type { ExternalSecretsProvider } from '@/Interface'; -import type { IRestApiContext } from '@n8n/rest-api-client'; -import { makeRestApiRequest } from '@n8n/rest-api-client'; +import type { ExternalSecretsProvider } from '@n8n/api-types'; + +import type { IRestApiContext } from '../types'; +import { makeRestApiRequest } from '../utils'; export const getExternalSecrets = async ( context: IRestApiContext, diff --git a/packages/frontend/@n8n/rest-api-client/src/api/index.ts b/packages/frontend/@n8n/rest-api-client/src/api/index.ts index 1ad78fcccc..72370ec9db 100644 --- a/packages/frontend/@n8n/rest-api-client/src/api/index.ts +++ b/packages/frontend/@n8n/rest-api-client/src/api/index.ts @@ -4,6 +4,7 @@ export * from './communityNodes'; export * from './ctas'; export * from './eventbus.ee'; export * from './events'; +export * from './externalSecrets.ee'; export * from './ldap'; export * from './mfa'; export * from './nodeTypes'; diff --git a/packages/frontend/editor-ui/src/stores/externalSecrets.ee.store.ts b/packages/frontend/editor-ui/src/stores/externalSecrets.ee.store.ts index 036d561ca1..bc3a2dfc52 100644 --- a/packages/frontend/editor-ui/src/stores/externalSecrets.ee.store.ts +++ b/packages/frontend/editor-ui/src/stores/externalSecrets.ee.store.ts @@ -3,10 +3,10 @@ import { defineStore } from 'pinia'; import { EnterpriseEditionFeature } from '@/constants'; import { useRootStore } from '@n8n/stores/useRootStore'; import { useSettingsStore } from '@/stores/settings.store'; -import * as externalSecretsApi from '@/api/externalSecrets.ee'; -import { connectProvider } from '@/api/externalSecrets.ee'; +import * as externalSecretsApi from '@n8n/rest-api-client'; +import { connectProvider } from '@n8n/rest-api-client'; import { useRBACStore } from '@/stores/rbac.store'; -import type { ExternalSecretsProvider } from '@/Interface'; +import type { ExternalSecretsProvider } from '@n8n/api-types'; export const useExternalSecretsStore = defineStore('externalSecrets', () => { const rootStore = useRootStore();