n8n
Version:
n8n Workflow Automation Tool
57 lines (56 loc) • 4.13 kB
TypeScript
import { type CreateSecretsProviderConnectionDto, type ReloadSecretProviderConnectionResponse, type SecretCompletionsResponse, type SecretProviderConnection, type SecretProviderConnectionListItem, type TestSecretProviderConnectionResponse } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import type { SecretsProviderAccessRole, SecretsProviderConnection } from '@n8n/db';
import { ProjectSecretsProviderAccessRepository, SecretsProviderConnectionRepository } from '@n8n/db';
import { Cipher } from 'n8n-core';
import type { IDataObject } from 'n8n-workflow';
import { ExternalSecretsProviderRegistry } from './provider-registry.service';
import { CredentialDependencyService } from '../../credentials/credential-dependency.service';
import { EventService } from '../../events/event.service';
import { ExternalSecretsManager } from '../../modules/external-secrets.ee/external-secrets-manager.ee';
import { RedactionService } from '../../modules/external-secrets.ee/redaction.service.ee';
export declare class SecretsProvidersConnectionsService {
private readonly logger;
private readonly repository;
private readonly projectAccessRepository;
private readonly credentialDependencyService;
private readonly providerRegistry;
private readonly cipher;
private readonly externalSecretsManager;
private readonly redactionService;
private readonly eventService;
constructor(logger: Logger, repository: SecretsProviderConnectionRepository, projectAccessRepository: ProjectSecretsProviderAccessRepository, credentialDependencyService: CredentialDependencyService, providerRegistry: ExternalSecretsProviderRegistry, cipher: Cipher, externalSecretsManager: ExternalSecretsManager, redactionService: RedactionService, eventService: EventService);
createConnection(proposedConnection: CreateSecretsProviderConnectionDto, userId: string, projectRole: SecretsProviderAccessRole, userRole?: string): Promise<SecretsProviderConnection>;
updateProjectConnection(providerKey: string, updates: {
type?: string;
settings?: IDataObject;
isEnabled?: boolean;
}, userId: string, userRole?: string): Promise<SecretsProviderConnection>;
updateGlobalConnection(providerKey: string, updates: {
type?: string;
projectIds?: string[];
settings?: IDataObject;
isEnabled?: boolean;
}, userId: string, userRole?: string): Promise<SecretsProviderConnection>;
private applyConnectionUpdates;
private syncAndEmitUpdate;
deleteConnection(providerKey: string, userId: string, userRole?: string): Promise<SecretsProviderConnection>;
private findConnectionOrFail;
getConnection(providerKey: string): Promise<SecretsProviderConnection>;
listConnections(): Promise<SecretsProviderConnection[]>;
getGlobalCompletions(): Promise<SecretsProviderConnection[]>;
getProjectCompletions(projectId: string): Promise<SecretsProviderConnection[]>;
listConnectionsForProject(projectId: string): Promise<SecretsProviderConnection[]>;
toSecretCompletionsResponse(connections: SecretsProviderConnection[]): SecretCompletionsResponse;
toPublicConnectionListItem(connection: SecretsProviderConnection): SecretProviderConnectionListItem;
toPublicConnection(connection: SecretsProviderConnection): Promise<SecretProviderConnection>;
testConnection(providerKey: string, userId: string, userRole?: string): Promise<TestSecretProviderConnectionResponse>;
reloadConnectionSecrets(providerKey: string, userId: string, userRole?: string): Promise<ReloadSecretProviderConnectionResponse>;
private extractProjectInfo;
cleanupConnectionsForProjectDeletion(projectId: string): Promise<void>;
private encryptConnectionSettings;
getConnectionForProject(providerKey: string, projectId: string): Promise<SecretsProviderConnection>;
getConnectionAccessibleFromProject(providerKey: string, projectId: string): Promise<SecretsProviderConnection>;
deleteConnectionForProject(providerKey: string, projectId: string): Promise<SecretsProviderConnection>;
private decryptConnectionSettings;
}