diff --git a/backend/src/ee/routes/v1/external-kms-router.ts b/backend/src/ee/routes/v1/external-kms-router.ts index 233edd968..39cd6d878 100644 --- a/backend/src/ee/routes/v1/external-kms-router.ts +++ b/backend/src/ee/routes/v1/external-kms-router.ts @@ -1,6 +1,7 @@ import { z } from "zod"; import { ExternalKmsSchema, KmsKeysSchema } from "@app/db/schemas"; +import { EventType } from "@app/ee/services/audit-log/audit-log-types"; import { ExternalKmsAwsSchema, ExternalKmsInputSchema, @@ -56,7 +57,7 @@ export const registerExternalKmsRouter = async (server: FastifyZodProvider) => { }, schema: { body: z.object({ - slug: z.string().min(1).trim().toLowerCase().optional(), + slug: z.string().min(1).trim().toLowerCase(), description: z.string().min(1).trim().optional(), provider: ExternalKmsInputSchema }), @@ -77,6 +78,21 @@ export const registerExternalKmsRouter = async (server: FastifyZodProvider) => { provider: req.body.provider, description: req.body.description }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + event: { + type: EventType.CREATE_KMS, + metadata: { + kmsId: externalKms.id, + provider: req.body.provider.type, + slug: req.body.slug, + description: req.body.description + } + } + }); + return { externalKms }; } }); @@ -114,6 +130,21 @@ export const registerExternalKmsRouter = async (server: FastifyZodProvider) => { description: req.body.description, id: req.params.id }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + event: { + type: EventType.UPDATE_KMS, + metadata: { + kmsId: externalKms.id, + provider: req.body.provider.type, + slug: req.body.slug, + description: req.body.description + } + } + }); + return { externalKms }; } }); @@ -143,6 +174,19 @@ export const registerExternalKmsRouter = async (server: FastifyZodProvider) => { actorOrgId: req.permission.orgId, id: req.params.id }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + event: { + type: EventType.DELETE_KMS, + metadata: { + kmsId: externalKms.id, + slug: externalKms.slug + } + } + }); + return { externalKms }; } }); @@ -172,6 +216,19 @@ export const registerExternalKmsRouter = async (server: FastifyZodProvider) => { actorOrgId: req.permission.orgId, id: req.params.id }); + + await server.services.auditLog.createAuditLog({ + ...req.auditLogInfo, + orgId: req.permission.orgId, + event: { + type: EventType.GET_KMS, + metadata: { + kmsId: externalKms.id, + slug: externalKms.slug + } + } + }); + return { externalKms }; } }); diff --git a/backend/src/ee/services/audit-log/audit-log-types.ts b/backend/src/ee/services/audit-log/audit-log-types.ts index 5dedead70..cfe671392 100644 --- a/backend/src/ee/services/audit-log/audit-log-types.ts +++ b/backend/src/ee/services/audit-log/audit-log-types.ts @@ -139,7 +139,11 @@ export enum EventType { GET_CERT = "get-cert", DELETE_CERT = "delete-cert", REVOKE_CERT = "revoke-cert", - GET_CERT_BODY = "get-cert-body" + GET_CERT_BODY = "get-cert-body", + CREATE_KMS = "create-kms", + UPDATE_KMS = "update-kms", + DELETE_KMS = "delete-kms", + GET_KMS = "get-kms" } interface UserActorMetadata { @@ -1172,6 +1176,42 @@ interface GetCertBody { }; } +interface CreateKmsEvent { + type: EventType.CREATE_KMS; + metadata: { + kmsId: string; + provider: string; + slug: string; + description?: string; + }; +} + +interface DeleteKmsEvent { + type: EventType.DELETE_KMS; + metadata: { + kmsId: string; + slug: string; + }; +} + +interface UpdateKmsEvent { + type: EventType.UPDATE_KMS; + metadata: { + kmsId: string; + provider: string; + slug?: string; + description?: string; + }; +} + +interface GetKmsEvent { + type: EventType.GET_KMS; + metadata: { + kmsId: string; + slug: string; + }; +} + export type Event = | GetSecretsEvent | GetSecretEvent @@ -1273,4 +1313,8 @@ export type Event = | GetCert | DeleteCert | RevokeCert - | GetCertBody; + | GetCertBody + | CreateKmsEvent + | UpdateKmsEvent + | DeleteKmsEvent + | GetKmsEvent;