misc: initial instance KMIP PKI setup

This commit is contained in:
Sheen Capadngan
2025-02-06 02:57:40 +08:00
parent 8b315c946c
commit 9f9ded5102
20 changed files with 873 additions and 8 deletions
+2
View File
@@ -1,6 +1,7 @@
export {
useAdminDeleteUser,
useCreateAdminUser,
useSetupInstanceKmip,
useUpdateAdminSlackConfig,
useUpdateServerConfig,
useUpdateServerEncryptionStrategy
@@ -8,6 +9,7 @@ export {
export {
useAdminGetUsers,
useGetAdminSlackConfig,
useGetInstanceKmipConfig,
useGetServerConfig,
useGetServerRootKmsEncryptionDetails
} from "./queries";
+13
View File
@@ -10,6 +10,7 @@ import {
RootKeyEncryptionStrategy,
TCreateAdminUserDTO,
TServerConfig,
TSetupInstanceKmipDTO,
TUpdateAdminSlackConfigDTO
} from "./types";
@@ -98,3 +99,15 @@ export const useUpdateServerEncryptionStrategy = () => {
}
});
};
export const useSetupInstanceKmip = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: async (payload: TSetupInstanceKmipDTO) => {
await apiRequest.post("/api/v1/admin/kmip", payload);
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: adminQueryKeys.getInstanceKmip() });
}
});
};
+14 -1
View File
@@ -6,6 +6,7 @@ import { User } from "../types";
import {
AdminGetUsersFilters,
AdminSlackConfig,
InstanceKmipConfig,
TGetServerRootKmsEncryptionDetails,
TServerConfig
} from "./types";
@@ -18,7 +19,8 @@ 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,
getInstanceKmip: () => ["instance-kmip"] as const
};
export const fetchServerConfig = async () => {
@@ -93,3 +95,14 @@ export const useGetServerRootKmsEncryptionDetails = () => {
}
});
};
export const useGetInstanceKmipConfig = () => {
return useQuery({
queryKey: adminQueryKeys.getInstanceKmip(),
queryFn: async () => {
const { data } = await apiRequest.get<InstanceKmipConfig>("/api/v1/admin/kmip");
return data;
}
});
};
+10
View File
@@ -1,3 +1,5 @@
import { CertKeyAlgorithm } from "../certificates/enums";
export enum LoginMethod {
EMAIL = "email",
GOOGLE = "google",
@@ -62,7 +64,15 @@ export type TGetServerRootKmsEncryptionDetails = {
}[];
};
export type InstanceKmipConfig = {
serverCertificateChain: string;
};
export enum RootKeyEncryptionStrategy {
Software = "SOFTWARE",
HSM = "HSM"
}
export type TSetupInstanceKmipDTO = {
caKeyAlgorithm: CertKeyAlgorithm;
};