From 929215316ce14ca978eb884e02f83a74f3e806a7 Mon Sep 17 00:00:00 2001 From: Hentry Martin Date: Sat, 25 Oct 2025 00:45:02 +0200 Subject: [PATCH 1/4] fix: added timeout for prisma --- .env.sample | 2 ++ src/shared/modules/global/challenge-prisma.service.ts | 5 +++++ src/shared/modules/global/member-prisma.service.ts | 5 +++++ src/shared/modules/global/prisma.service.ts | 5 +++++ src/shared/modules/global/resource-prisma.service.ts | 5 +++++ 5 files changed, 22 insertions(+) diff --git a/.env.sample b/.env.sample index ef398d3..4698fae 100644 --- a/.env.sample +++ b/.env.sample @@ -73,3 +73,5 @@ SENDGRID_ACCEPT_REVIEW_APPLICATION="d-2de72880bd69499e9c16369398d34bb9" SENDGRID_REJECT_REVIEW_APPLICATION="d-82ed74e778e84d8c9bc02eeda0f44b5e" # For pulling payment details (used by platform-ui) FINANCE_DB_URL= +#Prisma timeout +REVIEW_SERVICE_PRISMA_TIMEOUT=10000 \ No newline at end of file diff --git a/src/shared/modules/global/challenge-prisma.service.ts b/src/shared/modules/global/challenge-prisma.service.ts index 8f32b4f..378344f 100644 --- a/src/shared/modules/global/challenge-prisma.service.ts +++ b/src/shared/modules/global/challenge-prisma.service.ts @@ -11,6 +11,11 @@ export class ChallengePrismaService constructor() { super({ + transactionOptions: { + timeout: process.env.REVIEW_SERVICE_PRISMA_TIMEOUT + ? parseInt(process.env.REVIEW_SERVICE_PRISMA_TIMEOUT, 10) + : 10000, + }, log: [ { level: 'query', emit: 'event' }, { level: 'info', emit: 'event' }, diff --git a/src/shared/modules/global/member-prisma.service.ts b/src/shared/modules/global/member-prisma.service.ts index cc1909b..3c71cdc 100644 --- a/src/shared/modules/global/member-prisma.service.ts +++ b/src/shared/modules/global/member-prisma.service.ts @@ -11,6 +11,11 @@ export class MemberPrismaService constructor() { super({ + transactionOptions: { + timeout: process.env.REVIEW_SERVICE_PRISMA_TIMEOUT + ? parseInt(process.env.REVIEW_SERVICE_PRISMA_TIMEOUT, 10) + : 10000, + }, log: [ { level: 'query', emit: 'event' }, { level: 'info', emit: 'event' }, diff --git a/src/shared/modules/global/prisma.service.ts b/src/shared/modules/global/prisma.service.ts index 404bb7c..c1e1d00 100644 --- a/src/shared/modules/global/prisma.service.ts +++ b/src/shared/modules/global/prisma.service.ts @@ -197,6 +197,11 @@ export class PrismaService const schema = process.env.POSTGRES_SCHEMA || 'public'; super({ + transactionOptions: { + timeout: process.env.REVIEW_SERVICE_PRISMA_TIMEOUT + ? parseInt(process.env.REVIEW_SERVICE_PRISMA_TIMEOUT, 10) + : 10000, + }, log: [ { level: 'query', emit: 'event' }, { level: 'info', emit: 'event' }, diff --git a/src/shared/modules/global/resource-prisma.service.ts b/src/shared/modules/global/resource-prisma.service.ts index 6d8a275..2996647 100644 --- a/src/shared/modules/global/resource-prisma.service.ts +++ b/src/shared/modules/global/resource-prisma.service.ts @@ -11,6 +11,11 @@ export class ResourcePrismaService constructor() { super({ + transactionOptions: { + timeout: process.env.REVIEW_SERVICE_PRISMA_TIMEOUT + ? parseInt(process.env.REVIEW_SERVICE_PRISMA_TIMEOUT, 10) + : 10000, + }, log: [ { level: 'query', emit: 'event' }, { level: 'info', emit: 'event' }, From f8f667dd028b5ae13a248d42607c52adb22a5f32 Mon Sep 17 00:00:00 2001 From: Hentry Martin Date: Sat, 25 Oct 2025 00:45:15 +0200 Subject: [PATCH 2/4] fix: added timeout for prisma --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9b7a392..7a974fb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -77,6 +77,7 @@ workflows: - feat/ai-workflows - pm-1955_2 - re-try-failed-jobs + - pm-2539 - 'build-prod': From 4317c093dbfcd8a478c1f15d714bb3c64a1847b6 Mon Sep 17 00:00:00 2001 From: Hentry Martin Date: Mon, 27 Oct 2025 16:43:55 +0100 Subject: [PATCH 3/4] fix: extracted to a util method --- src/shared/modules/global/challenge-prisma.service.ts | 7 ++----- src/shared/modules/global/member-prisma.service.ts | 7 ++----- src/shared/modules/global/prisma.service.ts | 7 ++----- src/shared/modules/global/resource-prisma.service.ts | 7 ++----- src/shared/modules/global/utils.service.ts | 10 ++++++++++ 5 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/shared/modules/global/challenge-prisma.service.ts b/src/shared/modules/global/challenge-prisma.service.ts index 378344f..ba36c20 100644 --- a/src/shared/modules/global/challenge-prisma.service.ts +++ b/src/shared/modules/global/challenge-prisma.service.ts @@ -1,6 +1,7 @@ import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common'; import { PrismaClient, Prisma } from '@prisma/client'; import { LoggerService } from './logger.service'; +import { Utils } from './utils.service'; @Injectable() export class ChallengePrismaService @@ -11,11 +12,7 @@ export class ChallengePrismaService constructor() { super({ - transactionOptions: { - timeout: process.env.REVIEW_SERVICE_PRISMA_TIMEOUT - ? parseInt(process.env.REVIEW_SERVICE_PRISMA_TIMEOUT, 10) - : 10000, - }, + ...Utils.getPrismaTimeout(), log: [ { level: 'query', emit: 'event' }, { level: 'info', emit: 'event' }, diff --git a/src/shared/modules/global/member-prisma.service.ts b/src/shared/modules/global/member-prisma.service.ts index 3c71cdc..5c2dbb1 100644 --- a/src/shared/modules/global/member-prisma.service.ts +++ b/src/shared/modules/global/member-prisma.service.ts @@ -1,6 +1,7 @@ import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common'; import { PrismaClient, Prisma } from '@prisma/client-member'; import { LoggerService } from './logger.service'; +import { Utils } from './utils.service'; @Injectable() export class MemberPrismaService @@ -11,11 +12,7 @@ export class MemberPrismaService constructor() { super({ - transactionOptions: { - timeout: process.env.REVIEW_SERVICE_PRISMA_TIMEOUT - ? parseInt(process.env.REVIEW_SERVICE_PRISMA_TIMEOUT, 10) - : 10000, - }, + ...Utils.getPrismaTimeout(), log: [ { level: 'query', emit: 'event' }, { level: 'info', emit: 'event' }, diff --git a/src/shared/modules/global/prisma.service.ts b/src/shared/modules/global/prisma.service.ts index c1e1d00..eca8356 100644 --- a/src/shared/modules/global/prisma.service.ts +++ b/src/shared/modules/global/prisma.service.ts @@ -3,6 +3,7 @@ import { PrismaClient, Prisma } from '@prisma/client'; import { LoggerService } from './logger.service'; import { PrismaErrorService } from './prisma-error.service'; import { getStore } from 'src/shared/request/requestStore'; +import { Utils } from './utils.service'; enum auditField { createdBy = 'createdBy', @@ -197,11 +198,7 @@ export class PrismaService const schema = process.env.POSTGRES_SCHEMA || 'public'; super({ - transactionOptions: { - timeout: process.env.REVIEW_SERVICE_PRISMA_TIMEOUT - ? parseInt(process.env.REVIEW_SERVICE_PRISMA_TIMEOUT, 10) - : 10000, - }, + ...Utils.getPrismaTimeout(), log: [ { level: 'query', emit: 'event' }, { level: 'info', emit: 'event' }, diff --git a/src/shared/modules/global/resource-prisma.service.ts b/src/shared/modules/global/resource-prisma.service.ts index 2996647..fff2152 100644 --- a/src/shared/modules/global/resource-prisma.service.ts +++ b/src/shared/modules/global/resource-prisma.service.ts @@ -1,6 +1,7 @@ import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common'; import { PrismaClient, Prisma } from '@prisma/client-resource'; import { LoggerService } from './logger.service'; +import { Utils } from './utils.service'; @Injectable() export class ResourcePrismaService @@ -11,11 +12,7 @@ export class ResourcePrismaService constructor() { super({ - transactionOptions: { - timeout: process.env.REVIEW_SERVICE_PRISMA_TIMEOUT - ? parseInt(process.env.REVIEW_SERVICE_PRISMA_TIMEOUT, 10) - : 10000, - }, + ...Utils.getPrismaTimeout(), log: [ { level: 'query', emit: 'event' }, { level: 'info', emit: 'event' }, diff --git a/src/shared/modules/global/utils.service.ts b/src/shared/modules/global/utils.service.ts index 63cf5d4..0a3f00e 100644 --- a/src/shared/modules/global/utils.service.ts +++ b/src/shared/modules/global/utils.service.ts @@ -4,4 +4,14 @@ export class Utils { static bigIntToNumber(t) { return t ? Number(t) : null; } + + static getPrismaTimeout() { + return { + transactionOptions: { + timeout: process.env.REVIEW_SERVICE_PRISMA_TIMEOUT + ? parseInt(process.env.REVIEW_SERVICE_PRISMA_TIMEOUT, 10) + : 10000, + } + } + } } From afb492d07a882ea40f5d515aa0545d0b5f54562c Mon Sep 17 00:00:00 2001 From: Hentry Martin Date: Tue, 28 Oct 2025 18:43:33 +0100 Subject: [PATCH 4/4] fix: lint --- src/shared/modules/global/utils.service.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/shared/modules/global/utils.service.ts b/src/shared/modules/global/utils.service.ts index 0a3f00e..60fa295 100644 --- a/src/shared/modules/global/utils.service.ts +++ b/src/shared/modules/global/utils.service.ts @@ -11,7 +11,7 @@ export class Utils { timeout: process.env.REVIEW_SERVICE_PRISMA_TIMEOUT ? parseInt(process.env.REVIEW_SERVICE_PRISMA_TIMEOUT, 10) : 10000, - } - } + }, + }; } }