Remove try-catch block

This commit is contained in:
Tuan Dang
2024-04-29 16:53:52 -07:00
parent 93b65a1534
commit 22e3fcb43c
@@ -442,99 +442,95 @@ const syncSecretsAWSParameterStore = async ({
accessId: string | null; accessId: string | null;
accessToken: string; accessToken: string;
}) => { }) => {
try { if (!accessId) return;
if (!accessId) return;
const config = new AWS.Config({ const config = new AWS.Config({
region: integration.region as string, region: integration.region as string,
credentials: { credentials: {
accessKeyId: accessId, accessKeyId: accessId,
secretAccessKey: accessToken secretAccessKey: accessToken
} }
}); });
const ssm = new AWS.SSM({ const ssm = new AWS.SSM({
apiVersion: "2014-11-06", apiVersion: "2014-11-06",
region: integration.region as string region: integration.region as string
}); });
ssm.config.update(config); ssm.config.update(config);
const metadata = z.record(z.any()).parse(integration.metadata || {}); const metadata = z.record(z.any()).parse(integration.metadata || {});
const params = { const params = {
Path: integration.path as string, Path: integration.path as string,
Recursive: false, Recursive: false,
WithDecryption: true WithDecryption: true
}; };
const parameterList = (await ssm.getParametersByPath(params).promise()).Parameters; const parameterList = (await ssm.getParametersByPath(params).promise()).Parameters;
const awsParameterStoreSecretsObj = (parameterList || []) const awsParameterStoreSecretsObj = (parameterList || [])
.filter(({ Name }) => Boolean(Name)) .filter(({ Name }) => Boolean(Name))
.reduce( .reduce(
(obj, secret) => ({ (obj, secret) => ({
...obj, ...obj,
[(secret.Name as string).substring((integration.path as string).length)]: secret [(secret.Name as string).substring((integration.path as string).length)]: secret
}), }),
{} as Record<string, AWS.SSM.Parameter> {} as Record<string, AWS.SSM.Parameter>
); );
// Identify secrets to create // Identify secrets to create
await Promise.all( await Promise.all(
Object.keys(secrets).map(async (key) => { Object.keys(secrets).map(async (key) => {
if (!(key in awsParameterStoreSecretsObj)) { if (!(key in awsParameterStoreSecretsObj)) {
// case: secret does not exist in AWS parameter store // case: secret does not exist in AWS parameter store
// -> create secret // -> create secret
if (secrets[key].value) { if (secrets[key].value) {
await ssm
.putParameter({
Name: `${integration.path}${key}`,
Type: "SecureString",
Value: secrets[key].value,
...(metadata.kmsKeyId && { KeyId: metadata.kmsKeyId }),
// Overwrite: true,
Tags: metadata.secretAWSTag
? metadata.secretAWSTag.map((tag: { key: string; value: string }) => ({
Key: tag.key,
Value: tag.value
}))
: []
})
.promise();
}
// case: secret exists in AWS parameter store
} else if (awsParameterStoreSecretsObj[key].Value !== secrets[key].value) {
// case: secret value doesn't match one in AWS parameter store
// -> update secret
await ssm await ssm
.putParameter({ .putParameter({
Name: `${integration.path}${key}`, Name: `${integration.path}${key}`,
Type: "SecureString", Type: "SecureString",
Value: secrets[key].value, Value: secrets[key].value,
Overwrite: true ...(metadata.kmsKeyId && { KeyId: metadata.kmsKeyId }),
// Tags: metadata.secretAWSTag ? [{ Key: metadata.secretAWSTag.key, Value: metadata.secretAWSTag.value }] : [] // Overwrite: true,
Tags: metadata.secretAWSTag
? metadata.secretAWSTag.map((tag: { key: string; value: string }) => ({
Key: tag.key,
Value: tag.value
}))
: []
}) })
.promise(); .promise();
} }
}) // case: secret exists in AWS parameter store
); } else if (awsParameterStoreSecretsObj[key].Value !== secrets[key].value) {
// case: secret value doesn't match one in AWS parameter store
// -> update secret
await ssm
.putParameter({
Name: `${integration.path}${key}`,
Type: "SecureString",
Value: secrets[key].value,
Overwrite: true
// Tags: metadata.secretAWSTag ? [{ Key: metadata.secretAWSTag.key, Value: metadata.secretAWSTag.value }] : []
})
.promise();
}
})
);
// Identify secrets to delete // Identify secrets to delete
await Promise.all( await Promise.all(
Object.keys(awsParameterStoreSecretsObj).map(async (key) => { Object.keys(awsParameterStoreSecretsObj).map(async (key) => {
if (!(key in secrets)) { if (!(key in secrets)) {
// case: // case:
// -> delete secret // -> delete secret
await ssm await ssm
.deleteParameter({ .deleteParameter({
Name: awsParameterStoreSecretsObj[key].Name as string Name: awsParameterStoreSecretsObj[key].Name as string
}) })
.promise(); .promise();
} }
}) })
); );
} catch (err) {
console.error("syncSecretsAWSPS error: ", err);
}
}; };
/** /**