From 8b4e7bd4d181c229470406b55282fbc3c020328d Mon Sep 17 00:00:00 2001 From: jipstavenuiter Date: Wed, 9 Jul 2025 12:23:09 -0400 Subject: [PATCH 1/3] feat: enable conditional cron job execution based on environment variable --- src/index.ts | 12 +++++++++--- src/utils/constants.ts | 3 +++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index 1c333f16..18279c46 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,6 +11,7 @@ import * as Sentry from "@sentry/node"; import SignatureRequestProcessorCron from "./cron/SignatureRequestProcessing.js"; import OrderInvalidationCronjob from "./cron/OrderInvalidation.js"; import { container } from "tsyringe"; +import { ENABLE_CRON_JOBS } from "./utils/constants.js"; // @ts-expect-error BigInt is not supported by JSON BigInt.prototype.toJSON = function () { @@ -47,9 +48,14 @@ RegisterRoutes(app); Sentry.setupExpressErrorHandler(app); // Start Safe signature request processing cron job -SignatureRequestProcessorCron.start(); -const cronJob = container.resolve(OrderInvalidationCronjob); -cronJob.start(); +if (ENABLE_CRON_JOBS) { + console.log("🚀 Starting cron jobs"); + SignatureRequestProcessorCron.start(); + const cronJob = container.resolve(OrderInvalidationCronjob); + cronJob.start(); +} else { + console.log("🚨 Cron jobs are disabled"); +} app.listen(PORT, () => { console.log( diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 9b981efe..4541838c 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -20,3 +20,6 @@ export const drpcApiPkey = getRequiredEnvVar("DRPC_API_KEY"); export const cachingDatabaseUrl = getRequiredEnvVar("CACHING_DATABASE_URL"); export const dataDatabaseUrl = getRequiredEnvVar("DATA_DATABASE_URL"); export const filecoinApiKey = getRequiredEnvVar("FILECOIN_API_KEY"); + +const ENABLE_CRON_JOBS_ENV = getRequiredEnvVar("ENABLE_CRON_JOBS"); +export const ENABLE_CRON_JOBS = ENABLE_CRON_JOBS_ENV === "true"; From 4323cb5b3cc9c938ec995036439e592560e069e6 Mon Sep 17 00:00:00 2001 From: jipstavenuiter Date: Wed, 9 Jul 2025 12:23:37 -0400 Subject: [PATCH 2/3] feat: improve order registration logging --- src/controllers/MarketplaceController.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/controllers/MarketplaceController.ts b/src/controllers/MarketplaceController.ts index 70570e2e..7397d472 100644 --- a/src/controllers/MarketplaceController.ts +++ b/src/controllers/MarketplaceController.ts @@ -24,6 +24,7 @@ import type { import { inject, injectable } from "tsyringe"; import { FractionService } from "../services/database/entities/FractionEntityService.js"; import { MarketplaceOrdersService } from "../services/database/entities/MarketplaceOrdersEntityService.js"; +import { InvalidOrder } from "../lib/marketplace/errors.js"; @injectable() @Route("v2/marketplace") @@ -114,6 +115,7 @@ export class MarketplaceController extends Controller { success: false, message: "Error processing order", error: error instanceof Error ? error.message : String(error), + ...(error instanceof InvalidOrder ? { result: error.errors } : {}), }; } } From 63eab0d0e1723d14e17a6c1c37de3a9abb7b8b24 Mon Sep 17 00:00:00 2001 From: jipstavenuiter Date: Wed, 9 Jul 2025 12:27:18 -0400 Subject: [PATCH 3/3] feat: add ENABLE_CRON_JOBS environment variable to CI configuration --- .github/workflows/ci-test-unit.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci-test-unit.yml b/.github/workflows/ci-test-unit.yml index bb5644ff..e8286685 100644 --- a/.github/workflows/ci-test-unit.yml +++ b/.github/workflows/ci-test-unit.yml @@ -25,6 +25,8 @@ jobs: CACHING_DATABASE_URL: "https://test.supabase.com" DATA_DATABASE_URL: "https://test.supabase.com" + ENABLE_CRON_JOBS: "false" + permissions: # Required to checkout the code contents: read