diff --git a/apps/api/src/routes/v1_ratelimits_setOverride.ts b/apps/api/src/routes/v1_ratelimits_setOverride.ts index d07083d716..1073d31087 100644 --- a/apps/api/src/routes/v1_ratelimits_setOverride.ts +++ b/apps/api/src/routes/v1_ratelimits_setOverride.ts @@ -35,7 +35,7 @@ const route = createRoute({ "Identifier of your user, this can be their userId, an email, an ip or anything else. Wildcards ( * ) can be used to match multiple identifiers, More info can be found at https://www.unkey.com/docs/ratelimiting/overrides#wildcard-rules", example: "user_123", }), - limit: z.number().int().positive().openapi({ + limit: z.number().int().nonnegative().openapi({ description: "How many requests may pass in a given window.", example: 10, }), diff --git a/apps/dashboard/app/(app)/ratelimits/[namespaceId]/_components/identifier-dialog.tsx b/apps/dashboard/app/(app)/ratelimits/[namespaceId]/_components/identifier-dialog.tsx index f52229ed37..455fa1e442 100644 --- a/apps/dashboard/app/(app)/ratelimits/[namespaceId]/_components/identifier-dialog.tsx +++ b/apps/dashboard/app/(app)/ratelimits/[namespaceId]/_components/identifier-dialog.tsx @@ -25,11 +25,7 @@ const overrideValidationSchema = z.object({ .trim() .min(2, "Name is required and should be at least 2 characters") .max(250), - limit: z.coerce - .number() - .int() - .min(1, "Limit must be at least 1") - .max(10_000, "Limit cannot exceed 10,000"), + limit: z.coerce.number().int().nonnegative().max(10_000, "Limit cannot exceed 10,000"), duration: z.coerce .number() .int() @@ -139,7 +135,7 @@ export const IdentifierDialog = ({ onOpenChange={onOpenChange} title="Override Identifier" footer={ -
+
-
+
Changes are propagated globally within 60 seconds