diff --git a/server/lib/validators.ts b/server/lib/validators.ts index db6ff26b..5bdd7a14 100644 --- a/server/lib/validators.ts +++ b/server/lib/validators.ts @@ -2,11 +2,11 @@ import z from "zod"; import ipaddr from "ipaddr.js"; export function isValidCIDR(cidr: string): boolean { - return z.string().cidr().safeParse(cidr).success; + return z.cidrv4().safeParse(cidr).success || z.cidrv6().safeParse(cidr).success; } export function isValidIP(ip: string): boolean { - return z.string().ip().safeParse(ip).success; + return z.ipv4().safeParse(ip).success || z.ipv6().safeParse(ip).success; } export function isValidUrlGlobPattern(pattern: string): boolean { diff --git a/server/private/routers/loginPage/deleteLoginPage.ts b/server/private/routers/loginPage/deleteLoginPage.ts index bf7941e7..5271ebd8 100644 --- a/server/private/routers/loginPage/deleteLoginPage.ts +++ b/server/private/routers/loginPage/deleteLoginPage.ts @@ -25,7 +25,7 @@ import { DeleteLoginPageResponse } from "@server/routers/loginPage/types"; const paramsSchema = z .object({ orgId: z.string(), - loginPageId: z.coerce.number() + loginPageId: z.coerce.number() }) .strict(); diff --git a/server/private/routers/loginPage/loadLoginPage.ts b/server/private/routers/loginPage/loadLoginPage.ts index 06038201..1b10e205 100644 --- a/server/private/routers/loginPage/loadLoginPage.ts +++ b/server/private/routers/loginPage/loadLoginPage.ts @@ -23,8 +23,8 @@ import { fromError } from "zod-validation-error"; import { LoadLoginPageResponse } from "@server/routers/loginPage/types"; const querySchema = z.object({ - resourceId: z.coerce.number().int().positive().optional(), - idpId: z.coerce.number().int().positive().optional(), + resourceId: z.coerce.number().int().positive().optional(), + idpId: z.coerce.number().int().positive().optional(), orgId: z.string().min(1).optional(), fullDomain: z.string().min(1) }); diff --git a/server/private/routers/loginPage/updateLoginPage.ts b/server/private/routers/loginPage/updateLoginPage.ts index 8a8e8ab0..0d02b124 100644 --- a/server/private/routers/loginPage/updateLoginPage.ts +++ b/server/private/routers/loginPage/updateLoginPage.ts @@ -31,7 +31,7 @@ import { UpdateLoginPageResponse } from "@server/routers/loginPage/types"; const paramsSchema = z .object({ orgId: z.string(), - loginPageId: z.coerce.number() + loginPageId: z.coerce.number() }) .strict(); diff --git a/server/private/routers/orgIdp/deleteOrgIdp.ts b/server/private/routers/orgIdp/deleteOrgIdp.ts index 711d1ce3..ca0112b2 100644 --- a/server/private/routers/orgIdp/deleteOrgIdp.ts +++ b/server/private/routers/orgIdp/deleteOrgIdp.ts @@ -26,7 +26,7 @@ import { OpenAPITags, registry } from "@server/openApi"; const paramsSchema = z .object({ orgId: z.string().optional(), // Optional; used with org idp in saas - idpId: z.coerce.number() + idpId: z.coerce.number() }) .strict(); diff --git a/server/private/routers/orgIdp/getOrgIdp.ts b/server/private/routers/orgIdp/getOrgIdp.ts index 0e6689fc..3ba85412 100644 --- a/server/private/routers/orgIdp/getOrgIdp.ts +++ b/server/private/routers/orgIdp/getOrgIdp.ts @@ -30,7 +30,7 @@ import { GetOrgIdpResponse } from "@server/routers/orgIdp/types"; const paramsSchema = z .object({ orgId: z.string().nonempty(), - idpId: z.coerce.number() + idpId: z.coerce.number() }) .strict(); diff --git a/server/private/routers/orgIdp/updateOrgOidcIdp.ts b/server/private/routers/orgIdp/updateOrgOidcIdp.ts index f3e76054..3826f6b3 100644 --- a/server/private/routers/orgIdp/updateOrgOidcIdp.ts +++ b/server/private/routers/orgIdp/updateOrgOidcIdp.ts @@ -31,7 +31,7 @@ import { TierId } from "@server/lib/billing/tiers"; const paramsSchema = z .object({ orgId: z.string().nonempty(), - idpId: z.coerce.number() + idpId: z.coerce.number() }) .strict(); diff --git a/server/routers/idp/createIdpOrgPolicy.ts b/server/routers/idp/createIdpOrgPolicy.ts index b59d2fc7..b8c947b0 100644 --- a/server/routers/idp/createIdpOrgPolicy.ts +++ b/server/routers/idp/createIdpOrgPolicy.ts @@ -12,7 +12,7 @@ import { eq, and } from "drizzle-orm"; import { idp, idpOrg } from "@server/db"; const paramsSchema = z.strictObject({ - idpId: z.coerce.number(), + idpId: z.coerce.number(), orgId: z.string() }); diff --git a/server/routers/idp/deleteIdp.ts b/server/routers/idp/deleteIdp.ts index 58b231b7..56c0ca98 100644 --- a/server/routers/idp/deleteIdp.ts +++ b/server/routers/idp/deleteIdp.ts @@ -13,7 +13,7 @@ import { OpenAPITags, registry } from "@server/openApi"; const paramsSchema = z .object({ orgId: z.string().optional(), // Optional; used with org idp in saas - idpId: z.coerce.number() + idpId: z.coerce.number() }) .strict(); diff --git a/server/routers/idp/deleteIdpOrgPolicy.ts b/server/routers/idp/deleteIdpOrgPolicy.ts index 424bae4f..c5f18282 100644 --- a/server/routers/idp/deleteIdpOrgPolicy.ts +++ b/server/routers/idp/deleteIdpOrgPolicy.ts @@ -11,7 +11,7 @@ import { eq, and } from "drizzle-orm"; import { OpenAPITags, registry } from "@server/openApi"; const paramsSchema = z.strictObject({ - idpId: z.coerce.number(), + idpId: z.coerce.number(), orgId: z.string() }); diff --git a/server/routers/idp/generateOidcUrl.ts b/server/routers/idp/generateOidcUrl.ts index d99f61ba..2db8783f 100644 --- a/server/routers/idp/generateOidcUrl.ts +++ b/server/routers/idp/generateOidcUrl.ts @@ -19,7 +19,7 @@ import { TierId } from "@server/lib/billing/tiers"; const paramsSchema = z .object({ - idpId: z.coerce.number() + idpId: z.coerce.number() }) .strict(); diff --git a/server/routers/idp/getIdp.ts b/server/routers/idp/getIdp.ts index a202f4ea..e8651c84 100644 --- a/server/routers/idp/getIdp.ts +++ b/server/routers/idp/getIdp.ts @@ -14,7 +14,7 @@ import { decrypt } from "@server/lib/crypto"; const paramsSchema = z .object({ - idpId: z.coerce.number() + idpId: z.coerce.number() }) .strict(); diff --git a/server/routers/idp/listIdpOrgPolicies.ts b/server/routers/idp/listIdpOrgPolicies.ts index 481cddad..087b52f8 100644 --- a/server/routers/idp/listIdpOrgPolicies.ts +++ b/server/routers/idp/listIdpOrgPolicies.ts @@ -11,7 +11,7 @@ import { fromError } from "zod-validation-error"; import { OpenAPITags, registry } from "@server/openApi"; const paramsSchema = z.object({ - idpId: z.coerce.number() + idpId: z.coerce.number() }); const querySchema = z.strictObject({ diff --git a/server/routers/idp/updateIdpOrgPolicy.ts b/server/routers/idp/updateIdpOrgPolicy.ts index 586af476..82d3b5f2 100644 --- a/server/routers/idp/updateIdpOrgPolicy.ts +++ b/server/routers/idp/updateIdpOrgPolicy.ts @@ -11,7 +11,7 @@ import { eq, and } from "drizzle-orm"; import { idp, idpOrg } from "@server/db"; const paramsSchema = z.strictObject({ - idpId: z.coerce.number(), + idpId: z.coerce.number(), orgId: z.string() }); diff --git a/server/routers/idp/updateOidcIdp.ts b/server/routers/idp/updateOidcIdp.ts index c7ba0b0b..1dbdd00a 100644 --- a/server/routers/idp/updateOidcIdp.ts +++ b/server/routers/idp/updateOidcIdp.ts @@ -14,7 +14,7 @@ import config from "@server/lib/config"; const paramsSchema = z .object({ - idpId: z.coerce.number() + idpId: z.coerce.number() }) .strict(); diff --git a/server/routers/idp/validateOidcCallback.ts b/server/routers/idp/validateOidcCallback.ts index 7d1da1c5..e248f844 100644 --- a/server/routers/idp/validateOidcCallback.ts +++ b/server/routers/idp/validateOidcCallback.ts @@ -40,7 +40,7 @@ const ensureTrailingSlash = (url: string): string => { const paramsSchema = z .object({ - idpId: z.coerce.number() + idpId: z.coerce.number() }) .strict(); @@ -51,7 +51,7 @@ const bodySchema = z.object({ }); const querySchema = z.object({ - loginPageId: z.coerce.number().optional() + loginPageId: z.coerce.number().optional() }); export type ValidateOidcUrlCallbackResponse = { diff --git a/src/app/[orgId]/settings/resources/[niceId]/proxy/page.tsx b/src/app/[orgId]/settings/resources/[niceId]/proxy/page.tsx index 2e409cf0..f7a5a559 100644 --- a/src/app/[orgId]/settings/resources/[niceId]/proxy/page.tsx +++ b/src/app/[orgId]/settings/resources/[niceId]/proxy/page.tsx @@ -122,7 +122,7 @@ const addTargetSchema = z .object({ ip: z.string().refine(isTargetValid), method: z.string().nullable(), - port: z.coerce.number().int().positive(), + port: z.coerce.number().int().positive(), siteId: z.int() .positive({ error: "You must select a site for a target." diff --git a/src/app/[orgId]/settings/resources/[niceId]/rules/page.tsx b/src/app/[orgId]/settings/resources/[niceId]/rules/page.tsx index 0c011d94..9bcea073 100644 --- a/src/app/[orgId]/settings/resources/[niceId]/rules/page.tsx +++ b/src/app/[orgId]/settings/resources/[niceId]/rules/page.tsx @@ -93,7 +93,7 @@ const addRuleSchema = z.object({ action: z.enum(["ACCEPT", "DROP", "PASS"]), match: z.string(), value: z.string(), - priority: z.coerce.number().int().optional() + priority: z.coerce.number().int().optional() }); type LocalRule = ArrayElement & { diff --git a/src/app/[orgId]/settings/resources/create/page.tsx b/src/app/[orgId]/settings/resources/create/page.tsx index a4269a9f..c3655239 100644 --- a/src/app/[orgId]/settings/resources/create/page.tsx +++ b/src/app/[orgId]/settings/resources/create/page.tsx @@ -136,7 +136,7 @@ const addTargetSchema = z .object({ ip: z.string().refine(isTargetValid), method: z.string().nullable(), - port: z.coerce.number().int().positive(), + port: z.coerce.number().int().positive(), siteId: z.int().positive(), path: z.string().optional().nullable(), pathMatchType: z diff --git a/src/components/CreateShareLinkForm.tsx b/src/components/CreateShareLinkForm.tsx index 51cc52ab..3cc203f3 100644 --- a/src/components/CreateShareLinkForm.tsx +++ b/src/components/CreateShareLinkForm.tsx @@ -108,7 +108,7 @@ export default function CreateShareLinkForm({ resourceName: z.string(), resourceUrl: z.string(), timeUnit: z.string(), - timeValue: z.coerce.number().int().positive().min(1), + timeValue: z.coerce.number().int().positive().min(1), title: z.string().optional() }); diff --git a/src/components/GenerateLicenseKeyForm.tsx b/src/components/GenerateLicenseKeyForm.tsx index 6a8d402f..6a380082 100644 --- a/src/components/GenerateLicenseKeyForm.tsx +++ b/src/components/GenerateLicenseKeyForm.tsx @@ -81,8 +81,8 @@ export default function GenerateLicenseKeyForm({ jobTitle: z.string().min(1), primaryUse: z.string().min(1), industry: z.string().min(1), - prospectiveUsers: z.coerce.number().optional(), - prospectiveSites: z.coerce.number().optional(), + prospectiveUsers: z.coerce.number().optional(), + prospectiveSites: z.coerce.number().optional(), companyName: z.string().min(1), countryOfResidence: z.string().min(1), stateProvinceRegion: z.string().min(1),