Addressed greptlie comments and suggestions

This commit is contained in:
Carlos Monastyrski
2025-08-27 04:04:39 -03:00
parent 83479a091e
commit 7b52d60036
22 changed files with 80 additions and 54 deletions
@@ -205,7 +205,8 @@ export type TAppConnectionOption =
| TSupabaseConnectionOption
| TDigitalOceanConnectionOption
| TNetlifyConnectionOption
| TOktaConnectionOption;
| TOktaConnectionOption
| TAzureAdCsConnectionOption;
export type TAppConnectionOptionMap = {
[AppConnection.AWS]: TAwsConnectionOption;
@@ -17,9 +17,5 @@ export type TCreateAzureADCSConnection = z.infer<typeof CreateAzureADCSConnectio
export type TAzureADCSConnection = TRootAppConnection & { app: AppConnection.AzureADCS } & {
method: AzureADCSConnectionMethod.UsernamePassword;
credentials: {
username: string;
password: string;
adcsUrl: string;
};
credentials: TCreateAzureADCSConnection;
};
+3 -3
View File
@@ -41,7 +41,7 @@ export const useUpdateCa = () => {
});
// Invalidate external CAs list
queryClient.invalidateQueries({
queryKey: [`external-cas-${projectId}`]
queryKey: caKeys.listExternalCasByProjectId(projectId)
});
}
});
@@ -63,7 +63,7 @@ export const useCreateCa = () => {
});
// Invalidate external CAs list
queryClient.invalidateQueries({
queryKey: [`external-cas-${projectId}`]
queryKey: caKeys.listExternalCasByProjectId(projectId)
});
}
});
@@ -89,7 +89,7 @@ export const useDeleteCa = () => {
});
// Invalidate external CAs list
queryClient.invalidateQueries({
queryKey: [`external-cas-${projectId}`]
queryKey: caKeys.listExternalCasByProjectId(projectId)
});
}
});
+4 -3
View File
@@ -4,13 +4,14 @@ import { apiRequest } from "@app/config/request";
import { TCertificateTemplate } from "../certificateTemplates/types";
import { CaType } from "./enums";
import { TCertificateAuthority, TUnifiedCertificateAuthority } from "./types";
import { TAzureAdCsTemplate, TCertificateAuthority, TUnifiedCertificateAuthority } from "./types";
export const caKeys = {
getCaById: (caId: string) => [{ caId }, "ca"],
getCaByNameAndProjectId: (caName: string, projectId: string) => [{ caName, projectId }, "ca"],
listCasByTypeAndProjectId: (type: CaType, projectId: string) => [{ type, projectId }, "cas"],
listCasByProjectId: (projectId: string) => [{ projectId }, "cas"],
listExternalCasByProjectId: (projectId: string) => [{ projectId }, "external-cas"],
getCaCerts: (caId: string) => [{ caId }, "ca-cert"],
getCaCrls: (caId: string) => [{ caId }, "ca-crls"],
getCaCert: (caId: string) => [{ caId }, "ca-cert"],
@@ -73,7 +74,7 @@ export const useListCasByProjectId = (projectId: string) => {
export const useListExternalCasByProjectId = (projectId: string) => {
return useQuery({
queryKey: [`external-cas-${projectId}`],
queryKey: caKeys.listExternalCasByProjectId(projectId),
queryFn: async () => {
const [acmeResponse, azureAdCsResponse] = await Promise.allSettled([
apiRequest.get<TUnifiedCertificateAuthority[]>(
@@ -200,7 +201,7 @@ export const useGetAzureAdcsTemplates = ({
queryKey: caKeys.getAzureAdcsTemplates(caId, projectId),
queryFn: async () => {
const { data } = await apiRequest.get<{
templates: { id: string; name: string; description?: string }[];
templates: TAzureAdCsTemplate[];
}>(`/api/v1/pki/ca/azure-ad-cs/${caId}/templates?projectId=${projectId}`);
return data;
},
+6
View File
@@ -137,6 +137,12 @@ export type TSignIntermediateResponse = {
serialNumber: string;
};
export type TAzureAdCsTemplate = {
id: string;
name: string;
description?: string;
};
export type TImportCaCertificateDTO = {
caId: string;
projectSlug: string;
@@ -274,6 +274,8 @@ export const ExternalCaModal = ({ popUp, handlePopUpToggle }: Props) => {
configPayload = {
azureAdcsConnectionId: formConfiguration.azureAdcsConnection.id
};
} else {
throw new Error("Invalid certificate authority configuration");
}
if (ca) {
@@ -175,8 +175,9 @@ export const CertificatesTable = ({ handlePopUpOpen }: Props) => {
{/* Only show revoke button if CA supports revocation */}
{(() => {
const caType = caCapabilityMap[certificate.caId];
// If caId not found in map, assume CA supports revocation to avoid hiding revoke option
const supportsRevocation =
caType &&
!caType ||
caSupportsCapability(caType, CaCapability.REVOKE_CERTIFICATES);
if (!supportsRevocation) {
@@ -64,7 +64,7 @@ export const PkiSubscriberCertificatesTable = ({ subscriberName, handlePopUpOpen
);
// Fetch CA data to determine capabilities
const { data: caData } = useListCasByProjectId(currentWorkspace?.id ?? "");
const { data: caData } = useListCasByProjectId(currentWorkspace.id);
// Create mapping from caId to CA type for capability checking
const caCapabilityMap = useMemo(() => {
@@ -151,8 +151,6 @@ export const PkiSubscriberModal = ({ popUp, handlePopUpToggle }: Props) => {
projectId
});
console.log(pkiSubscriber);
// Initialize form with ALL subscriber data including template
useEffect(() => {
if (pkiSubscriber) {