UNPKG

n8n

Version:

n8n Workflow Automation Tool

80 lines (79 loc) 3.87 kB
import { Logger } from '@n8n/backend-common'; import { SecretsProviderConnectionRepository } from '@n8n/db'; import { Cipher, type IExternalSecretsManager } from 'n8n-core'; import { type IDataObject, type INodeProperties } from 'n8n-workflow'; import { EventService } from '../../events/event.service'; import { Publisher } from '../../scaling/pubsub/publisher.service'; import { ExternalSecretsProviders } from './external-secrets-providers.ee'; import { ExternalSecretsConfig } from './external-secrets.config'; import { ExternalSecretsProviderLifecycle } from './provider-lifecycle.service'; import { ExternalSecretsProviderRegistry } from './provider-registry.service'; import { ExternalSecretsRetryManager } from './retry-manager.service'; import { ExternalSecretsSecretsCache } from './secrets-cache.service'; import { ExternalSecretsSettingsStore } from './settings-store.service'; import type { SecretsProvider, SecretsProviderSettings } from './types'; export declare class ExternalSecretsManager implements IExternalSecretsManager { private readonly logger; private readonly config; private readonly providersFactory; private readonly eventService; private readonly publisher; private readonly settingsStore; private readonly providerRegistry; private readonly providerLifecycle; private readonly retryManager; private readonly secretsCache; private readonly secretsProviderConnectionRepository; private readonly cipher; initialized: boolean; private refreshInterval?; private initializingPromise?; constructor(logger: Logger, config: ExternalSecretsConfig, providersFactory: ExternalSecretsProviders, eventService: EventService, publisher: Publisher, settingsStore: ExternalSecretsSettingsStore, providerRegistry: ExternalSecretsProviderRegistry, providerLifecycle: ExternalSecretsProviderLifecycle, retryManager: ExternalSecretsRetryManager, secretsCache: ExternalSecretsSecretsCache, secretsProviderConnectionRepository: SecretsProviderConnectionRepository, cipher: Cipher); init(): Promise<void>; shutdown(): void; getProvider(provider: string): SecretsProvider | undefined; getProviderProperties(providerType: string): INodeProperties[]; hasProvider(provider: string): boolean; getProviderNames(): string[]; getProvidersWithSettings(): Array<{ provider: SecretsProvider; settings: SecretsProviderSettings; }>; getProviderWithSettings(provider: string): { provider: SecretsProvider; settings: SecretsProviderSettings; }; syncProviderConnection(providerKey: string): Promise<void>; updateProvider(providerKey: string): Promise<void>; getSecret(provider: string, name: string): unknown; hasSecret(provider: string, name: string): boolean; getSecretNames(provider: string): string[]; getAllSecretNames(): Record<string, string[]>; setProviderSettings(provider: string, settings: IDataObject, userId?: string): Promise<void>; setProviderConnected(provider: string, connected: boolean): Promise<void>; testProviderSettings(provider: string, data: IDataObject): Promise<{ readonly success: false; readonly testState: "error"; } | { success: boolean; testState: string; error: string | undefined; } | { success: boolean; testState: "connected" | "tested"; error?: undefined; }>; reloadAllProviders(): Promise<void>; private reloadProvidersFromConnectionsRepo; private setupProvider; private connectProvider; private reloadProvider; private tearDownProviderConnection; private decryptSettings; updateSecrets(): Promise<void>; private startSecretsRefresh; private stopSecretsRefresh; private broadcastReload; private trackProviderSave; private getCachedSettings; }