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
+14 -1
View File
@@ -69,6 +69,9 @@ import { injectPermission } from "../plugins/auth/inject-permission";
import { registerV1Routes } from "./v1";
import { registerV2Routes } from "./v2";
import { registerV3Routes } from "./v3";
import { secretApprovalPolicyDalFactory } from "@app/ee/services/secret-approval-policy/secret-approval-policy-dal";
import { sapApproverDalFactory } from "@app/ee/services/secret-approval-policy/sap-approver-dal";
import { secretApprovalPolicyServiceFactory } from "@app/ee/services/secret-approval-policy/secret-approval-policy-service";
export const registerRoutes = async (
server: FastifyZodProvider,
@@ -113,9 +116,18 @@ export const registerRoutes = async (
// ee db layer ops
const permissionDal = permissionDalFactory(db);
const sapApproverDal = sapApproverDalFactory(db);
const secretApprovalPolicyDal = secretApprovalPolicyDalFactory(db);
// ee services
const permissionService = permissionServiceFactory({ permissionDal, orgRoleDal, projectRoleDal });
const sapService = secretApprovalPolicyServiceFactory({
projectMembershipDal,
projectEnvDal,
sapApproverDal,
permissionService,
secretApprovalPolicyDal
});
// service layers
const tokenService = tokenServiceFactory({ tokenDal: authTokenDal });
@@ -274,7 +286,8 @@ export const registerRoutes = async (
identity: identityService,
identityAccessToken: identityAccessTokenService,
identityProject: identityProjectService,
identityUa: identityUaService
identityUa: identityUaService,
secretApprovalPolicy: sapService
});
server.decorate<FastifyZodProvider["store"]>("store", {
@@ -1,4 +1,6 @@
import { IntegrationAuthsSchema } from "@app/db/schemas";
import { z } from "zod";
import { IntegrationAuthsSchema, SecretApprovalPoliciesSchema } from "@app/db/schemas";
// sometimes the return data must be santizied to avoid leaking important values
// always prefer pick over omit in zod
@@ -13,3 +15,14 @@ export const integrationAuthPubSchema = IntegrationAuthsSchema.pick({
createdAt: true,
updatedAt: true
});
export const sapPubSchema = SecretApprovalPoliciesSchema.merge(
z.object({
environment: z.object({
id: z.string(),
name: z.string(),
slug: z.string()
}),
projectId: z.string()
})
);