Update schedule management with shell type support and version upgrades

- Updated the `drizzle-zod` package to version 0.7.1 across the project for enhanced schema validation.
- Introduced a new `shellType` column in the `schedule` schema to specify the shell used for executing commands, defaulting to 'bash'.
- Enhanced the `HandleSchedules` component to include the new `shellType` field, allowing users to select the shell type when creating or updating schedules.
- Updated the `runCommand` utility to utilize the selected shell type when executing commands, improving flexibility in command execution.
- Refactored the API to accommodate the new `shellType` in schedule creation and updates, ensuring proper handling of the new field.
This commit is contained in:
Mauricio Siu
2025-05-02 15:56:40 -06:00
parent f2bb01c800
commit 2c90103823
11 changed files with 5766 additions and 239 deletions

View File

@@ -1,12 +1,14 @@
import { relations } from "drizzle-orm";
import { boolean, pgTable, text } from "drizzle-orm/pg-core";
import { createInsertSchema } from "drizzle-zod";
import { boolean, pgEnum, pgTable, text } from "drizzle-orm/pg-core";
import { createInsertSchema, createUpdateSchema } from "drizzle-zod";
import { nanoid } from "nanoid";
import { z } from "zod";
import { applications } from "./application";
import { deployments } from "./deployment";
import { generateAppName } from "./utils";
export const shellTypes = pgEnum("shellType", ["bash", "sh"]);
export const schedules = pgTable("schedule", {
scheduleId: text("scheduleId")
.notNull()
@@ -17,6 +19,7 @@ export const schedules = pgTable("schedule", {
appName: text("appName")
.notNull()
.$defaultFn(() => generateAppName("schedule")),
shellType: shellTypes("shellType").notNull().default("bash"),
command: text("command").notNull(),
applicationId: text("applicationId")
.notNull()
@@ -45,3 +48,7 @@ export const createScheduleSchema = createInsertSchema(schedules, {
command: z.string().min(1),
applicationId: z.string().min(1),
});
export const updateScheduleSchema = createUpdateSchema(schedules).extend({
scheduleId: z.string().min(1),
});