From 86d7fca8fbfc94405e55271870daa607ef8af54b Mon Sep 17 00:00:00 2001 From: carlosmonastyrski Date: Mon, 14 Apr 2025 21:52:16 -0300 Subject: [PATCH] Add minor improvements to notifyExpiredTokens --- .../resource-cleanup/resource-cleanup-queue.ts | 2 +- .../src/services/service-token/service-token-dal.ts | 1 + .../services/service-token/service-token-service.ts | 12 +++++++----- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/backend/src/services/resource-cleanup/resource-cleanup-queue.ts b/backend/src/services/resource-cleanup/resource-cleanup-queue.ts index edd684783..5adb91801 100644 --- a/backend/src/services/resource-cleanup/resource-cleanup-queue.ts +++ b/backend/src/services/resource-cleanup/resource-cleanup-queue.ts @@ -77,7 +77,7 @@ export const dailyResourceCleanUpQueueServiceFactory = ({ await queueService.queue(QueueName.DailyResourceCleanUp, QueueJobs.DailyResourceCleanUp, undefined, { delay: 5000, jobId: QueueName.DailyResourceCleanUp, - repeat: { pattern: "0 0 * * *", utc: true } + repeat: { pattern: "* * * * *", utc: true } }); }; diff --git a/backend/src/services/service-token/service-token-dal.ts b/backend/src/services/service-token/service-token-dal.ts index d9125c123..188cd86cd 100644 --- a/backend/src/services/service-token/service-token-dal.ts +++ b/backend/src/services/service-token/service-token-dal.ts @@ -41,6 +41,7 @@ export const serviceTokenDALFactory = (db: TDbClient) => { .whereRaw( `${TableName.ServiceToken}."expiresAt" < NOW() AND ${TableName.ServiceToken}."notificationSent" = false` ) + .whereNotNull(`${TableName.Users}.email`) .select(`${TableName.ServiceToken}.name`) .select(`${TableName.ServiceToken}.id`) .select(`${TableName.Project}.name as projectName`) diff --git a/backend/src/services/service-token/service-token-service.ts b/backend/src/services/service-token/service-token-service.ts index dd2f834bb..db44e6272 100644 --- a/backend/src/services/service-token/service-token-service.ts +++ b/backend/src/services/service-token/service-token-service.ts @@ -26,6 +26,7 @@ import { TGetServiceTokenInfoDTO, TProjectServiceTokensDTO } from "./service-token-types"; +import { logger } from "@app/lib/logger"; type TServiceTokenServiceFactoryDep = { serviceTokenDAL: TServiceTokenDALFactory; @@ -196,8 +197,8 @@ export const serviceTokenServiceFactory = ({ await Promise.all( expiredTokens.map(async (token) => { - await smtpService - .sendMail({ + try { + await smtpService.sendMail({ recipients: [token.createdByEmail], subjectLine: "Service Token Expired", template: SmtpTemplates.ServiceTokenExpired, @@ -206,10 +207,11 @@ export const serviceTokenServiceFactory = ({ projectName: token.projectName, url: `${appCfg.SITE_URL}/secret-manager/${token.projectId}/access-management?selectedTab=service-tokens` } - }) - .then(async () => { - await serviceTokenDAL.update({ id: token.id }, { notificationSent: true }); }); + await serviceTokenDAL.update({ id: token.id }, { notificationSent: true }); + } catch (error) { + logger.error(error, `Failed to send expiration notification for token ${token.id}:`); + } }) ); };