feat: External Secrets storage for credentials (#6477)

Github issue / Community forum post (link here to close automatically):

---------

Co-authored-by: Romain Minaud <romain.minaud@gmail.com>
Co-authored-by: Valya Bullions <valya@n8n.io>
Co-authored-by: Csaba Tuncsik <csaba@n8n.io>
Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
Co-authored-by: Omar Ajoue <krynble@gmail.com>
This commit is contained in:
Alex Grozav
2023-08-25 11:33:46 +03:00
committed by GitHub
parent c833078c87
commit ed927d34b2
89 changed files with 4164 additions and 57 deletions

View File

@@ -4,6 +4,7 @@ import type {
IConnections,
ICredentialDataDecryptedObject,
ICredentialNodeAccess,
IDataObject,
INode,
INodeCredentialTestRequest,
IPinData,
@@ -14,7 +15,13 @@ import type {
import { IsBoolean, IsEmail, IsOptional, IsString, Length } from 'class-validator';
import { NoXss } from '@db/utils/customValidators';
import type { PublicUser, IExecutionDeleteFilter, IWorkflowDb } from '@/Interfaces';
import type {
PublicUser,
IExecutionDeleteFilter,
IWorkflowDb,
SecretsProvider,
SecretsProviderState,
} from '@/Interfaces';
import type { Role } from '@db/entities/Role';
import type { User } from '@db/entities/User';
import type { UserManagementMailer } from '@/UserManagement/email';
@@ -497,3 +504,25 @@ export declare namespace VariablesRequest {
type Update = AuthenticatedRequest<{ id: string }, {}, CreateUpdatePayload, {}>;
type Delete = Get;
}
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 }>;
}