Merge pull request #2283 from akhilmhdh/feat/replication-test

feat: added debug points to test ssm integration in replication
This commit is contained in:
Maidul Islam
2024-08-13 11:23:25 -04:00
committed by GitHub
@@ -538,19 +538,21 @@ const syncSecretsAWSParameterStore = async ({
integration, integration,
secrets, secrets,
accessId, accessId,
accessToken accessToken,
projectId
}: { }: {
integration: TIntegrations; integration: TIntegrations;
secrets: Record<string, { value: string; comment?: string }>; secrets: Record<string, { value: string; comment?: string }>;
accessId: string | null; accessId: string | null;
accessToken: string; accessToken: string;
projectId?: string;
}) => { }) => {
let response: { isSynced: boolean; syncMessage: string } | null = null; let response: { isSynced: boolean; syncMessage: string } | null = null;
if (!accessId) { if (!accessId) {
throw new Error("AWS access ID is required"); throw new Error("AWS access ID is required");
} }
logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug: started`);
const config = new AWS.Config({ const config = new AWS.Config({
region: integration.region as string, region: integration.region as string,
credentials: { credentials: {
@@ -594,6 +596,12 @@ const syncSecretsAWSParameterStore = async ({
nextToken = parameters.NextToken; nextToken = parameters.NextToken;
} }
logger.info(
`getIntegrationSecrets: [projectId=${projectId}] ssm debug: ${Object.keys(awsParameterStoreSecretsObj).join(",")}`
);
logger.info(
`getIntegrationSecrets: [projectId=${projectId}] ssm infisical secrets debug: ${Object.keys(secrets).join(",")}`
);
// Identify secrets to create // Identify secrets to create
// don't use Promise.all() and promise map here // don't use Promise.all() and promise map here
// it will cause rate limit // it will cause rate limit
@@ -603,6 +611,7 @@ const syncSecretsAWSParameterStore = async ({
// 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) {
logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug create: ${key}`);
await ssm await ssm
.putParameter({ .putParameter({
Name: `${integration.path}${key}`, Name: `${integration.path}${key}`,
@@ -643,6 +652,7 @@ const syncSecretsAWSParameterStore = async ({
} }
// case: secret exists in AWS parameter store // case: secret exists in AWS parameter store
} else { } else {
logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug update: ${key}`);
// -> update secret // -> update secret
if (awsParameterStoreSecretsObj[key].Value !== secrets[key].value) { if (awsParameterStoreSecretsObj[key].Value !== secrets[key].value) {
await ssm await ssm
@@ -695,6 +705,7 @@ const syncSecretsAWSParameterStore = async ({
for (const key in awsParameterStoreSecretsObj) { for (const key in awsParameterStoreSecretsObj) {
if (Object.hasOwn(awsParameterStoreSecretsObj, key)) { if (Object.hasOwn(awsParameterStoreSecretsObj, key)) {
if (!(key in secrets)) { if (!(key in secrets)) {
logger.info(`getIntegrationSecrets: [projectId=${projectId}] ssm debug delete: ${key}`);
// case: // case:
// -> delete secret // -> delete secret
await ssm await ssm
@@ -3678,7 +3689,8 @@ export const syncIntegrationSecrets = async ({
integration, integration,
secrets, secrets,
accessId, accessId,
accessToken accessToken,
projectId
}); });
break; break;
case Integrations.AWS_SECRET_MANAGER: case Integrations.AWS_SECRET_MANAGER: