From 78f5ce180b07e5a1a55e0784ef1d98e818087728 Mon Sep 17 00:00:00 2001 From: mannilakash Date: Wed, 11 Mar 2026 16:50:33 -0400 Subject: [PATCH] fix: migration query changes --- client/src/Pages/CreateMonitor/index.tsx | 4 ++-- .../src/db/migration/0005_migrateStatusPageTypeToArray.ts | 6 +++++- server/src/validation/statusPageValidation.ts | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/client/src/Pages/CreateMonitor/index.tsx b/client/src/Pages/CreateMonitor/index.tsx index a2601e302..15b76eab3 100644 --- a/client/src/Pages/CreateMonitor/index.tsx +++ b/client/src/Pages/CreateMonitor/index.tsx @@ -337,14 +337,14 @@ const CreateMonitorPage = () => { /> { } // Find all status pages where `type` is a string (not yet migrated) - const result = await StatusPageModel.updateMany({ type: { $type: "string" } }, [ + const result = await StatusPageModel.updateMany({ + $expr: { + $eq: [{ $type: "$type" }, "string"], // only scalar string, not existing array + } + }, [ { $set: { type: ["$type"], diff --git a/server/src/validation/statusPageValidation.ts b/server/src/validation/statusPageValidation.ts index b4b5e270c..c4d5005f3 100644 --- a/server/src/validation/statusPageValidation.ts +++ b/server/src/validation/statusPageValidation.ts @@ -10,13 +10,13 @@ export const getStatusPageParamValidation = z.object({ }); export const getStatusPageQueryValidation = z.object({ - type: z.literal("uptime"), + type: z.array(z.enum(["uptime", "infrastructure"])), timeFrame: z.coerce.number().optional(), }); export const createStatusPageBodyValidation = z .object({ - type: z.literal("uptime"), + type: z.array(z.enum(["uptime", "infrastructure"])), companyName: z.string().min(1, "Company name is required"), url: z.string().regex(/^[a-zA-Z0-9_-]+$/, { message: "URL can only contain letters, numbers, underscores, and hyphens",