mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2026-09-05 01:56:33 +02:00
refactor(core): Simplify ExternalSecretsProxy setup and move it to core (#16021)
This commit is contained in:
+9
-13
@@ -1,24 +1,20 @@
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { LoggerProxy } from 'n8n-workflow';
|
||||
import type {
|
||||
IDataObject,
|
||||
IRunExecutionData,
|
||||
IWorkflowExecuteAdditionalData,
|
||||
SecretsHelpersBase,
|
||||
} from 'n8n-workflow';
|
||||
import type { IDataObject, IRunExecutionData, IWorkflowExecuteAdditionalData } from 'n8n-workflow';
|
||||
|
||||
import { PLACEHOLDER_EMPTY_EXECUTION_ID } from '@/constants';
|
||||
import type { ExternalSecretsProxy } from '@/execution-engine/external-secrets-proxy';
|
||||
|
||||
import { getAdditionalKeys } from '../get-additional-keys';
|
||||
|
||||
describe('getAdditionalKeys', () => {
|
||||
const secretsHelpers = mock<SecretsHelpersBase>();
|
||||
const externalSecretsProxy = mock<ExternalSecretsProxy>();
|
||||
const additionalData = mock<IWorkflowExecuteAdditionalData>({
|
||||
executionId: '123',
|
||||
webhookWaitingBaseUrl: 'https://webhook.test',
|
||||
formWaitingBaseUrl: 'https://form.test',
|
||||
variables: { testVar: 'value' },
|
||||
secretsHelpers,
|
||||
externalSecretsProxy,
|
||||
});
|
||||
|
||||
const runExecutionData = mock<IRunExecutionData>({
|
||||
@@ -30,11 +26,11 @@ describe('getAdditionalKeys', () => {
|
||||
|
||||
beforeAll(() => {
|
||||
LoggerProxy.init(mock());
|
||||
secretsHelpers.hasProvider.mockReturnValue(true);
|
||||
secretsHelpers.hasSecret.mockReturnValue(true);
|
||||
secretsHelpers.getSecret.mockReturnValue('secret-value');
|
||||
secretsHelpers.listSecrets.mockReturnValue(['secret1']);
|
||||
secretsHelpers.listProviders.mockReturnValue(['provider1']);
|
||||
externalSecretsProxy.hasProvider.mockReturnValue(true);
|
||||
externalSecretsProxy.hasSecret.mockReturnValue(true);
|
||||
externalSecretsProxy.getSecret.mockReturnValue('secret-value');
|
||||
externalSecretsProxy.listSecrets.mockReturnValue(['secret1']);
|
||||
externalSecretsProxy.listProviders.mockReturnValue(['provider1']);
|
||||
});
|
||||
|
||||
it('should use placeholder execution ID when none provided', () => {
|
||||
|
||||
+6
-6
@@ -23,7 +23,7 @@ function buildSecretsValueProxy(value: IDataObject): unknown {
|
||||
}
|
||||
|
||||
export function getSecretsProxy(additionalData: IWorkflowExecuteAdditionalData): IDataObject {
|
||||
const secretsHelpers = additionalData.secretsHelpers;
|
||||
const { externalSecretsProxy } = additionalData;
|
||||
return new Proxy(
|
||||
{},
|
||||
{
|
||||
@@ -31,7 +31,7 @@ export function getSecretsProxy(additionalData: IWorkflowExecuteAdditionalData):
|
||||
if (typeof providerName !== 'string') {
|
||||
return {};
|
||||
}
|
||||
if (secretsHelpers.hasProvider(providerName)) {
|
||||
if (externalSecretsProxy.hasProvider(providerName)) {
|
||||
return new Proxy(
|
||||
{},
|
||||
{
|
||||
@@ -39,13 +39,13 @@ export function getSecretsProxy(additionalData: IWorkflowExecuteAdditionalData):
|
||||
if (typeof secretName !== 'string') {
|
||||
return;
|
||||
}
|
||||
if (!secretsHelpers.hasSecret(providerName, secretName)) {
|
||||
if (!externalSecretsProxy.hasSecret(providerName, secretName)) {
|
||||
throw new ExpressionError('Could not load secrets', {
|
||||
description:
|
||||
'The credential in use tries to use secret from an external store that could not be found',
|
||||
});
|
||||
}
|
||||
const retValue = secretsHelpers.getSecret(providerName, secretName);
|
||||
const retValue = externalSecretsProxy.getSecret(providerName, secretName);
|
||||
if (typeof retValue === 'object' && retValue !== null) {
|
||||
return buildSecretsValueProxy(retValue as IDataObject);
|
||||
}
|
||||
@@ -55,7 +55,7 @@ export function getSecretsProxy(additionalData: IWorkflowExecuteAdditionalData):
|
||||
return false;
|
||||
},
|
||||
ownKeys() {
|
||||
return secretsHelpers.listSecrets(providerName);
|
||||
return externalSecretsProxy.listSecrets(providerName);
|
||||
},
|
||||
},
|
||||
);
|
||||
@@ -69,7 +69,7 @@ export function getSecretsProxy(additionalData: IWorkflowExecuteAdditionalData):
|
||||
return false;
|
||||
},
|
||||
ownKeys() {
|
||||
return secretsHelpers.listProviders();
|
||||
return externalSecretsProxy.listProviders();
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user