From 291edf71aa43b06b9f9dc9ffa6ee62b2c1bfa895 Mon Sep 17 00:00:00 2001 From: Akhil Mohan Date: Fri, 1 Mar 2024 23:01:18 +0530 Subject: [PATCH] feat(server): moved back audit log to queue now with keystore license --- .../ee/services/audit-log/audit-log-queue.ts | 33 +++++++------------ .../ee/services/license/license-service.ts | 5 +++ 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/backend/src/ee/services/audit-log/audit-log-queue.ts b/backend/src/ee/services/audit-log/audit-log-queue.ts index e248bda2b..afffd463d 100644 --- a/backend/src/ee/services/audit-log/audit-log-queue.ts +++ b/backend/src/ee/services/audit-log/audit-log-queue.ts @@ -22,13 +22,23 @@ export const auditLogQueueServiceFactory = ({ licenseService }: TAuditLogQueueServiceFactoryDep) => { const pushToLog = async (data: TCreateAuditLogDTO) => { - let { orgId } = data; + await queueService.queue(QueueName.AuditLog, QueueJobs.AuditLog, data, { + removeOnFail: { + count: 3 + }, + removeOnComplete: true + }); + }; + + queueService.start(QueueName.AuditLog, async (job) => { + const { actor, event, ipAddress, projectId, userAgent, userAgentType } = job.data; + let { orgId } = job.data; const MS_IN_DAY = 24 * 60 * 60 * 1000; if (!orgId) { // it will never be undefined for both org and project id // TODO(akhilmhdh): use caching here in dal to avoid db calls - const project = await projectDAL.findById(data.projectId as string); + const project = await projectDAL.findById(projectId as string); orgId = project.orgId; } @@ -37,25 +47,6 @@ export const auditLogQueueServiceFactory = ({ // skip inserting if audit log retention is 0 meaning its not supported if (ttl === 0) return; - await queueService.queue( - QueueName.AuditLog, - QueueJobs.AuditLog, - { ...data, orgId }, - { - removeOnFail: { - count: 3 - }, - removeOnComplete: true - } - ); - }; - - queueService.start(QueueName.AuditLog, async (job) => { - const { actor, event, ipAddress, projectId, userAgent, userAgentType, orgId } = job.data; - const MS_IN_DAY = 24 * 60 * 60 * 1000; - - const plan = await licenseService.getPlan(orgId as string); - const ttl = plan.auditLogsRetentionDays * MS_IN_DAY; await auditLogDAL.create({ actor: actor.type, actorMetadata: actor.metadata, diff --git a/backend/src/ee/services/license/license-service.ts b/backend/src/ee/services/license/license-service.ts index fe6b7a341..a04760d6c 100644 --- a/backend/src/ee/services/license/license-service.ts +++ b/backend/src/ee/services/license/license-service.ts @@ -130,6 +130,11 @@ export const licenseServiceFactory = ({ `getPlan: encountered an error when fetching pan [orgId=${orgId}] [projectId=${projectId}] [error]`, error ); + await keyStore.setItemWithExpiry( + FEATURE_CACHE_KEY(orgId), + LICENSE_SERVER_CLOUD_PLAN_TTL, + JSON.stringify(onPremFeatures) + ); return onPremFeatures; } return onPremFeatures;