From a3f5c4e49435edaa56b68fc3b2bb17ea86f54df6 Mon Sep 17 00:00:00 2001 From: charlesgauthereau Date: Tue, 23 Sep 2025 21:19:11 +0200 Subject: [PATCH] Ready for 1.1.2-rc.2 --- src/db/index.ts | 2 +- src/env.mjs | 15 +++++++++++---- src/lib/tasks/database/retention-count.ts | 6 +----- src/lib/tasks/database/retention-days.ts | 2 +- src/lib/tasks/database/retention-gsf.ts | 2 +- src/lib/tasks/index.ts | 3 ++- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/db/index.ts b/src/db/index.ts index f4e441f3..1ebdb3dc 100644 --- a/src/db/index.ts +++ b/src/db/index.ts @@ -37,7 +37,7 @@ export const schemas = { export const db = drizzle({ client: pool, - logger: process.env.NODE_ENV != 'production', + // logger: process.env.NODE_ENV != 'production', schema: schemas, }); diff --git a/src/env.mjs b/src/env.mjs index c4a733d6..6ef049dc 100644 --- a/src/env.mjs +++ b/src/env.mjs @@ -1,8 +1,8 @@ -import { createEnv } from "@t3-oss/env-nextjs"; -import { z } from "zod"; -import packageJson from "../package.json" with { type: "json" }; +import {createEnv} from "@t3-oss/env-nextjs"; +import {z} from "zod"; +import packageJson from "../package.json" with {type: "json"}; -const { version } = packageJson; +const {version} = packageJson; export const env = createEnv({ server: { @@ -31,6 +31,10 @@ export const env = createEnv({ S3_USE_SSL: z.string().optional(), STORAGE_TYPE: z.enum(["local", "s3"]).optional(), + + RETENTION_CRON: z + .string() + .default(process.env.NODE_ENV === "production" ? "0 7 * * *" : "* * * * *"), }, client: { NEXT_PUBLIC_PROJECT_NAME: z.string().optional(), @@ -64,5 +68,8 @@ export const env = createEnv({ S3_USE_SSL: process.env.S3_USE_SSL, STORAGE_TYPE: process.env.STORAGE_TYPE, + + RETENTION_CRON: process.env.RETENTION_CRON, + }, }); diff --git a/src/lib/tasks/database/retention-count.ts b/src/lib/tasks/database/retention-count.ts index 96b8a5cc..0b7a75e1 100644 --- a/src/lib/tasks/database/retention-count.ts +++ b/src/lib/tasks/database/retention-count.ts @@ -19,15 +19,11 @@ export async function enforceRetentionCount(databaseId: string, count: number) { const toDelete = backups.slice(count); // keep first `count`, delete rest for (const b of toDelete) { - await deleteBackupCronAction({ backupId: b.id, databaseId: b.databaseId, - file: b.file!, + file: b.file ?? "", projectSlug: b.database.project?.slug! }); - - - } } \ No newline at end of file diff --git a/src/lib/tasks/database/retention-days.ts b/src/lib/tasks/database/retention-days.ts index ce99cfab..a729487d 100644 --- a/src/lib/tasks/database/retention-days.ts +++ b/src/lib/tasks/database/retention-days.ts @@ -25,7 +25,7 @@ export async function enforceRetentionDays(databaseId: string, days: number) { await deleteBackupCronAction({ backupId: backup.id, databaseId: backup.databaseId, - file: backup.file!, + file: backup.file ?? "", projectSlug: backup.database.project?.slug! }); diff --git a/src/lib/tasks/database/retention-gsf.ts b/src/lib/tasks/database/retention-gsf.ts index 2df5ab1b..7cebaa35 100644 --- a/src/lib/tasks/database/retention-gsf.ts +++ b/src/lib/tasks/database/retention-gsf.ts @@ -64,7 +64,7 @@ export async function enforceRetentionGFS(databaseId: string, gfsSettings: { await deleteBackupCronAction({ backupId: b.id, databaseId: b.databaseId, - file: b.file!, + file: b.file ?? "", projectSlug: b.database.project?.slug! }); } diff --git a/src/lib/tasks/index.ts b/src/lib/tasks/index.ts index e1a38329..a4d2566c 100644 --- a/src/lib/tasks/index.ts +++ b/src/lib/tasks/index.ts @@ -1,8 +1,9 @@ import cron from "node-cron"; import {retentionCleanTask} from "@/lib/tasks/database"; +import {env} from "@/env.mjs"; -export const retentionJob = cron.schedule("* * * * *", async () => { +export const retentionJob = cron.schedule(env.RETENTION_CRON, async () => { try { console.log("Retention Job : Starting task"); await retentionCleanTask();