feat(infisical-pg): completed secret approval policy and services for approval requests

This commit is contained in:
Akhil Mohan
2024-01-27 12:38:23 +05:30
parent a6a60b7bbb
commit 17e61bfc68
40 changed files with 2114 additions and 43 deletions
@@ -10,7 +10,7 @@ export const useCreateSecretApprovalPolicy = () => {
return useMutation<{}, {}, TCreateSecretPolicyDTO>({
mutationFn: async ({ environment, workspaceId, approvals, approvers, secretPath, name }) => {
const { data } = await apiRequest.post("/api/v1/secret-approvals", {
const { data } = await apiRequest.post("/api/ee/v1/secret-approvals", {
environment,
workspaceId,
approvals,
@@ -31,7 +31,7 @@ export const useUpdateSecretApprovalPolicy = () => {
return useMutation<{}, {}, TUpdateSecretPolicyDTO>({
mutationFn: async ({ id, approvers, approvals, secretPath, name }) => {
const { data } = await apiRequest.patch(`/api/v1/secret-approvals/${id}`, {
const { data } = await apiRequest.patch(`/api/ee/v1/secret-approvals/${id}`, {
approvals,
approvers,
secretPath,
@@ -50,7 +50,7 @@ export const useDeleteSecretApprovalPolicy = () => {
return useMutation<{}, {}, TDeleteSecretPolicyDTO>({
mutationFn: async ({ id }) => {
const { data } = await apiRequest.delete(`/api/v1/secret-approvals/${id}`);
const { data } = await apiRequest.delete(`/api/ee/v1/secret-approvals/${id}`);
return data;
},
onSuccess: (_, { workspaceId }) => {
@@ -19,7 +19,7 @@ export const secretApprovalKeys = {
const fetchApprovalPolicies = async (workspaceId: string) => {
const { data } = await apiRequest.get<{ approvals: TSecretApprovalPolicy[] }>(
"/api/v1/secret-approvals",
"/api/ee/v1/secret-approvals",
{ params: { workspaceId } }
);
return data.approvals;
@@ -49,7 +49,7 @@ const fetchApprovalPolicyOfABoard = async (
secretPath: string
) => {
const { data } = await apiRequest.get<{ policy: TSecretApprovalPolicy }>(
"/api/v1/secret-approvals/board",
"/api/ee/v1/secret-approvals/board",
{ params: { workspaceId, environment, secretPath } }
);
return data.policy || "";
@@ -1,8 +1,11 @@
import { WorkspaceEnv } from "../workspace/types";
export type TSecretApprovalPolicy = {
id: string;
workspace: string;
name: string;
environment: string;
envId: string;
environment: WorkspaceEnv;
secretPath?: string;
approvers: string[];
approvals: number;
@@ -11,8 +11,6 @@ export type WorkspaceEnv = {
id: string;
name: string;
slug: string;
isReadDenied: boolean;
isWriteDenied: boolean;
};
export type WorkspaceTag = { id: string; name: string; slug: string };
@@ -41,7 +41,7 @@ export const SecretApprovalPolicyRow = ({
return (
<Tr>
<Td>{policy.name}</Td>
<Td>{policy.environment}</Td>
<Td>{policy.environment.slug}</Td>
<Td>{policy.secretPath || "*"}</Td>
<Td>
<DropdownMenu
@@ -62,7 +62,7 @@ export const SecretPolicyForm = ({
formState: { isSubmitting }
} = useForm<TFormSchema>({
resolver: zodResolver(formSchema),
values: editValues
values: editValues ? { ...editValues, environment: editValues.environment.slug } : undefined
});
const { currentWorkspace } = useWorkspace();
const { createNotification } = useNotificationContext();
@@ -63,7 +63,7 @@ export const SecretApprovalRequest = () => {
(prev, curr) => ({ ...prev, [curr.id]: curr }),
{}
);
const myMembershipId = members?.find(({ user }) => user.id === presentUser.id)?.id;
const myMembershipId = members?.find(({ user }) => user.id === presentUser?.id)?.id;
const isSecretApprovalScreen = Boolean(selectedApproval);
const handleGoBackSecretRequestDetail = () => {