misc: removed kms from service

This commit is contained in:
Sheen Capadngan
2024-07-30 23:03:55 +05:30
committed by =
parent 64869ea8e0
commit 4009580cf2
5 changed files with 45 additions and 6 deletions
-2
View File
@@ -48,7 +48,6 @@ import { TIdentityTokenAuthServiceFactory } from "@app/services/identity-token-a
import { TIdentityUaServiceFactory } from "@app/services/identity-ua/identity-ua-service"; import { TIdentityUaServiceFactory } from "@app/services/identity-ua/identity-ua-service";
import { TIntegrationServiceFactory } from "@app/services/integration/integration-service"; import { TIntegrationServiceFactory } from "@app/services/integration/integration-service";
import { TIntegrationAuthServiceFactory } from "@app/services/integration-auth/integration-auth-service"; import { TIntegrationAuthServiceFactory } from "@app/services/integration-auth/integration-auth-service";
import { TKmsServiceFactory } from "@app/services/kms/kms-service";
import { TOrgRoleServiceFactory } from "@app/services/org/org-role-service"; import { TOrgRoleServiceFactory } from "@app/services/org/org-role-service";
import { TOrgServiceFactory } from "@app/services/org/org-service"; import { TOrgServiceFactory } from "@app/services/org/org-service";
import { TProjectServiceFactory } from "@app/services/project/project-service"; import { TProjectServiceFactory } from "@app/services/project/project-service";
@@ -165,7 +164,6 @@ declare module "fastify" {
secretSharing: TSecretSharingServiceFactory; secretSharing: TSecretSharingServiceFactory;
rateLimit: TRateLimitServiceFactory; rateLimit: TRateLimitServiceFactory;
userEngagement: TUserEngagementServiceFactory; userEngagement: TUserEngagementServiceFactory;
kms: TKmsServiceFactory;
externalKms: TExternalKmsServiceFactory; externalKms: TExternalKmsServiceFactory;
}; };
// this is exclusive use for middlewares in which we need to inject data // this is exclusive use for middlewares in which we need to inject data
+8 -1
View File
@@ -194,7 +194,14 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
}, },
onRequest: verifyAuth([AuthMode.JWT]), onRequest: verifyAuth([AuthMode.JWT]),
handler: async (req) => { handler: async (req) => {
const secretManagerKmsKey = await server.services.kms.getProjectSecretManagerKmsKey(req.params.workspaceId); const secretManagerKmsKey = await server.services.project.getProjectSecretManagerKmsKey({
actor: req.permission.type,
actorId: req.permission.id,
actorAuthMethod: req.permission.authMethod,
actorOrgId: req.permission.orgId,
projectId: req.params.workspaceId
});
return { return {
secretManagerKmsKey secretManagerKmsKey
}; };
-1
View File
@@ -1054,7 +1054,6 @@ export const registerRoutes = async (
identityProjectAdditionalPrivilege: identityProjectAdditionalPrivilegeService, identityProjectAdditionalPrivilege: identityProjectAdditionalPrivilegeService,
secretSharing: secretSharingService, secretSharing: secretSharingService,
userEngagement: userEngagementService, userEngagement: userEngagementService,
kms: kmsService,
externalKms: externalKmsService externalKms: externalKmsService
}); });
@@ -39,6 +39,7 @@ import {
TCreateProjectDTO, TCreateProjectDTO,
TDeleteProjectDTO, TDeleteProjectDTO,
TGetProjectDTO, TGetProjectDTO,
TGetProjectKmsKey,
TListProjectCasDTO, TListProjectCasDTO,
TListProjectCertsDTO, TListProjectCertsDTO,
TLoadProjectKmsBackupDTO, TLoadProjectKmsBackupDTO,
@@ -81,7 +82,11 @@ type TProjectServiceFactoryDep = {
keyStore: Pick<TKeyStoreFactory, "deleteItem">; keyStore: Pick<TKeyStoreFactory, "deleteItem">;
kmsService: Pick< kmsService: Pick<
TKmsServiceFactory, TKmsServiceFactory,
"updateProjectSecretManagerKmsKey" | "getProjectKeyBackup" | "loadProjectKeyBackup" | "getKmsById" | "updateProjectSecretManagerKmsKey"
| "getProjectKeyBackup"
| "loadProjectKeyBackup"
| "getKmsById"
| "getProjectSecretManagerKmsKeyId"
>; >;
}; };
@@ -767,6 +772,33 @@ export const projectServiceFactory = ({
return kmsBackup; return kmsBackup;
}; };
const getProjectSecretManagerKmsKey = async ({
projectId,
actor,
actorId,
actorAuthMethod,
actorOrgId
}: TGetProjectKmsKey) => {
const { membership } = await permissionService.getProjectPermission(
actor,
actorId,
projectId,
actorAuthMethod,
actorOrgId
);
if (!membership) {
throw new ForbiddenRequestError({
message: "User is not a member of the project"
});
}
const kmsKeyId = await kmsService.getProjectSecretManagerKmsKeyId(projectId);
const kmsKey = await kmsService.getKmsById(kmsKeyId);
return kmsKey;
};
return { return {
createProject, createProject,
deleteProject, deleteProject,
@@ -783,6 +815,7 @@ export const projectServiceFactory = ({
updateAuditLogsRetention, updateAuditLogsRetention,
updateProjectKmsKey, updateProjectKmsKey,
getProjectKmsBackup, getProjectKmsBackup,
loadProjectKmsBackup loadProjectKmsBackup,
getProjectSecretManagerKmsKey
}; };
}; };
@@ -112,3 +112,5 @@ export type TUpdateProjectKmsDTO = {
export type TLoadProjectKmsBackupDTO = { export type TLoadProjectKmsBackupDTO = {
backup: string; backup: string;
} & TProjectPermission; } & TProjectPermission;
export type TGetProjectKmsKey = TProjectPermission;