From 9c561266ed56641015088560076211de678426da Mon Sep 17 00:00:00 2001 From: Scott Wilson Date: Fri, 17 Jan 2025 08:51:41 -0800 Subject: [PATCH] improvement: add secret key to aws parameter store integreation error message --- .../integration-sync-secret.ts | 48 ++++++++++++------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/backend/src/services/integration-auth/integration-sync-secret.ts b/backend/src/services/integration-auth/integration-sync-secret.ts index 123fc3c61..96e8ec598 100644 --- a/backend/src/services/integration-auth/integration-sync-secret.ts +++ b/backend/src/services/integration-auth/integration-sync-secret.ts @@ -932,15 +932,22 @@ const syncSecretsAWSParameterStore = async ({ logger.info( `getIntegrationSecrets: create secret in AWS SSM for [projectId=${projectId}] [environment=${integration.environment.slug}] [secretPath=${integration.secretPath}]` ); - await ssm - .putParameter({ - Name: `${integration.path}${key}`, - Type: "SecureString", - Value: secrets[key].value, - ...(metadata.kmsKeyId && { KeyId: metadata.kmsKeyId }), - Overwrite: true - }) - .promise(); + + try { + await ssm + .putParameter({ + Name: `${integration.path}${key}`, + Type: "SecureString", + Value: secrets[key].value, + ...(metadata.kmsKeyId && { KeyId: metadata.kmsKeyId }), + Overwrite: true + }) + .promise(); + } catch (error) { + (error as { secretKey: string }).secretKey = key; + throw error; + } + if (metadata.secretAWSTag?.length) { try { await ssm @@ -987,15 +994,20 @@ const syncSecretsAWSParameterStore = async ({ // we ensure that the KMS key configured in the integration is applied for ALL parameters on AWS if (secrets[key].value && (shouldUpdateKms || awsParameterStoreSecretsObj[key].Value !== secrets[key].value)) { - await ssm - .putParameter({ - Name: `${integration.path}${key}`, - Type: "SecureString", - Value: secrets[key].value, - Overwrite: true, - ...(metadata.kmsKeyId && { KeyId: metadata.kmsKeyId }) - }) - .promise(); + try { + await ssm + .putParameter({ + Name: `${integration.path}${key}`, + Type: "SecureString", + Value: secrets[key].value, + Overwrite: true, + ...(metadata.kmsKeyId && { KeyId: metadata.kmsKeyId }) + }) + .promise(); + } catch (error) { + (error as { secretKey: string }).secretKey = key; + throw error; + } } if (awsParameterStoreSecretsObj[key].Name) {