c405ae7117
* Added maximumScheduleInstancesLimit column to Org, default to 20 * Docs on the schedule limits and improved soft-limit communication * Added limit info to the schedules list page * Created a task that creates schedules, useful for testing * Make deduplicationKey required when creating/updating a schedule using the SDK * New schedule button shows an alert if you’re over the limit * Added timezone to the form and db * WIP on the timezone dropdown for the create/edit schedule form * Use the new filter search for timezones * Made the timezone dropdown faster by fixing the virtualization * The preview table is working and added a nice message about daylight savings * Created a page where you can view the full list of timezones The URL is included in the error message if you send an invalid time using the SDK * Creating tasks with the timezone * Added timezone support the the scheduler and the schedules list * Added timezone support to more of the schedules UI * The timezone comes through to scheduled runs with nice JSDocs * Allow setting the timezone from the SDK * Always have a timezone on a schedule * Updated jsdocs * Updated catalog example * Changed the column to be a string, not null. Added the timezone across the SDK * API endpoint for getting the timezones * Added an SDK function to get the list of timezones * Added timezones to the docs * Changeset: Added timezone support to schedules * Added support for testing timezone * Tidied up imports * Imports * Imports * Update limits.mdx * Fixed a couple type issues and use the already exported zodfetch --------- Co-authored-by: Eric Allam <eallam@icloud.com>
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { z } from "zod";
|
|
|
|
export const TestTaskData = z
|
|
.discriminatedUnion("triggerSource", [
|
|
z.object({
|
|
triggerSource: z.literal("STANDARD"),
|
|
payload: z.string().transform((payload, ctx) => {
|
|
try {
|
|
const data = JSON.parse(payload);
|
|
return data as any;
|
|
} catch (e) {
|
|
console.log("parsing error", e);
|
|
|
|
if (e instanceof Error) {
|
|
ctx.addIssue({
|
|
code: z.ZodIssueCode.custom,
|
|
message: e.message,
|
|
});
|
|
} else {
|
|
ctx.addIssue({
|
|
code: z.ZodIssueCode.custom,
|
|
message: "This is invalid JSON",
|
|
});
|
|
}
|
|
}
|
|
}),
|
|
}),
|
|
z.object({
|
|
triggerSource: z.literal("SCHEDULED"),
|
|
timestamp: z.preprocess((val) => (val === "" ? undefined : val), z.coerce.date()),
|
|
lastTimestamp: z.preprocess(
|
|
(val) => (val === "" ? undefined : val),
|
|
z.coerce.date().optional()
|
|
),
|
|
timezone: z.string(),
|
|
externalId: z.preprocess((val) => (val === "" ? undefined : val), z.string().optional()),
|
|
}),
|
|
])
|
|
.and(
|
|
z.object({
|
|
taskIdentifier: z.string(),
|
|
environmentId: z.string(),
|
|
})
|
|
);
|
|
|
|
export type TestTaskData = z.infer<typeof TestTaskData>;
|