UNPKG

n8n

Version:

n8n Workflow Automation Tool

63 lines (62 loc) 2.23 kB
import type { AuthenticatedRequest } from '@n8n/db'; import type { IDataObject, INodeProperties } from 'n8n-workflow'; export interface SecretsProviderSettings<T = IDataObject> { connected: boolean; connectedAt: Date | null; settings: T; } export interface ExternalSecretsSettings { [key: string]: SecretsProviderSettings; } export type SecretsProviderState = 'initializing' | 'initialized' | 'connecting' | 'connected' | 'error' | 'retrying'; interface StateTransition { from: SecretsProviderState; to: SecretsProviderState; at: Date; error?: Error; } export declare abstract class SecretsProvider { abstract displayName: string; abstract name: string; abstract properties: INodeProperties[]; abstract init(settings: SecretsProviderSettings): Promise<void>; abstract disconnect(): Promise<void>; abstract update(): Promise<void>; abstract test(): Promise<[boolean] | [boolean, string]>; abstract getSecret(name: string): unknown; abstract hasSecret(name: string): boolean; abstract getSecretNames(): string[]; state: SecretsProviderState; protected stateHistory: StateTransition[]; connect(): Promise<void>; protected abstract doConnect(): Promise<void>; setState(newState: SecretsProviderState, error?: Error): void; get hasEverBeenConnected(): boolean; get canPerformOperations(): boolean; } export declare namespace ExternalSecretsRequest { type GetProviderResponse = Pick<SecretsProvider, 'displayName' | 'name' | 'properties'> & { icon: string; connected: boolean; connectedAt: Date | null; state: SecretsProviderState; data: IDataObject; }; type GetProviders = AuthenticatedRequest; type GetProvider = AuthenticatedRequest<{ provider: string; }, GetProviderResponse>; type SetProviderSettings = AuthenticatedRequest<{ provider: string; }, {}, IDataObject>; type TestProviderSettings = SetProviderSettings; type SetProviderConnected = AuthenticatedRequest<{ provider: string; }, {}, { connected: boolean; }>; type UpdateProvider = AuthenticatedRequest<{ provider: string; }>; } export {};