feat: added instance gateway setup ui

This commit is contained in:
=
2025-02-26 20:45:36 +05:30
parent 84c534ef70
commit d65ae2c61b
7 changed files with 178 additions and 3 deletions
+2
View File
@@ -1,7 +1,9 @@
export {
useAdminDeleteUser,
useCreateAdminUser,
useSetupInstanceGatewayConfig,
useUpdateAdminSlackConfig,
useUpdateInstanceGatewayConfig,
useUpdateServerConfig,
useUpdateServerEncryptionStrategy
} from "./mutation";
+25
View File
@@ -9,6 +9,7 @@ import {
AdminSlackConfig,
RootKeyEncryptionStrategy,
TCreateAdminUserDTO,
TDisableInstanceGatewayConfigDTO,
TServerConfig,
TUpdateAdminSlackConfigDTO
} from "./types";
@@ -98,3 +99,27 @@ export const useUpdateServerEncryptionStrategy = () => {
}
});
};
export const useSetupInstanceGatewayConfig = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: async () => {
await apiRequest.post("/api/v1/admin/gateway");
},
onSuccess: () => {
queryClient.invalidateQueries(adminQueryKeys.getInstanceGatewayConfig());
}
});
};
export const useUpdateInstanceGatewayConfig = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: async (dto: TDisableInstanceGatewayConfigDTO) => {
await apiRequest.patch("/api/v1/admin/gateway", dto);
},
onSuccess: () => {
queryClient.invalidateQueries(adminQueryKeys.getInstanceGatewayConfig());
}
});
};
+18 -2
View File
@@ -1,4 +1,5 @@
import { useInfiniteQuery, useQuery, UseQueryOptions } from "@tanstack/react-query";
import { queryOptions, useInfiniteQuery, useQuery, UseQueryOptions } from "@tanstack/react-query";
import { AxiosError } from "axios";
import { apiRequest } from "@app/config/request";
@@ -7,6 +8,7 @@ import {
AdminGetUsersFilters,
AdminSlackConfig,
TGetServerRootKmsEncryptionDetails,
TInstanceGatewayConfig,
TServerConfig
} from "./types";
@@ -18,7 +20,21 @@ export const adminQueryKeys = {
serverConfig: () => ["server-config"] as const,
getUsers: (filters: AdminGetUsersFilters) => [adminStandaloneKeys.getUsers, { filters }] as const,
getAdminSlackConfig: () => ["admin-slack-config"] as const,
getServerEncryptionStrategies: () => ["server-encryption-strategies"] as const
getServerEncryptionStrategies: () => ["server-encryption-strategies"] as const,
getInstanceGatewayConfig: () =>
queryOptions({
queryKey: ["instance-gateway-config"],
queryFn: async () => {
const { data } = await apiRequest
.get<{ gateway: TInstanceGatewayConfig }>("/api/v1/admin/gateway")
.catch((err: AxiosError) => {
if (err.response?.status === 404) return { data: { gateway: false as const } };
throw err;
});
return data.gateway;
}
})
};
export const fetchServerConfig = async () => {
+11
View File
@@ -66,3 +66,14 @@ export enum RootKeyEncryptionStrategy {
Software = "SOFTWARE",
HSM = "HSM"
}
export type TInstanceGatewayConfig = {
isDisabled: boolean;
infisicalClientCaIssuedAt: string;
infisicalClientCaSerialNumber: string;
caKeyAlgorithm: string;
};
export type TDisableInstanceGatewayConfigDTO = {
isDisabled?: boolean;
};
@@ -42,6 +42,7 @@ export type SubscriptionPlan = {
has_used_trial: boolean;
caCrl: boolean;
instanceUserManagement: boolean;
gateway: boolean;
externalKms: boolean;
pkiEst: boolean;
enforceMfa: boolean;