diff --git a/packages/server/src/db/schema/schedule.ts b/packages/server/src/db/schema/schedule.ts index 4c679ae36..6e7395dcb 100644 --- a/packages/server/src/db/schema/schedule.ts +++ b/packages/server/src/db/schema/schedule.ts @@ -57,6 +57,7 @@ export const schedules = pgTable("schedule", { }); export type Schedule = typeof schedules.$inferSelect; +export type ScheduleType = Schedule["scheduleType"]; export const schedulesRelations = relations(schedules, ({ one, many }) => ({ application: one(applications, { @@ -78,7 +79,14 @@ export const schedulesRelations = relations(schedules, ({ one, many }) => ({ deployments: many(deployments), })); -export const createScheduleSchema = createInsertSchema(schedules); +export const createScheduleSchema = createInsertSchema(schedules, { + scheduleType: z.enum([ + "application", + "compose", + "server", + "dokploy-server", + ]), +}); export const updateScheduleSchema = createScheduleSchema.extend({ scheduleId: z.string().min(1), diff --git a/packages/server/src/services/schedule.ts b/packages/server/src/services/schedule.ts index db6d51ecd..c94973e02 100644 --- a/packages/server/src/services/schedule.ts +++ b/packages/server/src/services/schedule.ts @@ -22,7 +22,7 @@ export type ScheduleExtended = Awaited>; // not downgrade this to a service-access check. export const assertHostScheduleAccess = async ( ctx: { user: { id: string }; session: { activeOrganizationId: string } }, - scheduleType: string | undefined, + scheduleType: Schedule["scheduleType"] | null | undefined, serverId: string | null | undefined, ) => { if (scheduleType !== "server" && scheduleType !== "dokploy-server") return;