mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 23:27:14 +00:00
cancel deletion + update on creation for scheduled for deletion secrets
This commit is contained in:
@@ -6,6 +6,7 @@ import {
|
|||||||
TDeleteOCIVaultVariable,
|
TDeleteOCIVaultVariable,
|
||||||
TOCIVaultListVariables,
|
TOCIVaultListVariables,
|
||||||
TOCIVaultSyncWithCredentials,
|
TOCIVaultSyncWithCredentials,
|
||||||
|
TUnmarkOCIVaultVariableFromDeletion,
|
||||||
TUpdateOCIVaultVariable
|
TUpdateOCIVaultVariable
|
||||||
} from "@app/services/secret-sync/oci-vault/oci-vault-sync-types";
|
} from "@app/services/secret-sync/oci-vault/oci-vault-sync-types";
|
||||||
import { SecretSyncError } from "@app/services/secret-sync/secret-sync-errors";
|
import { SecretSyncError } from "@app/services/secret-sync/secret-sync-errors";
|
||||||
@@ -102,6 +103,14 @@ const deleteOCIVaultVariable = async ({ provider, secretId }: TDeleteOCIVaultVar
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const unmarkOCIVaultVariableFromDeletion = async ({ provider, secretId }: TUnmarkOCIVaultVariableFromDeletion) => {
|
||||||
|
const vaultsClient = new vault.VaultsClient({ authenticationDetailsProvider: provider });
|
||||||
|
|
||||||
|
return vaultsClient.cancelSecretDeletion({
|
||||||
|
secretId
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export const OCIVaultSyncFns = {
|
export const OCIVaultSyncFns = {
|
||||||
syncSecrets: async (secretSync: TOCIVaultSyncWithCredentials, secretMap: TSecretMap) => {
|
syncSecrets: async (secretSync: TOCIVaultSyncWithCredentials, secretMap: TSecretMap) => {
|
||||||
const {
|
const {
|
||||||
@@ -132,6 +141,28 @@ export const OCIVaultSyncFns = {
|
|||||||
secretKey: key
|
secretKey: key
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// If a secret exists but is pending deletion, cancel the deletion and update the secret
|
||||||
|
const secretPendingDeletion = Object.values(variables).find(
|
||||||
|
(s) => s.secretName === key && s.lifecycleState === vault.models.SecretSummary.LifecycleState.PendingDeletion
|
||||||
|
);
|
||||||
|
|
||||||
|
if (secretPendingDeletion) {
|
||||||
|
await unmarkOCIVaultVariableFromDeletion({
|
||||||
|
provider,
|
||||||
|
compartmentId: compartmentOcid,
|
||||||
|
vaultId: vaultOcid,
|
||||||
|
secretId: secretPendingDeletion.id
|
||||||
|
});
|
||||||
|
|
||||||
|
await updateOCIVaultVariable({
|
||||||
|
provider,
|
||||||
|
compartmentId: compartmentOcid,
|
||||||
|
vaultId: vaultOcid,
|
||||||
|
secretId: secretPendingDeletion.id,
|
||||||
|
value
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,3 +42,7 @@ export type TUpdateOCIVaultVariable = TOCIVaultListVariables & {
|
|||||||
export type TDeleteOCIVaultVariable = TOCIVaultListVariables & {
|
export type TDeleteOCIVaultVariable = TOCIVaultListVariables & {
|
||||||
secretId: string;
|
secretId: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type TUnmarkOCIVaultVariableFromDeletion = TOCIVaultListVariables & {
|
||||||
|
secretId: string;
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user