Merge pull request #2207 from Infisical/misc/added-error-prompt-for-fetch-secrets-kms

misc: added error prompt for fetch secrets issue with kms
This commit is contained in:
Akhil Mohan
2024-07-31 14:34:35 +05:30
committed by GitHub
2 changed files with 28 additions and 1 deletions
@@ -1,8 +1,11 @@
/* eslint-disable no-param-reassign */ /* eslint-disable no-param-reassign */
import { useCallback, useMemo } from "react"; import { useCallback, useMemo } from "react";
import { useQueries, useQuery, UseQueryOptions } from "@tanstack/react-query"; import { useQueries, useQuery, UseQueryOptions } from "@tanstack/react-query";
import axios from "axios";
import { createNotification } from "@app/components/notifications";
import { apiRequest } from "@app/config/request"; import { apiRequest } from "@app/config/request";
import { useToggle } from "@app/hooks/useToggle";
import { import {
GetSecretVersionsDTO, GetSecretVersionsDTO,
@@ -105,6 +108,16 @@ export const useGetProjectSecrets = ({
enabled: Boolean(workspaceId && environment) && (options?.enabled ?? true), enabled: Boolean(workspaceId && environment) && (options?.enabled ?? true),
queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }), queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }),
queryFn: async () => fetchProjectSecrets({ workspaceId, environment, secretPath }), queryFn: async () => fetchProjectSecrets({ workspaceId, environment, secretPath }),
onError: (error) => {
if (axios.isAxiosError(error)) {
const serverResponse = error.response?.data as { message: string };
createNotification({
title: "Error fetching secrets",
type: "error",
text: serverResponse.message
});
}
},
select: ({ secrets }) => mergePersonalSecrets(secrets) select: ({ secrets }) => mergePersonalSecrets(secrets)
}); });
@@ -113,10 +126,24 @@ export const useGetProjectSecretsAllEnv = ({
envs, envs,
secretPath secretPath
}: TGetProjectSecretsAllEnvDTO) => { }: TGetProjectSecretsAllEnvDTO) => {
const [isErrorHandled, setIsErrorHandled] = useToggle(false);
const secrets = useQueries({ const secrets = useQueries({
queries: envs.map((environment) => ({ queries: envs.map((environment) => ({
queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }), queryKey: secretKeys.getProjectSecret({ workspaceId, environment, secretPath }),
enabled: Boolean(workspaceId && environment), enabled: Boolean(workspaceId && environment),
onError: (error: unknown) => {
if (axios.isAxiosError(error) && !isErrorHandled) {
const serverResponse = error.response?.data as { message: string };
createNotification({
title: "Error fetching secrets",
type: "error",
text: serverResponse.message
});
setIsErrorHandled.on();
}
},
queryFn: async () => fetchProjectSecrets({ workspaceId, environment, secretPath }), queryFn: async () => fetchProjectSecrets({ workspaceId, environment, secretPath }),
select: (el: SecretV3RawResponse) => select: (el: SecretV3RawResponse) =>
mergePersonalSecrets(el.secrets).reduce<Record<string, SecretV3RawSanitized>>( mergePersonalSecrets(el.secrets).reduce<Record<string, SecretV3RawSanitized>>(
@@ -33,7 +33,7 @@ export const SecretV2MigrationSection = () => {
currentWorkspace?.version === ProjectVersion.V3 ? "" : currentWorkspace?.id || "", currentWorkspace?.version === ProjectVersion.V3 ? "" : currentWorkspace?.id || "",
{ {
refetchInterval: refetchInterval:
currentWorkspace?.upgradeStatus === ProjectUpgradeStatus.InProgress ? 3000 : false currentWorkspace?.upgradeStatus === ProjectUpgradeStatus.InProgress ? 2000 : false
} }
); );
const { membership } = useProjectPermission(); const { membership } = useProjectPermission();