mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-08 03:27:38 +00:00
Add for-await for better Vercel integration reliability
This commit is contained in:
@@ -577,7 +577,7 @@ const syncSecretsVercel = async ({
|
|||||||
.map(async (secret: VercelSecret) => {
|
.map(async (secret: VercelSecret) => {
|
||||||
if (secret.type === 'encrypted') {
|
if (secret.type === 'encrypted') {
|
||||||
// case: secret is encrypted -> need to decrypt
|
// case: secret is encrypted -> need to decrypt
|
||||||
return (await axios.get(
|
const decryptedSecret = (await axios.get(
|
||||||
`${INTEGRATION_VERCEL_API_URL}/v9/projects/${integration.app}/env/${secret.id}`,
|
`${INTEGRATION_VERCEL_API_URL}/v9/projects/${integration.app}/env/${secret.id}`,
|
||||||
{
|
{
|
||||||
params,
|
params,
|
||||||
@@ -587,6 +587,8 @@ const syncSecretsVercel = async ({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
)).data;
|
)).data;
|
||||||
|
|
||||||
|
return decryptedSecret;
|
||||||
}
|
}
|
||||||
|
|
||||||
return secret;
|
return secret;
|
||||||
@@ -595,9 +597,9 @@ const syncSecretsVercel = async ({
|
|||||||
[secret.key]: secret
|
[secret.key]: secret
|
||||||
}), {});
|
}), {});
|
||||||
|
|
||||||
const updateSecrets: VercelSecret[] = [];
|
const updateSecrets: VercelSecret[] = [];
|
||||||
const deleteSecrets: VercelSecret[] = [];
|
const deleteSecrets: VercelSecret[] = [];
|
||||||
const newSecrets: VercelSecret[] = [];
|
const newSecrets: VercelSecret[] = [];
|
||||||
|
|
||||||
// Identify secrets to create
|
// Identify secrets to create
|
||||||
Object.keys(secrets).map((key) => {
|
Object.keys(secrets).map((key) => {
|
||||||
@@ -653,33 +655,13 @@ const syncSecretsVercel = async ({
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sync/push updated secrets
|
for await (const secret of updateSecrets) {
|
||||||
if (updateSecrets.length > 0) {
|
if (secret.type !== 'sensitive') {
|
||||||
updateSecrets.forEach(async (secret: VercelSecret) => {
|
|
||||||
const { id, ...updatedSecret } = secret;
|
const { id, ...updatedSecret } = secret;
|
||||||
|
await axios.patch(
|
||||||
if (secret.type !== 'sensitive') {
|
|
||||||
await axios.patch(
|
|
||||||
`${INTEGRATION_VERCEL_API_URL}/v9/projects/${integration.app}/env/${secret.id}`,
|
|
||||||
updatedSecret,
|
|
||||||
{
|
|
||||||
params,
|
|
||||||
headers: {
|
|
||||||
Authorization: `Bearer ${accessToken}`,
|
|
||||||
'Accept-Encoding': 'application/json'
|
|
||||||
},
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Delete secrets
|
|
||||||
if (deleteSecrets.length > 0) {
|
|
||||||
deleteSecrets.forEach(async (secret: VercelSecret) => {
|
|
||||||
await axios.delete(
|
|
||||||
`${INTEGRATION_VERCEL_API_URL}/v9/projects/${integration.app}/env/${secret.id}`,
|
`${INTEGRATION_VERCEL_API_URL}/v9/projects/${integration.app}/env/${secret.id}`,
|
||||||
|
updatedSecret,
|
||||||
{
|
{
|
||||||
params,
|
params,
|
||||||
headers: {
|
headers: {
|
||||||
@@ -688,8 +670,22 @@ const syncSecretsVercel = async ({
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for await (const secret of deleteSecrets) {
|
||||||
|
await axios.delete(
|
||||||
|
`${INTEGRATION_VERCEL_API_URL}/v9/projects/${integration.app}/env/${secret.id}`,
|
||||||
|
{
|
||||||
|
params,
|
||||||
|
headers: {
|
||||||
|
Authorization: `Bearer ${accessToken}`,
|
||||||
|
'Accept-Encoding': 'application/json'
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
Sentry.setUser(null);
|
Sentry.setUser(null);
|
||||||
Sentry.captureException(err);
|
Sentry.captureException(err);
|
||||||
|
|||||||
Reference in New Issue
Block a user