Files
Homarr/packages/validation/src/integration.ts
Meier Lukas 75ba3f2ae7 refactor: remove central validation export to improve typescript performance (#2810)
* refactor: remove central validation export to improve typescript performance

* fix: missing package exports change in validation package

* chore: address pull request feedback
2025-04-06 10:37:28 +00:00

37 lines
1.1 KiB
TypeScript

import { z } from "zod";
import { integrationKinds, integrationPermissions, integrationSecretKinds } from "@homarr/definitions";
import { zodEnumFromArray } from "./enums";
import { createSavePermissionsSchema } from "./permissions";
export const integrationCreateSchema = z.object({
name: z.string().nonempty().max(127),
url: z
.string()
.url()
.regex(/^https?:\/\//), // Only allow http and https for security reasons (javascript: is not allowed)
kind: zodEnumFromArray(integrationKinds),
secrets: z.array(
z.object({
kind: zodEnumFromArray(integrationSecretKinds),
value: z.string().nonempty(),
}),
),
attemptSearchEngineCreation: z.boolean(),
});
export const integrationUpdateSchema = z.object({
id: z.string().cuid2(),
name: z.string().nonempty().max(127),
url: z.string().url(),
secrets: z.array(
z.object({
kind: zodEnumFromArray(integrationSecretKinds),
value: z.string().nullable(),
}),
),
});
export const integrationSavePermissionsSchema = createSavePermissionsSchema(zodEnumFromArray(integrationPermissions));