From 12e849d989fbe1ab1511de7c42681170ccbf7796 Mon Sep 17 00:00:00 2001 From: Michael Silva Date: Tue, 10 Sep 2024 12:58:11 -0400 Subject: [PATCH 01/11] added ratelimit to dashboard --- apps/dashboard/lib/env.ts | 2 + apps/dashboard/lib/ratelimitValues.ts | 10 ++++ apps/dashboard/lib/trpc/routers/api/create.ts | 6 +-- apps/dashboard/lib/trpc/routers/api/delete.ts | 6 +-- .../routers/api/updateDeleteProtection.ts | 6 +-- .../lib/trpc/routers/api/updateIpWhitelist.ts | 6 +-- .../lib/trpc/routers/api/updateName.ts | 7 ++- .../lib/trpc/routers/gateway/create.ts | 6 +-- apps/dashboard/lib/trpc/routers/key/create.ts | 6 +-- .../lib/trpc/routers/key/createRootKey.ts | 6 +-- apps/dashboard/lib/trpc/routers/key/delete.ts | 6 +-- .../lib/trpc/routers/key/deleteRootKey.ts | 8 ++-- .../lib/trpc/routers/key/updateEnabled.ts | 6 +-- .../lib/trpc/routers/key/updateExpiration.ts | 6 +-- .../lib/trpc/routers/key/updateMetadata.ts | 6 +-- .../lib/trpc/routers/key/updateName.ts | 4 +- .../lib/trpc/routers/key/updateOwnerId.ts | 4 +- .../lib/trpc/routers/key/updateRatelimit.ts | 6 +-- .../lib/trpc/routers/key/updateRemaining.ts | 6 +-- .../lib/trpc/routers/llmGateway/create.ts | 6 +-- .../lib/trpc/routers/llmGateway/delete.ts | 9 ++-- .../routers/monitor/verification/create.ts | 6 +-- apps/dashboard/lib/trpc/routers/plain.ts | 6 +-- .../trpc/routers/ratelimit/createNamespace.ts | 6 +-- .../trpc/routers/ratelimit/createOverride.ts | 6 +-- .../trpc/routers/ratelimit/deleteNamespace.ts | 9 ++-- .../trpc/routers/ratelimit/deleteOverride.ts | 9 ++-- .../routers/ratelimit/updateNamespaceName.ts | 6 +-- .../trpc/routers/ratelimit/updateOverride.ts | 6 +-- apps/dashboard/lib/trpc/routers/rbac.ts | 46 +++++++++---------- .../routers/rbac/addPermissionToRootKey.ts | 6 +-- .../routers/rbac/connectPermissionToRole.ts | 6 +-- .../lib/trpc/routers/rbac/connectRoleToKey.ts | 6 +-- .../lib/trpc/routers/rbac/createPermission.ts | 6 +-- .../lib/trpc/routers/rbac/createRole.ts | 6 +-- .../lib/trpc/routers/rbac/deletePermission.ts | 9 ++-- .../lib/trpc/routers/rbac/deleteRole.ts | 9 ++-- .../rbac/disconnectPermissionFromRole.ts | 6 +-- .../routers/rbac/disconnectRoleFromKey.ts | 6 +-- .../rbac/removePermissionFromRootKey.ts | 6 +-- .../lib/trpc/routers/rbac/updatePermission.ts | 6 +-- .../lib/trpc/routers/rbac/updateRole.ts | 6 +-- .../lib/trpc/routers/secrets/create.ts | 6 +-- .../lib/trpc/routers/secrets/decrypt.ts | 6 +-- .../lib/trpc/routers/secrets/update.ts | 6 +-- .../lib/trpc/routers/webhook/create.ts | 6 +-- .../lib/trpc/routers/webhook/delete.ts | 9 ++-- .../lib/trpc/routers/webhook/toggle.ts | 6 +-- .../lib/trpc/routers/workspace/changeName.ts | 6 +-- .../lib/trpc/routers/workspace/changePlan.ts | 6 +-- .../lib/trpc/routers/workspace/create.ts | 6 +-- .../lib/trpc/routers/workspace/optIntoBeta.ts | 6 +-- apps/dashboard/lib/trpc/trpc.ts | 37 +++++++++++++++ 53 files changed, 236 insertions(+), 170 deletions(-) create mode 100644 apps/dashboard/lib/ratelimitValues.ts diff --git a/apps/dashboard/lib/env.ts b/apps/dashboard/lib/env.ts index 235e0f75f9..f7978e95f3 100644 --- a/apps/dashboard/lib/env.ts +++ b/apps/dashboard/lib/env.ts @@ -31,6 +31,8 @@ export const env = () => AGENT_TOKEN: z.string(), GITHUB_KEYS_URI: z.string().optional(), + + UNKEY_ROOT_KEY: z.string(), }) .parse(process.env); diff --git a/apps/dashboard/lib/ratelimitValues.ts b/apps/dashboard/lib/ratelimitValues.ts new file mode 100644 index 0000000000..7d03fc059c --- /dev/null +++ b/apps/dashboard/lib/ratelimitValues.ts @@ -0,0 +1,10 @@ +// Values for route types + +export const CREATE_LIMIT = 5; +export const CREATE_LIMIT_DURATION = 3; + +export const UPDATE_LIMIT = 25; +export const UPDATE_LIMIT_DURATION = 5; + +export const DELETE_LIMIT = 5; +export const DELETE_LIMIT_DURATION = 3; \ No newline at end of file diff --git a/apps/dashboard/lib/trpc/routers/api/create.ts b/apps/dashboard/lib/trpc/routers/api/create.ts index b14ba004cc..a7004773de 100644 --- a/apps/dashboard/lib/trpc/routers/api/create.ts +++ b/apps/dashboard/lib/trpc/routers/api/create.ts @@ -4,10 +4,10 @@ import { z } from "zod"; import { db, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { newId } from "@unkey/id"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const createApi = t.procedure - .use(auth) +export const createApi = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: z diff --git a/apps/dashboard/lib/trpc/routers/api/delete.ts b/apps/dashboard/lib/trpc/routers/api/delete.ts index dd325e15e1..1069a97c32 100644 --- a/apps/dashboard/lib/trpc/routers/api/delete.ts +++ b/apps/dashboard/lib/trpc/routers/api/delete.ts @@ -3,10 +3,10 @@ import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const deleteApi = t.procedure - .use(auth) +export const deleteApi = rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) .input( z.object({ apiId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts b/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts index 12781ce712..57948de1ed 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts @@ -3,10 +3,10 @@ import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const updateAPIDeleteProtection = t.procedure - .use(auth) +export const updateAPIDeleteProtection = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ apiId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts b/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts index 1c679ba2e2..70177235b9 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts @@ -3,10 +3,10 @@ import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const updateApiIpWhitelist = t.procedure - .use(auth) +export const updateApiIpWhitelist = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ ipWhitelist: z diff --git a/apps/dashboard/lib/trpc/routers/api/updateName.ts b/apps/dashboard/lib/trpc/routers/api/updateName.ts index 37352acb2a..bfc814e119 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateName.ts @@ -3,11 +3,10 @@ import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { th } from "@faker-js/faker"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const updateApiName = t.procedure - .use(auth) +export const updateApiName = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ name: z.string().min(3, "API names must contain at least 3 characters"), diff --git a/apps/dashboard/lib/trpc/routers/gateway/create.ts b/apps/dashboard/lib/trpc/routers/gateway/create.ts index 6a4bb304ed..505424107d 100644 --- a/apps/dashboard/lib/trpc/routers/gateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/gateway/create.ts @@ -2,10 +2,10 @@ import { db } from "@/lib/db"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const createGateway = t.procedure - .use(auth) +export const createGateway = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ subdomain: z diff --git a/apps/dashboard/lib/trpc/routers/key/create.ts b/apps/dashboard/lib/trpc/routers/key/create.ts index fd1b4b0bed..e240533032 100644 --- a/apps/dashboard/lib/trpc/routers/key/create.ts +++ b/apps/dashboard/lib/trpc/routers/key/create.ts @@ -4,10 +4,10 @@ import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { newKey } from "@unkey/keys"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const createKey = t.procedure - .use(auth) +export const createKey = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ prefix: z.string().optional(), diff --git a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts index f6aaa08a93..8c174906b6 100644 --- a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts @@ -6,11 +6,11 @@ import { newId } from "@unkey/id"; import { newKey } from "@unkey/keys"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; import { upsertPermissions } from "../rbac"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const createRootKey = t.procedure - .use(auth) +export const createRootKey = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: z.string().optional(), diff --git a/apps/dashboard/lib/trpc/routers/key/delete.ts b/apps/dashboard/lib/trpc/routers/key/delete.ts index 716e415250..5b8601940c 100644 --- a/apps/dashboard/lib/trpc/routers/key/delete.ts +++ b/apps/dashboard/lib/trpc/routers/key/delete.ts @@ -2,10 +2,10 @@ import { and, db, eq, inArray, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; -export const deleteKeys = t.procedure - .use(auth) +export const deleteKeys = rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) .input( z.object({ keyIds: z.array(z.string()), diff --git a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts index b8317c20ae..3b52dc8017 100644 --- a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts @@ -1,12 +1,12 @@ -import { and, db, eq, inArray, isNotNull, schema } from "@/lib/db"; +import { db, inArray, schema } from "@/lib/db"; import { env } from "@/lib/env"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; -export const deleteRootKeys = t.procedure - .use(auth) +export const deleteRootKeys = rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) .input( z.object({ keyIds: z.array(z.string()), diff --git a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts index d5b0029200..1bc8f91e46 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts @@ -2,10 +2,10 @@ import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const updateKeyEnabled = t.procedure - .use(auth) +export const updateKeyEnabled = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts index 507a68c5b7..3b27131c74 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts @@ -2,10 +2,10 @@ import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const updateKeyExpiration = t.procedure - .use(auth) +export const updateKeyExpiration = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts index 9edee16c99..1ae4f77349 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts @@ -2,10 +2,10 @@ import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyMetadata = t.procedure - .use(auth) +export const updateKeyMetadata = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateName.ts b/apps/dashboard/lib/trpc/routers/key/updateName.ts index 9fc6b11413..e92c8f11f7 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateName.ts @@ -3,8 +3,10 @@ import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { auth, t } from "../../trpc"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyName = t.procedure +export const updateKeyName = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .use(auth) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts index 8d78aa50fd..b4759ed4cd 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts @@ -3,8 +3,10 @@ import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { auth, t } from "../../trpc"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyOwnerId = t.procedure +export const updateKeyOwnerId = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .use(auth) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts index e409a247c4..6985071c5c 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts @@ -2,10 +2,10 @@ import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyRatelimit = t.procedure - .use(auth) +export const updateKeyRatelimit = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts index 53dd7dec15..7b7f9d29de 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts @@ -2,10 +2,10 @@ import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyRemaining = t.procedure - .use(auth) +export const updateKeyRemaining = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts index 5ce844376f..2310938a7d 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts @@ -4,10 +4,10 @@ import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const createLlmGateway = t.procedure - .use(auth) +export const createLlmGateway = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ subdomain: z.string().min(1).max(50), diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts b/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts index 0a64a2b2ad..a000c006f0 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts @@ -3,10 +3,13 @@ import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; -export const deleteLlmGateway = t.procedure - .use(auth) +export const deleteLlmGateway = rateLimitedProcedure({ + limit: DELETE_LIMIT, + duration: DELETE_LIMIT_DURATION, +}) .input(z.object({ gatewayId: z.string() })) .mutation(async ({ ctx, input }) => { const llmGateway = await db.query.llmGateways.findFirst({ diff --git a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts index 6d8fe85728..83ef0e9e10 100644 --- a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts +++ b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts @@ -4,10 +4,10 @@ import { TRPCError, createCallerFactory } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; import { router } from "../.."; -import { auth, t } from "../../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../../trpc"; -export const createVerificationMonitor = t.procedure - .use(auth) +export const createVerificationMonitor = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ interval: z diff --git a/apps/dashboard/lib/trpc/routers/plain.ts b/apps/dashboard/lib/trpc/routers/plain.ts index 6604d1905b..088e0a1faf 100644 --- a/apps/dashboard/lib/trpc/routers/plain.ts +++ b/apps/dashboard/lib/trpc/routers/plain.ts @@ -3,12 +3,12 @@ import { clerkClient } from "@clerk/nextjs"; import { PlainClient, uiComponent } from "@team-plain/typescript-sdk"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../trpc"; const issueType = z.enum(["bug", "feature", "security", "question", "payment"]); const severity = z.enum(["p0", "p1", "p2", "p3"]); -export const createPlainIssue = t.procedure - .use(auth) +export const createPlainIssue = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ issueType, diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts index c6d0107e38..7fbaca46ad 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts @@ -5,10 +5,10 @@ import { db, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { newId } from "@unkey/id"; -import { auth, t } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const createNamespace = t.procedure - .use(auth) +export const createNamespace = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: z.string().min(1).max(50), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts index c9435743d6..ff3a40f572 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts @@ -4,10 +4,10 @@ import { z } from "zod"; import { and, db, eq, isNull, schema, sql } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { newId } from "@unkey/id"; -import { auth, t } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const createOverride = t.procedure - .use(auth) +export const createOverride = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ namespaceId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts index 8fe135ce42..3c4b32ef09 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts @@ -3,10 +3,13 @@ import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; -export const deleteNamespace = t.procedure - .use(auth) +export const deleteNamespace = rateLimitedProcedure({ + limit: DELETE_LIMIT, + duration: DELETE_LIMIT_DURATION, +}) .input( z.object({ namespaceId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts index 15aeb8a83f..d5f7bd02f4 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts @@ -3,10 +3,13 @@ import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; -export const deleteOverride = t.procedure - .use(auth) +export const deleteOverride = rateLimitedProcedure({ + limit: DELETE_LIMIT, + duration: DELETE_LIMIT_DURATION, +}) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts b/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts index 6573fdad63..19f4d7339e 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts @@ -3,10 +3,10 @@ import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const updateNamespaceName = t.procedure - .use(auth) +export const updateNamespaceName = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ name: z.string().min(3, "namespace names must contain at least 3 characters"), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts index 03cc5b8cb5..1c6cdf80ae 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts @@ -3,10 +3,10 @@ import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const updateOverride = t.procedure - .use(auth) +export const updateOverride = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac.ts b/apps/dashboard/lib/trpc/routers/rbac.ts index e343031476..26250ff4e0 100644 --- a/apps/dashboard/lib/trpc/routers/rbac.ts +++ b/apps/dashboard/lib/trpc/routers/rbac.ts @@ -5,7 +5,15 @@ import { newId } from "@unkey/id"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; import type { Context } from "../context"; -import { auth, t } from "../trpc"; +import { rateLimitedProcedure, t } from "../trpc"; +import { + UPDATE_LIMIT_DURATION, + UPDATE_LIMIT, + CREATE_LIMIT, + CREATE_LIMIT_DURATION, + DELETE_LIMIT, + DELETE_LIMIT_DURATION, +} from "@/lib/ratelimitValues"; const nameSchema = z .string() @@ -16,8 +24,7 @@ const nameSchema = z }); export const rbacRouter = t.router({ - addPermissionToRootKey: t.procedure - .use(auth) + addPermissionToRootKey: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ rootKeyId: z.string(), @@ -75,8 +82,7 @@ export const rbacRouter = t.router({ .onDuplicateKeyUpdate({ set: { permissionId: permissions[0].id } }); await ingestAuditLogs(auditLogs); }), - removePermissionFromRootKey: t.procedure - .use(auth) + removePermissionFromRootKey: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ rootKeyId: z.string(), @@ -133,8 +139,7 @@ export const rbacRouter = t.router({ ), ); }), - connectPermissionToRole: t.procedure - .use(auth) + connectPermissionToRole: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), @@ -187,8 +192,7 @@ export const rbacRouter = t.router({ set: { ...tuple, updatedAt: new Date() }, }); }), - disconnectPermissionToRole: t.procedure - .use(auth) + disconnectPermissionToRole: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), @@ -216,8 +220,7 @@ export const rbacRouter = t.router({ ), ); }), - connectRoleToKey: t.procedure - .use(auth) + connectRoleToKey: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), @@ -270,8 +273,7 @@ export const rbacRouter = t.router({ set: { ...tuple, updatedAt: new Date() }, }); }), - disconnectRoleFromKey: t.procedure - .use(auth) + disconnectRoleFromKey: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), @@ -299,8 +301,7 @@ export const rbacRouter = t.router({ ), ); }), - createRole: t.procedure - .use(auth) + createRole: rateLimitedProcedure({limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: nameSchema, @@ -382,8 +383,7 @@ export const rbacRouter = t.router({ } return { roleId }; }), - updateRole: t.procedure - .use(auth) + updateRole: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ id: z.string(), @@ -416,8 +416,7 @@ export const rbacRouter = t.router({ } await db.update(schema.roles).set(input).where(eq(schema.roles.id, input.id)); }), - deleteRole: t.procedure - .use(auth) + deleteRole: rateLimitedProcedure({limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), @@ -450,8 +449,7 @@ export const rbacRouter = t.router({ .delete(schema.roles) .where(and(eq(schema.roles.id, input.roleId), eq(schema.roles.workspaceId, workspace.id))); }), - createPermission: t.procedure - .use(auth) + createPermission: rateLimitedProcedure({limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: nameSchema, @@ -500,8 +498,7 @@ export const rbacRouter = t.router({ return { permissionId }; }), - updatePermission: t.procedure - .use(auth) + updatePermission: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ id: z.string(), @@ -541,8 +538,7 @@ export const rbacRouter = t.router({ }) .where(eq(schema.permissions.id, input.id)); }), - deletePermission: t.procedure - .use(auth) + deletePermission: rateLimitedProcedure({limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) .input( z.object({ permissionId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts index 2ff9505a4b..1394a15afa 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts @@ -3,11 +3,11 @@ import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; import { upsertPermissions } from "../rbac"; -export const addPermissionToRootKey = t.procedure - .use(auth) +export const addPermissionToRootKey = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ rootKeyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts b/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts index 5aaee899c3..6374e33069 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts @@ -1,10 +1,10 @@ import { db, schema } from "@/lib/db"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const connectPermissionToRole = t.procedure - .use(auth) +export const connectPermissionToRole = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts index b73ad212cb..e528913293 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts @@ -2,10 +2,10 @@ import { db, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const connectRoleToKey = t.procedure - .use(auth) +export const connectRoleToKey = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts index 712296712f..bb14fc3473 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts @@ -3,7 +3,8 @@ import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; const nameSchema = z .string() @@ -13,8 +14,7 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const createPermission = t.procedure - .use(auth) +export const createPermission = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: nameSchema, diff --git a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts index 58641c7413..193b0cf0ea 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts @@ -3,7 +3,8 @@ import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; const nameSchema = z .string() @@ -13,8 +14,7 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const createRole = t.procedure - .use(auth) +export const createRole = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: nameSchema, diff --git a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts index 3d5630cd96..0d17cb771d 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts @@ -2,10 +2,13 @@ import { and, db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; -export const deletePermission = t.procedure - .use(auth) +export const deletePermission = rateLimitedProcedure({ + limit: DELETE_LIMIT, + duration: DELETE_LIMIT_DURATION, +}) .input( z.object({ permissionId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts index 76f6830768..789e9ff093 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts @@ -2,10 +2,13 @@ import { and, db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; -export const deleteRole = t.procedure - .use(auth) +export const deleteRole = rateLimitedProcedure({ + limit: DELETE_LIMIT, + duration: DELETE_LIMIT_DURATION, +}) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts index d9e1156adf..c7df688449 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts @@ -2,10 +2,10 @@ import { and, db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const disconnectPermissionFromRole = t.procedure - .use(auth) +export const disconnectPermissionFromRole = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts index 36ec640554..12d93b8cf8 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts @@ -2,10 +2,10 @@ import { and, db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const disconnectRoleFromKey = t.procedure - .use(auth) +export const disconnectRoleFromKey = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts index 467ddc6736..e7fedaeee5 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts @@ -2,10 +2,10 @@ import { and, db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const removePermissionFromRootKey = t.procedure - .use(auth) +export const removePermissionFromRootKey = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ rootKeyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts index 79c8077490..b91e9f02c7 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts @@ -2,7 +2,8 @@ import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; const nameSchema = z .string() @@ -12,8 +13,7 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const updatePermission = t.procedure - .use(auth) +export const updatePermission = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts index 95fb7ac02f..878e467047 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts @@ -2,7 +2,8 @@ import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; const nameSchema = z .string() @@ -12,8 +13,7 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const updateRole = t.procedure - .use(auth) +export const updateRole = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/secrets/create.ts b/apps/dashboard/lib/trpc/routers/secrets/create.ts index b818e319b3..7604c2f5a9 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/create.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/create.ts @@ -6,10 +6,10 @@ import { TRPCError } from "@trpc/server"; import { AesGCM } from "@unkey/encryption"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const createSecret = t.procedure - .use(auth) +export const createSecret = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts index 90f726cec6..74b7febede 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts @@ -2,10 +2,10 @@ import { db } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const decryptSecret = t.procedure - .use(auth) +export const decryptSecret = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ secretId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/secrets/update.ts b/apps/dashboard/lib/trpc/routers/secrets/update.ts index d0bf065a63..9ad1cbad9f 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/update.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/update.ts @@ -3,10 +3,10 @@ import { env } from "@/lib/env"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const updateSecret = t.procedure - .use(auth) +export const updateSecret = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ secretId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/webhook/create.ts b/apps/dashboard/lib/trpc/routers/webhook/create.ts index 97a5569a05..d357ee285f 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/create.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/create.ts @@ -7,10 +7,10 @@ import { sha256 } from "@unkey/hash"; import { newId } from "@unkey/id"; import { KeyV1, newKey } from "@unkey/keys"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const createWebhook = t.procedure - .use(auth) +export const createWebhook = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ destination: z.string().url(), diff --git a/apps/dashboard/lib/trpc/routers/webhook/delete.ts b/apps/dashboard/lib/trpc/routers/webhook/delete.ts index 6bb16353c0..6031856f1f 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/delete.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/delete.ts @@ -2,10 +2,13 @@ import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; -export const deleteWebhook = t.procedure - .use(auth) +export const deleteWebhook = rateLimitedProcedure({ + limit: DELETE_LIMIT, + duration: DELETE_LIMIT_DURATION, + }) .input( z.object({ webhookId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts index e17eedf0df..588fe68199 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts @@ -2,10 +2,10 @@ import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const toggleWebhook = t.procedure - .use(auth) +export const toggleWebhook = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ webhookId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts index 2b2806f2d7..26f82ec7b9 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts @@ -3,10 +3,10 @@ import { ingestAuditLogs } from "@/lib/tinybird"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const changeWorkspaceName = t.procedure - .use(auth) +export const changeWorkspaceName = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ name: z.string().min(3, "workspace names must contain at least 3 characters"), diff --git a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts index 2ecc60250d..6792ef96c7 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts @@ -5,10 +5,10 @@ import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; import Stripe from "stripe"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { rateLimitedProcedure } from "../../trpc"; +import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const changeWorkspacePlan = t.procedure - .use(auth) +export const changeWorkspacePlan = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ workspaceId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/workspace/create.ts b/apps/dashboard/lib/trpc/routers/workspace/create.ts index 741a402e6f..1c1b2f953d 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/create.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/create.ts @@ -5,10 +5,10 @@ import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const createWorkspace = t.procedure - .use(auth) +export const createWorkspace = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: z.string().min(1).max(50), diff --git a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts index 19296d7d29..a16f634470 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts @@ -2,10 +2,10 @@ import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { auth, t } from "../../trpc"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure } from "../../trpc"; -export const optWorkspaceIntoBeta = t.procedure - .use(auth) +export const optWorkspaceIntoBeta = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ feature: z.enum(["rbac", "ratelimit", "identities"]), diff --git a/apps/dashboard/lib/trpc/trpc.ts b/apps/dashboard/lib/trpc/trpc.ts index 33a4eefac9..49d5b1206e 100644 --- a/apps/dashboard/lib/trpc/trpc.ts +++ b/apps/dashboard/lib/trpc/trpc.ts @@ -2,6 +2,8 @@ import { TRPCError, initTRPC } from "@trpc/server"; import superjson from "superjson"; import type { Context } from "./context"; +import { Ratelimit } from "@unkey/ratelimit"; +import { env } from "../env"; export const t = initTRPC.context().create({ transformer: superjson }); @@ -17,3 +19,38 @@ export const auth = t.middleware(({ next, ctx }) => { }, }); }); + +export const protectedProcedure = t.procedure.use(auth); + +export const rateLimitedProcedure = ({ + limit, + duration, +}: { + limit: number; + duration: number; +}) => + protectedProcedure.use(async (opts) => { + const unkey = new Ratelimit({ + rootKey: env().UNKEY_ROOT_KEY, + namespace: `trpc_${opts.path}`, + limit: limit ?? 3, + duration: duration ? `${duration}s` : `${5}s`, + }); + + const ratelimit = await unkey.limit(opts.ctx.user.id); + console.log("login rate limits", ratelimit) + + if (!ratelimit.success) { + throw new TRPCError({ + code: "TOO_MANY_REQUESTS", + message: JSON.stringify(ratelimit), + }); + } + + return opts.next({ + ctx: { + ...opts.ctx, + remaining: ratelimit.remaining, + }, + }); + }); From d07a80a8be238a80427e01dde3dae480cc1bbd50 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 17:01:29 +0000 Subject: [PATCH 02/11] [autofix.ci] apply automated fixes --- apps/dashboard/lib/ratelimitValues.ts | 4 +- apps/dashboard/lib/trpc/routers/api/create.ts | 7 ++- apps/dashboard/lib/trpc/routers/api/delete.ts | 7 ++- .../routers/api/updateDeleteProtection.ts | 7 ++- .../lib/trpc/routers/api/updateIpWhitelist.ts | 7 ++- .../lib/trpc/routers/api/updateName.ts | 7 ++- .../lib/trpc/routers/gateway/create.ts | 7 ++- apps/dashboard/lib/trpc/routers/key/create.ts | 7 ++- .../lib/trpc/routers/key/createRootKey.ts | 7 ++- apps/dashboard/lib/trpc/routers/key/delete.ts | 7 ++- .../lib/trpc/routers/key/deleteRootKey.ts | 7 ++- .../lib/trpc/routers/key/updateEnabled.ts | 7 ++- .../lib/trpc/routers/key/updateExpiration.ts | 7 ++- .../lib/trpc/routers/key/updateMetadata.ts | 7 ++- .../lib/trpc/routers/key/updateName.ts | 7 ++- .../lib/trpc/routers/key/updateOwnerId.ts | 7 ++- .../lib/trpc/routers/key/updateRatelimit.ts | 7 ++- .../lib/trpc/routers/key/updateRemaining.ts | 7 ++- .../lib/trpc/routers/llmGateway/create.ts | 7 ++- .../lib/trpc/routers/llmGateway/delete.ts | 2 +- .../routers/monitor/verification/create.ts | 7 ++- apps/dashboard/lib/trpc/routers/plain.ts | 7 ++- .../trpc/routers/ratelimit/createNamespace.ts | 7 ++- .../trpc/routers/ratelimit/createOverride.ts | 7 ++- .../trpc/routers/ratelimit/deleteNamespace.ts | 2 +- .../trpc/routers/ratelimit/deleteOverride.ts | 2 +- .../routers/ratelimit/updateNamespaceName.ts | 7 ++- .../trpc/routers/ratelimit/updateOverride.ts | 7 ++- apps/dashboard/lib/trpc/routers/rbac.ts | 55 ++++++++++++------- .../routers/rbac/addPermissionToRootKey.ts | 7 ++- .../routers/rbac/connectPermissionToRole.ts | 7 ++- .../lib/trpc/routers/rbac/connectRoleToKey.ts | 7 ++- .../lib/trpc/routers/rbac/createPermission.ts | 7 ++- .../lib/trpc/routers/rbac/createRole.ts | 7 ++- .../lib/trpc/routers/rbac/deletePermission.ts | 2 +- .../lib/trpc/routers/rbac/deleteRole.ts | 2 +- .../rbac/disconnectPermissionFromRole.ts | 7 ++- .../routers/rbac/disconnectRoleFromKey.ts | 7 ++- .../rbac/removePermissionFromRootKey.ts | 7 ++- .../lib/trpc/routers/rbac/updatePermission.ts | 7 ++- .../lib/trpc/routers/rbac/updateRole.ts | 7 ++- .../lib/trpc/routers/secrets/create.ts | 7 ++- .../lib/trpc/routers/secrets/decrypt.ts | 7 ++- .../lib/trpc/routers/secrets/update.ts | 7 ++- .../lib/trpc/routers/webhook/create.ts | 7 ++- .../lib/trpc/routers/webhook/delete.ts | 4 +- .../lib/trpc/routers/webhook/toggle.ts | 7 ++- .../lib/trpc/routers/workspace/changeName.ts | 7 ++- .../lib/trpc/routers/workspace/changePlan.ts | 7 ++- .../lib/trpc/routers/workspace/create.ts | 7 ++- .../lib/trpc/routers/workspace/optIntoBeta.ts | 7 ++- apps/dashboard/lib/trpc/trpc.ts | 4 +- 52 files changed, 261 insertions(+), 117 deletions(-) diff --git a/apps/dashboard/lib/ratelimitValues.ts b/apps/dashboard/lib/ratelimitValues.ts index 7d03fc059c..4e2008d096 100644 --- a/apps/dashboard/lib/ratelimitValues.ts +++ b/apps/dashboard/lib/ratelimitValues.ts @@ -1,4 +1,4 @@ -// Values for route types +// Values for route types export const CREATE_LIMIT = 5; export const CREATE_LIMIT_DURATION = 3; @@ -7,4 +7,4 @@ export const UPDATE_LIMIT = 25; export const UPDATE_LIMIT_DURATION = 5; export const DELETE_LIMIT = 5; -export const DELETE_LIMIT_DURATION = 3; \ No newline at end of file +export const DELETE_LIMIT_DURATION = 3; diff --git a/apps/dashboard/lib/trpc/routers/api/create.ts b/apps/dashboard/lib/trpc/routers/api/create.ts index a7004773de..da22422eae 100644 --- a/apps/dashboard/lib/trpc/routers/api/create.ts +++ b/apps/dashboard/lib/trpc/routers/api/create.ts @@ -2,12 +2,15 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, schema } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { newId } from "@unkey/id"; import { rateLimitedProcedure } from "../../trpc"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const createApi = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createApi = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ name: z diff --git a/apps/dashboard/lib/trpc/routers/api/delete.ts b/apps/dashboard/lib/trpc/routers/api/delete.ts index 1069a97c32..cf4a3727f6 100644 --- a/apps/dashboard/lib/trpc/routers/api/delete.ts +++ b/apps/dashboard/lib/trpc/routers/api/delete.ts @@ -2,11 +2,14 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; +import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { rateLimitedProcedure } from "../../trpc"; -import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const deleteApi = rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) +export const deleteApi = rateLimitedProcedure({ + limit: DELETE_LIMIT, + duration: DELETE_LIMIT_DURATION, +}) .input( z.object({ apiId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts b/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts index 57948de1ed..a393d02748 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts @@ -2,11 +2,14 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const updateAPIDeleteProtection = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateAPIDeleteProtection = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ apiId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts b/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts index 70177235b9..93fcf8f188 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts @@ -2,11 +2,14 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const updateApiIpWhitelist = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateApiIpWhitelist = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ ipWhitelist: z diff --git a/apps/dashboard/lib/trpc/routers/api/updateName.ts b/apps/dashboard/lib/trpc/routers/api/updateName.ts index bfc814e119..0373baff26 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateName.ts @@ -2,11 +2,14 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const updateApiName = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateApiName = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ name: z.string().min(3, "API names must contain at least 3 characters"), diff --git a/apps/dashboard/lib/trpc/routers/gateway/create.ts b/apps/dashboard/lib/trpc/routers/gateway/create.ts index 505424107d..36d598c4ab 100644 --- a/apps/dashboard/lib/trpc/routers/gateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/gateway/create.ts @@ -1,11 +1,14 @@ import { db } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const createGateway = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createGateway = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ subdomain: z diff --git a/apps/dashboard/lib/trpc/routers/key/create.ts b/apps/dashboard/lib/trpc/routers/key/create.ts index e240533032..39a19e6821 100644 --- a/apps/dashboard/lib/trpc/routers/key/create.ts +++ b/apps/dashboard/lib/trpc/routers/key/create.ts @@ -1,13 +1,16 @@ import { db, schema } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { newKey } from "@unkey/keys"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const createKey = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createKey = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ prefix: z.string().optional(), diff --git a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts index 8c174906b6..c376b03f2e 100644 --- a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts @@ -1,5 +1,6 @@ import { type Permission, db, eq, schema } from "@/lib/db"; import { env } from "@/lib/env"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { type UnkeyAuditLog, ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; @@ -8,9 +9,11 @@ import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; import { upsertPermissions } from "../rbac"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const createRootKey = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createRootKey = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ name: z.string().optional(), diff --git a/apps/dashboard/lib/trpc/routers/key/delete.ts b/apps/dashboard/lib/trpc/routers/key/delete.ts index 5b8601940c..577b1c1ef7 100644 --- a/apps/dashboard/lib/trpc/routers/key/delete.ts +++ b/apps/dashboard/lib/trpc/routers/key/delete.ts @@ -1,11 +1,14 @@ import { and, db, eq, inArray, schema } from "@/lib/db"; +import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; -export const deleteKeys = rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) +export const deleteKeys = rateLimitedProcedure({ + limit: DELETE_LIMIT, + duration: DELETE_LIMIT_DURATION, +}) .input( z.object({ keyIds: z.array(z.string()), diff --git a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts index 3b52dc8017..97dc99cf87 100644 --- a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts @@ -1,12 +1,15 @@ import { db, inArray, schema } from "@/lib/db"; import { env } from "@/lib/env"; +import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; -export const deleteRootKeys = rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) +export const deleteRootKeys = rateLimitedProcedure({ + limit: DELETE_LIMIT, + duration: DELETE_LIMIT_DURATION, +}) .input( z.object({ keyIds: z.array(z.string()), diff --git a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts index 1bc8f91e46..69ad0aa1f6 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts @@ -1,11 +1,14 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const updateKeyEnabled = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateKeyEnabled = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts index 3b27131c74..5442581c23 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts @@ -1,11 +1,14 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; -export const updateKeyExpiration = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateKeyExpiration = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts index 1ae4f77349..69a7450779 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts @@ -1,11 +1,14 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyMetadata = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateKeyMetadata = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateName.ts b/apps/dashboard/lib/trpc/routers/key/updateName.ts index e92c8f11f7..5cc88e8144 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateName.ts @@ -1,12 +1,15 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { auth, t } from "../../trpc"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyName = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateKeyName = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .use(auth) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts index b4759ed4cd..ee04b1cd42 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts @@ -1,12 +1,15 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { auth, t } from "../../trpc"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyOwnerId = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateKeyOwnerId = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .use(auth) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts index 6985071c5c..f6f165834c 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts @@ -1,11 +1,14 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyRatelimit = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateKeyRatelimit = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts index 7b7f9d29de..5d44bc80c2 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts @@ -1,11 +1,14 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyRemaining = rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateKeyRemaining = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts index 2310938a7d..f0a6d7e476 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts @@ -1,13 +1,16 @@ import { db, schema } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const createLlmGateway = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createLlmGateway = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ subdomain: z.string().min(1).max(50), diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts b/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts index a000c006f0..421483dcdb 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts @@ -2,9 +2,9 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; +import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { rateLimitedProcedure } from "../../trpc"; -import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; export const deleteLlmGateway = rateLimitedProcedure({ limit: DELETE_LIMIT, diff --git a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts index 83ef0e9e10..513b7f8ea8 100644 --- a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts +++ b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts @@ -1,13 +1,16 @@ import { type Webhook, db, schema } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError, createCallerFactory } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; import { router } from "../.."; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../../trpc"; -export const createVerificationMonitor = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createVerificationMonitor = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ interval: z diff --git a/apps/dashboard/lib/trpc/routers/plain.ts b/apps/dashboard/lib/trpc/routers/plain.ts index 088e0a1faf..925c5b1f71 100644 --- a/apps/dashboard/lib/trpc/routers/plain.ts +++ b/apps/dashboard/lib/trpc/routers/plain.ts @@ -1,14 +1,17 @@ import { env } from "@/lib/env"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { clerkClient } from "@clerk/nextjs"; import { PlainClient, uiComponent } from "@team-plain/typescript-sdk"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../trpc"; const issueType = z.enum(["bug", "feature", "security", "question", "payment"]); const severity = z.enum(["p0", "p1", "p2", "p3"]); -export const createPlainIssue = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createPlainIssue = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ issueType, diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts index 7fbaca46ad..2c477279b6 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts @@ -2,13 +2,16 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, schema } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { newId } from "@unkey/id"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const createNamespace = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createNamespace = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ name: z.string().min(1).max(50), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts index ff3a40f572..d806716b60 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts @@ -2,12 +2,15 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { and, db, eq, isNull, schema, sql } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { newId } from "@unkey/id"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const createOverride = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createOverride = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ namespaceId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts index 3c4b32ef09..3ac80f9810 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts @@ -2,9 +2,9 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; +import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { rateLimitedProcedure } from "../../trpc"; -import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; export const deleteNamespace = rateLimitedProcedure({ limit: DELETE_LIMIT, diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts index d5f7bd02f4..124b5f9f72 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts @@ -2,9 +2,9 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; +import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { rateLimitedProcedure } from "../../trpc"; -import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; export const deleteOverride = rateLimitedProcedure({ limit: DELETE_LIMIT, diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts b/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts index 19f4d7339e..74ca30f2db 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts @@ -2,11 +2,14 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const updateNamespaceName = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateNamespaceName = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ name: z.string().min(3, "namespace names must contain at least 3 characters"), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts index 1c6cdf80ae..d7093074a3 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts @@ -2,11 +2,14 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const updateOverride = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateOverride = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac.ts b/apps/dashboard/lib/trpc/routers/rbac.ts index 26250ff4e0..b7a2bf3a1f 100644 --- a/apps/dashboard/lib/trpc/routers/rbac.ts +++ b/apps/dashboard/lib/trpc/routers/rbac.ts @@ -1,4 +1,12 @@ import { type Permission, and, db, eq, schema } from "@/lib/db"; +import { + CREATE_LIMIT, + CREATE_LIMIT_DURATION, + DELETE_LIMIT, + DELETE_LIMIT_DURATION, + UPDATE_LIMIT, + UPDATE_LIMIT_DURATION, +} from "@/lib/ratelimitValues"; import { type UnkeyAuditLog, ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; @@ -6,14 +14,6 @@ import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; import type { Context } from "../context"; import { rateLimitedProcedure, t } from "../trpc"; -import { - UPDATE_LIMIT_DURATION, - UPDATE_LIMIT, - CREATE_LIMIT, - CREATE_LIMIT_DURATION, - DELETE_LIMIT, - DELETE_LIMIT_DURATION, -} from "@/lib/ratelimitValues"; const nameSchema = z .string() @@ -24,7 +24,10 @@ const nameSchema = z }); export const rbacRouter = t.router({ - addPermissionToRootKey: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + addPermissionToRootKey: rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, + }) .input( z.object({ rootKeyId: z.string(), @@ -82,7 +85,10 @@ export const rbacRouter = t.router({ .onDuplicateKeyUpdate({ set: { permissionId: permissions[0].id } }); await ingestAuditLogs(auditLogs); }), - removePermissionFromRootKey: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + removePermissionFromRootKey: rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, + }) .input( z.object({ rootKeyId: z.string(), @@ -139,7 +145,10 @@ export const rbacRouter = t.router({ ), ); }), - connectPermissionToRole: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + connectPermissionToRole: rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, + }) .input( z.object({ roleId: z.string(), @@ -192,7 +201,10 @@ export const rbacRouter = t.router({ set: { ...tuple, updatedAt: new Date() }, }); }), - disconnectPermissionToRole: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + disconnectPermissionToRole: rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, + }) .input( z.object({ roleId: z.string(), @@ -220,7 +232,7 @@ export const rbacRouter = t.router({ ), ); }), - connectRoleToKey: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + connectRoleToKey: rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), @@ -273,7 +285,10 @@ export const rbacRouter = t.router({ set: { ...tuple, updatedAt: new Date() }, }); }), - disconnectRoleFromKey: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + disconnectRoleFromKey: rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, + }) .input( z.object({ roleId: z.string(), @@ -301,7 +316,7 @@ export const rbacRouter = t.router({ ), ); }), - createRole: rateLimitedProcedure({limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) + createRole: rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: nameSchema, @@ -383,7 +398,7 @@ export const rbacRouter = t.router({ } return { roleId }; }), - updateRole: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + updateRole: rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ id: z.string(), @@ -416,7 +431,7 @@ export const rbacRouter = t.router({ } await db.update(schema.roles).set(input).where(eq(schema.roles.id, input.id)); }), - deleteRole: rateLimitedProcedure({limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) + deleteRole: rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) .input( z.object({ roleId: z.string(), @@ -449,7 +464,7 @@ export const rbacRouter = t.router({ .delete(schema.roles) .where(and(eq(schema.roles.id, input.roleId), eq(schema.roles.workspaceId, workspace.id))); }), - createPermission: rateLimitedProcedure({limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) + createPermission: rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) .input( z.object({ name: nameSchema, @@ -498,7 +513,7 @@ export const rbacRouter = t.router({ return { permissionId }; }), - updatePermission: rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + updatePermission: rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) .input( z.object({ id: z.string(), @@ -538,7 +553,7 @@ export const rbacRouter = t.router({ }) .where(eq(schema.permissions.id, input.id)); }), - deletePermission: rateLimitedProcedure({limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) + deletePermission: rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) .input( z.object({ permissionId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts index 1394a15afa..b0288b4579 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts @@ -1,13 +1,16 @@ import { db, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; import { upsertPermissions } from "../rbac"; -export const addPermissionToRootKey = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const addPermissionToRootKey = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ rootKeyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts b/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts index 6374e33069..950e9e1d90 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts @@ -1,10 +1,13 @@ import { db, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const connectPermissionToRole = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const connectPermissionToRole = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts index e528913293..7c774e8709 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts @@ -1,11 +1,14 @@ import { db, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const connectRoleToKey = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const connectRoleToKey = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts index bb14fc3473..d27ce1a0ec 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts @@ -1,9 +1,9 @@ import { db, schema } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; const nameSchema = z @@ -14,7 +14,10 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const createPermission = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createPermission = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ name: nameSchema, diff --git a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts index 193b0cf0ea..b166590903 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts @@ -1,9 +1,9 @@ import { db, schema } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; const nameSchema = z @@ -14,7 +14,10 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const createRole = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createRole = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ name: nameSchema, diff --git a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts index 0d17cb771d..55f659efda 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts @@ -1,9 +1,9 @@ import { and, db, eq, schema } from "@/lib/db"; +import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; export const deletePermission = rateLimitedProcedure({ limit: DELETE_LIMIT, diff --git a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts index 789e9ff093..baed3ce54e 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts @@ -1,9 +1,9 @@ import { and, db, eq, schema } from "@/lib/db"; +import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; export const deleteRole = rateLimitedProcedure({ limit: DELETE_LIMIT, diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts index c7df688449..e6b2db215d 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts @@ -1,11 +1,14 @@ import { and, db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const disconnectPermissionFromRole = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const disconnectPermissionFromRole = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts index 12d93b8cf8..10af84f2d3 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts @@ -1,11 +1,14 @@ import { and, db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const disconnectRoleFromKey = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const disconnectRoleFromKey = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts index e7fedaeee5..c87640c7fd 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts @@ -1,11 +1,14 @@ import { and, db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const removePermissionFromRootKey = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const removePermissionFromRootKey = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ rootKeyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts index b91e9f02c7..458021e20a 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts @@ -1,9 +1,9 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; const nameSchema = z .string() @@ -13,7 +13,10 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const updatePermission = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updatePermission = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts index 878e467047..670a6acfbc 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts @@ -1,9 +1,9 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; const nameSchema = z .string() @@ -13,7 +13,10 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const updateRole = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateRole = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/secrets/create.ts b/apps/dashboard/lib/trpc/routers/secrets/create.ts index 7604c2f5a9..8100bbcb25 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/create.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/create.ts @@ -1,15 +1,18 @@ import { db, schema } from "@/lib/db"; import { env } from "@/lib/env"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; import { AesGCM } from "@unkey/encryption"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const createSecret = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createSecret = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ name: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts index 74b7febede..3bfe98a7f7 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts @@ -1,11 +1,14 @@ import { db } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const decryptSecret = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const decryptSecret = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ secretId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/secrets/update.ts b/apps/dashboard/lib/trpc/routers/secrets/update.ts index 9ad1cbad9f..15148c4e66 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/update.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/update.ts @@ -1,12 +1,15 @@ import { type Secret, db, eq, schema } from "@/lib/db"; import { env } from "@/lib/env"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const updateSecret = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const updateSecret = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ secretId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/webhook/create.ts b/apps/dashboard/lib/trpc/routers/webhook/create.ts index d357ee285f..3b2b284437 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/create.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/create.ts @@ -1,5 +1,6 @@ import { db, schema } from "@/lib/db"; import { env } from "@/lib/env"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { AesGCM } from "@unkey/encryption"; @@ -7,10 +8,12 @@ import { sha256 } from "@unkey/hash"; import { newId } from "@unkey/id"; import { KeyV1, newKey } from "@unkey/keys"; import { z } from "zod"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const createWebhook = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createWebhook = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ destination: z.string().url(), diff --git a/apps/dashboard/lib/trpc/routers/webhook/delete.ts b/apps/dashboard/lib/trpc/routers/webhook/delete.ts index 6031856f1f..6f1839e48e 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/delete.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/delete.ts @@ -1,14 +1,14 @@ import { db, eq, schema } from "@/lib/db"; +import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { DELETE_LIMIT_DURATION, DELETE_LIMIT } from "@/lib/ratelimitValues"; export const deleteWebhook = rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION, - }) +}) .input( z.object({ webhookId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts index 588fe68199..353eba92c2 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts @@ -1,11 +1,14 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const toggleWebhook = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const toggleWebhook = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ webhookId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts index 26f82ec7b9..7ee1475794 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts @@ -1,12 +1,15 @@ import { db, eq, schema } from "@/lib/db"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const changeWorkspaceName = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const changeWorkspaceName = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ name: z.string().min(3, "workspace names must contain at least 3 characters"), diff --git a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts index 6792ef96c7..f81e728dfd 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts @@ -1,14 +1,17 @@ import { db, eq, schema } from "@/lib/db"; import { stripeEnv } from "@/lib/env"; +import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; import Stripe from "stripe"; import { z } from "zod"; import { rateLimitedProcedure } from "../../trpc"; -import { UPDATE_LIMIT_DURATION, UPDATE_LIMIT } from "@/lib/ratelimitValues"; -export const changeWorkspacePlan = rateLimitedProcedure({limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) +export const changeWorkspacePlan = rateLimitedProcedure({ + limit: UPDATE_LIMIT, + duration: UPDATE_LIMIT_DURATION, +}) .input( z.object({ workspaceId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/workspace/create.ts b/apps/dashboard/lib/trpc/routers/workspace/create.ts index 1c1b2f953d..ebe3bd9711 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/create.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/create.ts @@ -1,14 +1,17 @@ import { type Workspace, db, schema } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const createWorkspace = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const createWorkspace = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ name: z.string().min(1).max(50), diff --git a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts index a16f634470..22530da4de 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts @@ -1,11 +1,14 @@ import { db, eq, schema } from "@/lib/db"; +import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { rateLimitedProcedure } from "../../trpc"; -export const optWorkspaceIntoBeta = rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) +export const optWorkspaceIntoBeta = rateLimitedProcedure({ + limit: CREATE_LIMIT, + duration: CREATE_LIMIT_DURATION, +}) .input( z.object({ feature: z.enum(["rbac", "ratelimit", "identities"]), diff --git a/apps/dashboard/lib/trpc/trpc.ts b/apps/dashboard/lib/trpc/trpc.ts index 49d5b1206e..a7dd64ab58 100644 --- a/apps/dashboard/lib/trpc/trpc.ts +++ b/apps/dashboard/lib/trpc/trpc.ts @@ -1,9 +1,9 @@ import { TRPCError, initTRPC } from "@trpc/server"; import superjson from "superjson"; -import type { Context } from "./context"; import { Ratelimit } from "@unkey/ratelimit"; import { env } from "../env"; +import type { Context } from "./context"; export const t = initTRPC.context().create({ transformer: superjson }); @@ -38,7 +38,7 @@ export const rateLimitedProcedure = ({ }); const ratelimit = await unkey.limit(opts.ctx.user.id); - console.log("login rate limits", ratelimit) + console.log("login rate limits", ratelimit); if (!ratelimit.success) { throw new TRPCError({ From 59edb751cc79ecad47aee7efca53ef6d2dc483ee Mon Sep 17 00:00:00 2001 From: Michael Silva Date: Mon, 16 Sep 2024 11:24:10 -0400 Subject: [PATCH 03/11] consolidate ratelimit for dashboard --- apps/dashboard/lib/ratelimitValues.ts | 10 ---- apps/dashboard/lib/trpc/ratelimitProcedure.ts | 57 +++++++++++++++++++ apps/dashboard/lib/trpc/routers/api/create.ts | 10 +--- apps/dashboard/lib/trpc/routers/api/delete.ts | 9 +-- .../routers/api/updateDeleteProtection.ts | 8 +-- .../lib/trpc/routers/api/updateIpWhitelist.ts | 9 +-- .../lib/trpc/routers/api/updateName.ts | 9 +-- .../lib/trpc/routers/gateway/create.ts | 9 +-- apps/dashboard/lib/trpc/routers/key/create.ts | 9 +-- .../lib/trpc/routers/key/createRootKey.ts | 9 +-- apps/dashboard/lib/trpc/routers/key/delete.ts | 9 +-- .../lib/trpc/routers/key/deleteRootKey.ts | 9 +-- .../lib/trpc/routers/key/updateEnabled.ts | 9 +-- .../lib/trpc/routers/key/updateExpiration.ts | 9 +-- .../lib/trpc/routers/key/updateMetadata.ts | 9 +-- .../lib/trpc/routers/key/updateName.ts | 9 +-- .../lib/trpc/routers/key/updateOwnerId.ts | 10 +--- .../lib/trpc/routers/key/updateRatelimit.ts | 9 +-- .../lib/trpc/routers/key/updateRemaining.ts | 9 +-- .../lib/trpc/routers/llmGateway/create.ts | 9 +-- .../lib/trpc/routers/llmGateway/delete.ts | 9 +-- .../routers/monitor/verification/create.ts | 9 +-- .../trpc/routers/ratelimit/createNamespace.ts | 9 +-- .../trpc/routers/ratelimit/createOverride.ts | 9 +-- .../trpc/routers/ratelimit/deleteNamespace.ts | 9 +-- .../trpc/routers/ratelimit/deleteOverride.ts | 9 +-- .../routers/ratelimit/updateNamespaceName.ts | 9 +-- .../trpc/routers/ratelimit/updateOverride.ts | 9 +-- .../routers/rbac/addPermissionToRootKey.ts | 8 +-- .../routers/rbac/connectPermissionToRole.ts | 9 +-- .../lib/trpc/routers/rbac/connectRoleToKey.ts | 9 +-- .../lib/trpc/routers/rbac/createPermission.ts | 8 +-- .../lib/trpc/routers/rbac/createRole.ts | 9 +-- .../lib/trpc/routers/rbac/deletePermission.ts | 9 +-- .../lib/trpc/routers/rbac/deleteRole.ts | 9 +-- .../rbac/disconnectPermissionFromRole.ts | 9 +-- .../routers/rbac/disconnectRoleFromKey.ts | 9 +-- .../rbac/removePermissionFromRootKey.ts | 9 +-- .../lib/trpc/routers/rbac/updatePermission.ts | 9 +-- .../lib/trpc/routers/rbac/updateRole.ts | 9 +-- .../lib/trpc/routers/secrets/create.ts | 9 +-- .../lib/trpc/routers/secrets/decrypt.ts | 8 +-- .../lib/trpc/routers/secrets/update.ts | 9 +-- .../lib/trpc/routers/webhook/create.ts | 9 +-- .../lib/trpc/routers/webhook/delete.ts | 9 +-- .../lib/trpc/routers/webhook/toggle.ts | 8 +-- .../lib/trpc/routers/workspace/changeName.ts | 10 ++-- .../lib/trpc/routers/workspace/changePlan.ts | 9 +-- .../lib/trpc/routers/workspace/create.ts | 9 +-- .../lib/trpc/routers/workspace/optIntoBeta.ts | 9 +-- apps/dashboard/lib/trpc/trpc.ts | 32 ----------- 51 files changed, 197 insertions(+), 332 deletions(-) delete mode 100644 apps/dashboard/lib/ratelimitValues.ts create mode 100644 apps/dashboard/lib/trpc/ratelimitProcedure.ts diff --git a/apps/dashboard/lib/ratelimitValues.ts b/apps/dashboard/lib/ratelimitValues.ts deleted file mode 100644 index 4e2008d096..0000000000 --- a/apps/dashboard/lib/ratelimitValues.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Values for route types - -export const CREATE_LIMIT = 5; -export const CREATE_LIMIT_DURATION = 3; - -export const UPDATE_LIMIT = 25; -export const UPDATE_LIMIT_DURATION = 5; - -export const DELETE_LIMIT = 5; -export const DELETE_LIMIT_DURATION = 3; diff --git a/apps/dashboard/lib/trpc/ratelimitProcedure.ts b/apps/dashboard/lib/trpc/ratelimitProcedure.ts new file mode 100644 index 0000000000..3803763a96 --- /dev/null +++ b/apps/dashboard/lib/trpc/ratelimitProcedure.ts @@ -0,0 +1,57 @@ +// Values for route types +import { protectedProcedure } from "./trpc"; +import { Ratelimit } from "@unkey/ratelimit"; +import { env } from "../env"; +import { TRPCError } from "@trpc/server"; + +//Values are in seconds currently +export const CREATE_LIMIT_SEC = 5; +export const CREATE_LIMIT_DURATION_SEC = "3s"; + +export const UPDATE_LIMIT_SEC = 25; +export const UPDATE_LIMIT_DURATION_SEC = "5s"; + +export const DELETE_LIMIT_SEC = 5; +export const DELETE_LIMIT_DURATION_SEC = "3s"; + +export const ratelimit = { + create: new Ratelimit({ + rootKey: env().UNKEY_ROOT_KEY, + namespace: "trpc_create", + limit: CREATE_LIMIT_SEC ?? 3, + duration: CREATE_LIMIT_DURATION_SEC, + }), + + update: new Ratelimit({ + rootKey: env().UNKEY_ROOT_KEY, + namespace: "trpc_update", + limit: UPDATE_LIMIT_SEC, + duration: UPDATE_LIMIT_DURATION_SEC, + }), + delete: new Ratelimit({ + rootKey: env().UNKEY_ROOT_KEY, + namespace: "trpc_delete", + limit: DELETE_LIMIT_SEC, + duration: DELETE_LIMIT_DURATION_SEC, + }), +}; +export const rateLimitedProcedure = (ratelimit: Ratelimit) => + protectedProcedure.use(async (opts) => { + const unkey = ratelimit; + + const response = await unkey.limit(opts.ctx.user.id); + + if (!response.success) { + throw new TRPCError({ + code: "TOO_MANY_REQUESTS", + message: JSON.stringify(response), + }); + } + + return opts.next({ + ctx: { + ...opts.ctx, + remaining: response.remaining, + }, + }); + }); diff --git a/apps/dashboard/lib/trpc/routers/api/create.ts b/apps/dashboard/lib/trpc/routers/api/create.ts index da22422eae..b322a4f7a3 100644 --- a/apps/dashboard/lib/trpc/routers/api/create.ts +++ b/apps/dashboard/lib/trpc/routers/api/create.ts @@ -2,20 +2,16 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, schema } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; import { newId } from "@unkey/id"; -import { rateLimitedProcedure } from "../../trpc"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; -export const createApi = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) +export const createApi = rateLimitedProcedure(ratelimit.create) .input( z.object({ name: z .string() - .min(1, "workspace names must contain at least 3 characters") + .min(3, "workspace names must contain at least 3 characters") .max(50, "workspace names must contain at most 50 characters"), }), ) diff --git a/apps/dashboard/lib/trpc/routers/api/delete.ts b/apps/dashboard/lib/trpc/routers/api/delete.ts index cf4a3727f6..69f692e20b 100644 --- a/apps/dashboard/lib/trpc/routers/api/delete.ts +++ b/apps/dashboard/lib/trpc/routers/api/delete.ts @@ -2,14 +2,11 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { rateLimitedProcedure } from "../../trpc"; -export const deleteApi = rateLimitedProcedure({ - limit: DELETE_LIMIT, - duration: DELETE_LIMIT_DURATION, -}) + +export const deleteApi = rateLimitedProcedure(ratelimit.delete) .input( z.object({ apiId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts b/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts index a393d02748..2e92200d6b 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts @@ -2,14 +2,10 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { rateLimitedProcedure } from "../../trpc"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; -export const updateAPIDeleteProtection = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) +export const updateAPIDeleteProtection = rateLimitedProcedure(ratelimit.update) .input( z.object({ apiId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts b/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts index 93fcf8f188..797577a43a 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts @@ -2,14 +2,11 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateApiIpWhitelist = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateApiIpWhitelist = rateLimitedProcedure(ratelimit.update) .input( z.object({ ipWhitelist: z diff --git a/apps/dashboard/lib/trpc/routers/api/updateName.ts b/apps/dashboard/lib/trpc/routers/api/updateName.ts index 0373baff26..51ac5193b2 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateName.ts @@ -2,14 +2,11 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateApiName = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateApiName = rateLimitedProcedure(ratelimit.update) .input( z.object({ name: z.string().min(3, "API names must contain at least 3 characters"), diff --git a/apps/dashboard/lib/trpc/routers/gateway/create.ts b/apps/dashboard/lib/trpc/routers/gateway/create.ts index 36d598c4ab..01afd70e57 100644 --- a/apps/dashboard/lib/trpc/routers/gateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/gateway/create.ts @@ -1,14 +1,11 @@ import { db } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const createGateway = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) + +export const createGateway = rateLimitedProcedure(ratelimit.create) .input( z.object({ subdomain: z diff --git a/apps/dashboard/lib/trpc/routers/key/create.ts b/apps/dashboard/lib/trpc/routers/key/create.ts index 39a19e6821..6b01cef0fb 100644 --- a/apps/dashboard/lib/trpc/routers/key/create.ts +++ b/apps/dashboard/lib/trpc/routers/key/create.ts @@ -1,16 +1,13 @@ import { db, schema } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { newKey } from "@unkey/keys"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const createKey = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) + +export const createKey = rateLimitedProcedure(ratelimit.create) .input( z.object({ prefix: z.string().optional(), diff --git a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts index c376b03f2e..f596b41f2a 100644 --- a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts @@ -1,19 +1,16 @@ import { type Permission, db, eq, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { type UnkeyAuditLog, ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { newKey } from "@unkey/keys"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; + import { upsertPermissions } from "../rbac"; -export const createRootKey = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) +export const createRootKey = rateLimitedProcedure(ratelimit.create) .input( z.object({ name: z.string().optional(), diff --git a/apps/dashboard/lib/trpc/routers/key/delete.ts b/apps/dashboard/lib/trpc/routers/key/delete.ts index 577b1c1ef7..46db550543 100644 --- a/apps/dashboard/lib/trpc/routers/key/delete.ts +++ b/apps/dashboard/lib/trpc/routers/key/delete.ts @@ -1,14 +1,11 @@ import { and, db, eq, inArray, schema } from "@/lib/db"; -import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const deleteKeys = rateLimitedProcedure({ - limit: DELETE_LIMIT, - duration: DELETE_LIMIT_DURATION, -}) + +export const deleteKeys = rateLimitedProcedure(ratelimit.delete) .input( z.object({ keyIds: z.array(z.string()), diff --git a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts index 97dc99cf87..191c929c8e 100644 --- a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts @@ -1,15 +1,12 @@ import { db, inArray, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const deleteRootKeys = rateLimitedProcedure({ - limit: DELETE_LIMIT, - duration: DELETE_LIMIT_DURATION, -}) + +export const deleteRootKeys = rateLimitedProcedure(ratelimit.delete) .input( z.object({ keyIds: z.array(z.string()), diff --git a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts index 69ad0aa1f6..818591ab7c 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts @@ -1,14 +1,11 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyEnabled = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateKeyEnabled = rateLimitedProcedure(ratelimit.update) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts index 5442581c23..87ca1926bb 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts @@ -1,14 +1,11 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyExpiration = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateKeyExpiration = rateLimitedProcedure(ratelimit.update) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts index 69a7450779..3780ea9b2d 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts @@ -1,14 +1,11 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyMetadata = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateKeyMetadata = rateLimitedProcedure(ratelimit.update) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateName.ts b/apps/dashboard/lib/trpc/routers/key/updateName.ts index 5cc88e8144..6e61c58cff 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateName.ts @@ -1,15 +1,12 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { auth, t } from "../../trpc"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyName = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateKeyName = rateLimitedProcedure(ratelimit.update) .use(auth) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts index ee04b1cd42..2d98bd06ce 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts @@ -1,16 +1,12 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { auth, t } from "../../trpc"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyOwnerId = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) - .use(auth) + +export const updateKeyOwnerId = rateLimitedProcedure(ratelimit.update) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts index f6f165834c..582c5955fe 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts @@ -1,14 +1,11 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyRatelimit = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateKeyRatelimit = rateLimitedProcedure(ratelimit.update) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts index 5d44bc80c2..ad13274d9a 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts @@ -1,14 +1,11 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateKeyRemaining = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateKeyRemaining = rateLimitedProcedure(ratelimit.update) .input( z.object({ keyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts index f0a6d7e476..fc064c2a11 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts @@ -1,16 +1,13 @@ import { db, schema } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const createLlmGateway = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) + +export const createLlmGateway = rateLimitedProcedure(ratelimit.create) .input( z.object({ subdomain: z.string().min(1).max(50), diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts b/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts index 421483dcdb..e69755df04 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts @@ -2,14 +2,11 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { rateLimitedProcedure } from "../../trpc"; -export const deleteLlmGateway = rateLimitedProcedure({ - limit: DELETE_LIMIT, - duration: DELETE_LIMIT_DURATION, -}) + +export const deleteLlmGateway = rateLimitedProcedure(ratelimit.delete) .input(z.object({ gatewayId: z.string() })) .mutation(async ({ ctx, input }) => { const llmGateway = await db.query.llmGateways.findFirst({ diff --git a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts index 513b7f8ea8..056ad67670 100644 --- a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts +++ b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts @@ -1,16 +1,13 @@ import { type Webhook, db, schema } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError, createCallerFactory } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; import { router } from "../.."; -import { rateLimitedProcedure } from "../../../trpc"; -export const createVerificationMonitor = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) + +export const createVerificationMonitor = rateLimitedProcedure(ratelimit.create) .input( z.object({ interval: z diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts index 2c477279b6..c808bbb20e 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts @@ -2,16 +2,13 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, schema } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { newId } from "@unkey/id"; -import { rateLimitedProcedure } from "../../trpc"; -export const createNamespace = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) + +export const createNamespace = rateLimitedProcedure(ratelimit.create) .input( z.object({ name: z.string().min(1).max(50), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts index d806716b60..819bd64468 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts @@ -2,15 +2,12 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { and, db, eq, isNull, schema, sql } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { newId } from "@unkey/id"; -import { rateLimitedProcedure } from "../../trpc"; -export const createOverride = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) + +export const createOverride = rateLimitedProcedure(ratelimit.create) .input( z.object({ namespaceId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts index 3ac80f9810..cdc1f2c5db 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts @@ -2,14 +2,11 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { rateLimitedProcedure } from "../../trpc"; -export const deleteNamespace = rateLimitedProcedure({ - limit: DELETE_LIMIT, - duration: DELETE_LIMIT_DURATION, -}) + +export const deleteNamespace = rateLimitedProcedure(ratelimit.delete) .input( z.object({ namespaceId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts index 124b5f9f72..a0ce59efdd 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts @@ -2,14 +2,11 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { rateLimitedProcedure } from "../../trpc"; -export const deleteOverride = rateLimitedProcedure({ - limit: DELETE_LIMIT, - duration: DELETE_LIMIT_DURATION, -}) + +export const deleteOverride = rateLimitedProcedure(ratelimit.create) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts b/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts index 74ca30f2db..62feba530a 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts @@ -2,14 +2,11 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateNamespaceName = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateNamespaceName = rateLimitedProcedure(ratelimit.update) .input( z.object({ name: z.string().min(3, "namespace names must contain at least 3 characters"), diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts index d7093074a3..eea5bac927 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts @@ -2,14 +2,11 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateOverride = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateOverride = rateLimitedProcedure(ratelimit.update) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts index b0288b4579..941c9d0a5e 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts @@ -1,16 +1,12 @@ import { db, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; import { upsertPermissions } from "../rbac"; -export const addPermissionToRootKey = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) +export const addPermissionToRootKey = rateLimitedProcedure(ratelimit.create) .input( z.object({ rootKeyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts b/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts index 950e9e1d90..70caeb57fc 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts @@ -1,13 +1,10 @@ import { db, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const connectPermissionToRole = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const connectPermissionToRole = rateLimitedProcedure(ratelimit.update) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts index 7c774e8709..42bb53c344 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts @@ -1,14 +1,11 @@ import { db, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const connectRoleToKey = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const connectRoleToKey = rateLimitedProcedure(ratelimit.update) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts index d27ce1a0ec..d492a377e6 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts @@ -1,10 +1,9 @@ import { db, schema } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; const nameSchema = z .string() @@ -14,10 +13,7 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const createPermission = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) +export const createPermission = rateLimitedProcedure(ratelimit.create) .input( z.object({ name: nameSchema, diff --git a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts index b166590903..89d7f75d10 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts @@ -1,10 +1,10 @@ import { db, schema } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; + const nameSchema = z .string() @@ -14,10 +14,7 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const createRole = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) +export const createRole = rateLimitedProcedure(ratelimit.create) .input( z.object({ name: nameSchema, diff --git a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts index 55f659efda..fbfd3744a7 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts @@ -1,14 +1,11 @@ import { and, db, eq, schema } from "@/lib/db"; -import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const deletePermission = rateLimitedProcedure({ - limit: DELETE_LIMIT, - duration: DELETE_LIMIT_DURATION, -}) + +export const deletePermission = rateLimitedProcedure(ratelimit.delete) .input( z.object({ permissionId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts index baed3ce54e..9c9c936465 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts @@ -1,14 +1,11 @@ import { and, db, eq, schema } from "@/lib/db"; -import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const deleteRole = rateLimitedProcedure({ - limit: DELETE_LIMIT, - duration: DELETE_LIMIT_DURATION, -}) + +export const deleteRole = rateLimitedProcedure(ratelimit.delete) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts index e6b2db215d..975a6ff6ab 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts @@ -1,14 +1,11 @@ import { and, db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const disconnectPermissionFromRole = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const disconnectPermissionFromRole = rateLimitedProcedure(ratelimit.update) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts index 10af84f2d3..c1498f3b43 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts @@ -1,14 +1,11 @@ import { and, db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const disconnectRoleFromKey = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const disconnectRoleFromKey = rateLimitedProcedure(ratelimit.update) .input( z.object({ roleId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts index c87640c7fd..2972244d00 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts @@ -1,14 +1,11 @@ import { and, db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const removePermissionFromRootKey = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const removePermissionFromRootKey = rateLimitedProcedure(ratelimit.update) .input( z.object({ rootKeyId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts index 458021e20a..2ad84b764a 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts @@ -1,9 +1,9 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; + const nameSchema = z .string() @@ -13,10 +13,7 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const updatePermission = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) +export const updatePermission = rateLimitedProcedure(ratelimit.update) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts index 670a6acfbc..d436102968 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts @@ -1,9 +1,9 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; + const nameSchema = z .string() @@ -13,10 +13,7 @@ const nameSchema = z "Must be at least 3 characters long and only contain alphanumeric, colons, periods, dashes and underscores", }); -export const updateRole = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) +export const updateRole = rateLimitedProcedure(ratelimit.update) .input( z.object({ id: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/secrets/create.ts b/apps/dashboard/lib/trpc/routers/secrets/create.ts index 8100bbcb25..3421c670a9 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/create.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/create.ts @@ -1,18 +1,15 @@ import { db, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; import { AesGCM } from "@unkey/encryption"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const createSecret = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) + +export const createSecret = rateLimitedProcedure(ratelimit.create) .input( z.object({ name: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts index 3bfe98a7f7..048e4f43b4 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts @@ -1,14 +1,10 @@ import { db } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const decryptSecret = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) +export const decryptSecret = rateLimitedProcedure(ratelimit.update) .input( z.object({ secretId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/secrets/update.ts b/apps/dashboard/lib/trpc/routers/secrets/update.ts index 15148c4e66..3ce07d7c01 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/update.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/update.ts @@ -1,15 +1,12 @@ import { type Secret, db, eq, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const updateSecret = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const updateSecret = rateLimitedProcedure(ratelimit.update) .input( z.object({ secretId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/webhook/create.ts b/apps/dashboard/lib/trpc/routers/webhook/create.ts index 3b2b284437..3e0ccbd13e 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/create.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/create.ts @@ -1,6 +1,6 @@ import { db, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { AesGCM } from "@unkey/encryption"; @@ -8,12 +8,9 @@ import { sha256 } from "@unkey/hash"; import { newId } from "@unkey/id"; import { KeyV1, newKey } from "@unkey/keys"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const createWebhook = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) + +export const createWebhook = rateLimitedProcedure(ratelimit.create) .input( z.object({ destination: z.string().url(), diff --git a/apps/dashboard/lib/trpc/routers/webhook/delete.ts b/apps/dashboard/lib/trpc/routers/webhook/delete.ts index 6f1839e48e..b63e4a9dc6 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/delete.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/delete.ts @@ -1,14 +1,11 @@ import { db, eq, schema } from "@/lib/db"; -import { DELETE_LIMIT, DELETE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const deleteWebhook = rateLimitedProcedure({ - limit: DELETE_LIMIT, - duration: DELETE_LIMIT_DURATION, -}) + +export const deleteWebhook = rateLimitedProcedure(ratelimit.delete) .input( z.object({ webhookId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts index 353eba92c2..2d98f225ad 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts @@ -1,14 +1,10 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const toggleWebhook = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) +export const toggleWebhook = rateLimitedProcedure(ratelimit.update) .input( z.object({ webhookId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts index 7ee1475794..eba3878b3d 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts @@ -1,15 +1,13 @@ import { db, eq, schema } from "@/lib/db"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const changeWorkspaceName = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + + +export const changeWorkspaceName = rateLimitedProcedure(ratelimit.update) .input( z.object({ name: z.string().min(3, "workspace names must contain at least 3 characters"), diff --git a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts index f81e728dfd..01ddb32599 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts @@ -1,17 +1,14 @@ import { db, eq, schema } from "@/lib/db"; import { stripeEnv } from "@/lib/env"; -import { UPDATE_LIMIT, UPDATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; import Stripe from "stripe"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const changeWorkspacePlan = rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, -}) + +export const changeWorkspacePlan = rateLimitedProcedure(ratelimit.update) .input( z.object({ workspaceId: z.string(), diff --git a/apps/dashboard/lib/trpc/routers/workspace/create.ts b/apps/dashboard/lib/trpc/routers/workspace/create.ts index ebe3bd9711..6940a70355 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/create.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/create.ts @@ -1,17 +1,14 @@ import { type Workspace, db, schema } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; import { newId } from "@unkey/id"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const createWorkspace = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) + +export const createWorkspace = rateLimitedProcedure(ratelimit.create) .input( z.object({ name: z.string().min(1).max(50), diff --git a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts index 22530da4de..c9b235320b 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts @@ -1,14 +1,11 @@ import { db, eq, schema } from "@/lib/db"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../../trpc"; -export const optWorkspaceIntoBeta = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) + +export const optWorkspaceIntoBeta = rateLimitedProcedure(ratelimit.update) .input( z.object({ feature: z.enum(["rbac", "ratelimit", "identities"]), diff --git a/apps/dashboard/lib/trpc/trpc.ts b/apps/dashboard/lib/trpc/trpc.ts index a7dd64ab58..85ec5b4f94 100644 --- a/apps/dashboard/lib/trpc/trpc.ts +++ b/apps/dashboard/lib/trpc/trpc.ts @@ -22,35 +22,3 @@ export const auth = t.middleware(({ next, ctx }) => { export const protectedProcedure = t.procedure.use(auth); -export const rateLimitedProcedure = ({ - limit, - duration, -}: { - limit: number; - duration: number; -}) => - protectedProcedure.use(async (opts) => { - const unkey = new Ratelimit({ - rootKey: env().UNKEY_ROOT_KEY, - namespace: `trpc_${opts.path}`, - limit: limit ?? 3, - duration: duration ? `${duration}s` : `${5}s`, - }); - - const ratelimit = await unkey.limit(opts.ctx.user.id); - console.log("login rate limits", ratelimit); - - if (!ratelimit.success) { - throw new TRPCError({ - code: "TOO_MANY_REQUESTS", - message: JSON.stringify(ratelimit), - }); - } - - return opts.next({ - ctx: { - ...opts.ctx, - remaining: ratelimit.remaining, - }, - }); - }); From 2770f8ac618cf1a4db943ab2f0c26e47acdb0ac8 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:27:46 +0000 Subject: [PATCH 04/11] [autofix.ci] apply automated fixes --- apps/dashboard/lib/trpc/ratelimitProcedure.ts | 6 +++--- apps/dashboard/lib/trpc/routers/api/delete.ts | 3 +-- apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts | 3 +-- apps/dashboard/lib/trpc/routers/api/updateName.ts | 3 +-- apps/dashboard/lib/trpc/routers/gateway/create.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/create.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/createRootKey.ts | 2 +- apps/dashboard/lib/trpc/routers/key/delete.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateEnabled.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateExpiration.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateMetadata.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateName.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateRemaining.ts | 3 +-- apps/dashboard/lib/trpc/routers/llmGateway/create.ts | 3 +-- apps/dashboard/lib/trpc/routers/llmGateway/delete.ts | 3 +-- .../lib/trpc/routers/monitor/verification/create.ts | 3 +-- .../dashboard/lib/trpc/routers/ratelimit/createNamespace.ts | 3 +-- apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts | 3 +-- .../dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts | 3 +-- apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts | 3 +-- .../lib/trpc/routers/ratelimit/updateNamespaceName.ts | 3 +-- apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts | 3 +-- .../lib/trpc/routers/rbac/addPermissionToRootKey.ts | 2 +- .../lib/trpc/routers/rbac/connectPermissionToRole.ts | 3 +-- apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts | 3 +-- apps/dashboard/lib/trpc/routers/rbac/createPermission.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/createRole.ts | 3 +-- apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts | 3 +-- apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts | 3 +-- .../lib/trpc/routers/rbac/disconnectPermissionFromRole.ts | 3 +-- .../lib/trpc/routers/rbac/disconnectRoleFromKey.ts | 3 +-- .../lib/trpc/routers/rbac/removePermissionFromRootKey.ts | 3 +-- apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts | 3 +-- apps/dashboard/lib/trpc/routers/rbac/updateRole.ts | 3 +-- apps/dashboard/lib/trpc/routers/secrets/create.ts | 3 +-- apps/dashboard/lib/trpc/routers/secrets/decrypt.ts | 2 +- apps/dashboard/lib/trpc/routers/secrets/update.ts | 3 +-- apps/dashboard/lib/trpc/routers/webhook/create.ts | 3 +-- apps/dashboard/lib/trpc/routers/webhook/delete.ts | 3 +-- apps/dashboard/lib/trpc/routers/webhook/toggle.ts | 2 +- apps/dashboard/lib/trpc/routers/workspace/changeName.ts | 4 +--- apps/dashboard/lib/trpc/routers/workspace/changePlan.ts | 3 +-- apps/dashboard/lib/trpc/routers/workspace/create.ts | 3 +-- apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts | 3 +-- apps/dashboard/lib/trpc/trpc.ts | 1 - 48 files changed, 49 insertions(+), 92 deletions(-) diff --git a/apps/dashboard/lib/trpc/ratelimitProcedure.ts b/apps/dashboard/lib/trpc/ratelimitProcedure.ts index 3803763a96..3bcb115b07 100644 --- a/apps/dashboard/lib/trpc/ratelimitProcedure.ts +++ b/apps/dashboard/lib/trpc/ratelimitProcedure.ts @@ -1,8 +1,8 @@ -// Values for route types -import { protectedProcedure } from "./trpc"; +import { TRPCError } from "@trpc/server"; import { Ratelimit } from "@unkey/ratelimit"; import { env } from "../env"; -import { TRPCError } from "@trpc/server"; +// Values for route types +import { protectedProcedure } from "./trpc"; //Values are in seconds currently export const CREATE_LIMIT_SEC = 5; diff --git a/apps/dashboard/lib/trpc/routers/api/delete.ts b/apps/dashboard/lib/trpc/routers/api/delete.ts index 69f692e20b..330304dcea 100644 --- a/apps/dashboard/lib/trpc/routers/api/delete.ts +++ b/apps/dashboard/lib/trpc/routers/api/delete.ts @@ -2,9 +2,8 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const deleteApi = rateLimitedProcedure(ratelimit.delete) .input( diff --git a/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts b/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts index 797577a43a..3b533c1c96 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts @@ -2,9 +2,8 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const updateApiIpWhitelist = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/api/updateName.ts b/apps/dashboard/lib/trpc/routers/api/updateName.ts index 51ac5193b2..2a20034184 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateName.ts @@ -2,9 +2,8 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const updateApiName = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/gateway/create.ts b/apps/dashboard/lib/trpc/routers/gateway/create.ts index 01afd70e57..c3c9eabed9 100644 --- a/apps/dashboard/lib/trpc/routers/gateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/gateway/create.ts @@ -1,9 +1,8 @@ import { db } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const createGateway = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/key/create.ts b/apps/dashboard/lib/trpc/routers/key/create.ts index 6b01cef0fb..7ee6c2dd13 100644 --- a/apps/dashboard/lib/trpc/routers/key/create.ts +++ b/apps/dashboard/lib/trpc/routers/key/create.ts @@ -1,11 +1,10 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { newKey } from "@unkey/keys"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const createKey = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts index f596b41f2a..23d888232a 100644 --- a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts @@ -1,12 +1,12 @@ import { type Permission, db, eq, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { type UnkeyAuditLog, ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { newKey } from "@unkey/keys"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { upsertPermissions } from "../rbac"; diff --git a/apps/dashboard/lib/trpc/routers/key/delete.ts b/apps/dashboard/lib/trpc/routers/key/delete.ts index 46db550543..5d7582af5c 100644 --- a/apps/dashboard/lib/trpc/routers/key/delete.ts +++ b/apps/dashboard/lib/trpc/routers/key/delete.ts @@ -1,9 +1,8 @@ import { and, db, eq, inArray, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const deleteKeys = rateLimitedProcedure(ratelimit.delete) .input( diff --git a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts index 191c929c8e..e9b6c7209d 100644 --- a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts @@ -1,10 +1,9 @@ import { db, inArray, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const deleteRootKeys = rateLimitedProcedure(ratelimit.delete) .input( diff --git a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts index 818591ab7c..86793061a2 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts @@ -1,9 +1,8 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const updateKeyEnabled = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts index 87ca1926bb..1d19f2651d 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts @@ -1,9 +1,8 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const updateKeyExpiration = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts index 3780ea9b2d..c91f7d1b96 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts @@ -1,9 +1,8 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const updateKeyMetadata = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/key/updateName.ts b/apps/dashboard/lib/trpc/routers/key/updateName.ts index 6e61c58cff..92b46e60d7 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateName.ts @@ -1,11 +1,10 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { auth, t } from "../../trpc"; - export const updateKeyName = rateLimitedProcedure(ratelimit.update) .use(auth) .input( diff --git a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts index 2d98bd06ce..6746b2df95 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts @@ -1,11 +1,10 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { auth, t } from "../../trpc"; - export const updateKeyOwnerId = rateLimitedProcedure(ratelimit.update) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts index 582c5955fe..7195e0290f 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts @@ -1,9 +1,8 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const updateKeyRatelimit = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts index ad13274d9a..d7c386d2a8 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts @@ -1,9 +1,8 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const updateKeyRemaining = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts index fc064c2a11..ce1980b8c2 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts @@ -1,11 +1,10 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const createLlmGateway = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts b/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts index e69755df04..232b22007b 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts @@ -2,9 +2,8 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const deleteLlmGateway = rateLimitedProcedure(ratelimit.delete) .input(z.object({ gatewayId: z.string() })) diff --git a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts index 056ad67670..0e879961bc 100644 --- a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts +++ b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts @@ -1,11 +1,10 @@ import { type Webhook, db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError, createCallerFactory } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; import { router } from "../.."; - +import { rateLimitedProcedure, ratelimit } from "../../../ratelimitProcedure"; export const createVerificationMonitor = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts index c808bbb20e..1de67f3cee 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts @@ -2,11 +2,10 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { newId } from "@unkey/id"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const createNamespace = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts index 819bd64468..d5e263db6c 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts @@ -2,10 +2,9 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { and, db, eq, isNull, schema, sql } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { newId } from "@unkey/id"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const createOverride = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts index cdc1f2c5db..a95e621335 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts @@ -2,9 +2,8 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const deleteNamespace = rateLimitedProcedure(ratelimit.delete) .input( diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts index a0ce59efdd..d57e17ab26 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts @@ -2,9 +2,8 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const deleteOverride = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts b/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts index 62feba530a..78d840e4df 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts @@ -2,9 +2,8 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const updateNamespaceName = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts index eea5bac927..3b10670a2c 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts @@ -2,9 +2,8 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const updateOverride = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts index 941c9d0a5e..349f83a07a 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts @@ -1,9 +1,9 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { upsertPermissions } from "../rbac"; export const addPermissionToRootKey = rateLimitedProcedure(ratelimit.create) diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts b/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts index 70caeb57fc..4d9fd416f9 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts @@ -1,8 +1,7 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const connectPermissionToRole = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts index 42bb53c344..12d9ad399d 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts @@ -1,9 +1,8 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const connectRoleToKey = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts index d492a377e6..8bc8716872 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts @@ -1,9 +1,9 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; const nameSchema = z .string() diff --git a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts index 89d7f75d10..09ac8cf1b4 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts @@ -1,10 +1,9 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; const nameSchema = z .string() diff --git a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts index fbfd3744a7..cb64a81320 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts @@ -1,9 +1,8 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const deletePermission = rateLimitedProcedure(ratelimit.delete) .input( diff --git a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts index 9c9c936465..87dc01ab47 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts @@ -1,9 +1,8 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const deleteRole = rateLimitedProcedure(ratelimit.delete) .input( diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts index 975a6ff6ab..47a41a1f24 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts @@ -1,9 +1,8 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const disconnectPermissionFromRole = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts index c1498f3b43..05ff35d543 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts @@ -1,9 +1,8 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const disconnectRoleFromKey = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts index 2972244d00..123712e5fd 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts @@ -1,9 +1,8 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const removePermissionFromRootKey = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts index 2ad84b764a..84fadc85cd 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts @@ -1,9 +1,8 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; const nameSchema = z .string() diff --git a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts index d436102968..d375e884a8 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts @@ -1,9 +1,8 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; const nameSchema = z .string() diff --git a/apps/dashboard/lib/trpc/routers/secrets/create.ts b/apps/dashboard/lib/trpc/routers/secrets/create.ts index 3421c670a9..d349a2f2ac 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/create.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/create.ts @@ -1,13 +1,12 @@ import { db, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; import { AesGCM } from "@unkey/encryption"; import { newId } from "@unkey/id"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const createSecret = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts index 048e4f43b4..fcc91be6b4 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts @@ -1,8 +1,8 @@ import { db } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const decryptSecret = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/secrets/update.ts b/apps/dashboard/lib/trpc/routers/secrets/update.ts index 3ce07d7c01..aca9d6cd15 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/update.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/update.ts @@ -1,10 +1,9 @@ import { type Secret, db, eq, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const updateSecret = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/webhook/create.ts b/apps/dashboard/lib/trpc/routers/webhook/create.ts index 3e0ccbd13e..37d7f7bc72 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/create.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/create.ts @@ -1,6 +1,5 @@ import { db, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { AesGCM } from "@unkey/encryption"; @@ -8,7 +7,7 @@ import { sha256 } from "@unkey/hash"; import { newId } from "@unkey/id"; import { KeyV1, newKey } from "@unkey/keys"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const createWebhook = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/webhook/delete.ts b/apps/dashboard/lib/trpc/routers/webhook/delete.ts index b63e4a9dc6..68c180fd30 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/delete.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/delete.ts @@ -1,9 +1,8 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const deleteWebhook = rateLimitedProcedure(ratelimit.delete) .input( diff --git a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts index 2d98f225ad..17e9393369 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts @@ -1,8 +1,8 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const toggleWebhook = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts index eba3878b3d..252a8b6c00 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts @@ -1,11 +1,9 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const changeWorkspaceName = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts index 01ddb32599..d171203787 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts @@ -1,12 +1,11 @@ import { db, eq, schema } from "@/lib/db"; import { stripeEnv } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; import Stripe from "stripe"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const changeWorkspacePlan = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/workspace/create.ts b/apps/dashboard/lib/trpc/routers/workspace/create.ts index 6940a70355..cbc39e13de 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/create.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/create.ts @@ -1,12 +1,11 @@ import { type Workspace, db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; import { newId } from "@unkey/id"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const createWorkspace = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts index c9b235320b..4b44704a9a 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts @@ -1,9 +1,8 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - +import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; export const optWorkspaceIntoBeta = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/trpc.ts b/apps/dashboard/lib/trpc/trpc.ts index 85ec5b4f94..2191cdd76e 100644 --- a/apps/dashboard/lib/trpc/trpc.ts +++ b/apps/dashboard/lib/trpc/trpc.ts @@ -21,4 +21,3 @@ export const auth = t.middleware(({ next, ctx }) => { }); export const protectedProcedure = t.procedure.use(auth); - From 3885e73e7b342dfbfda023b1b9339959c68ad340 Mon Sep 17 00:00:00 2001 From: Michael Silva Date: Mon, 16 Sep 2024 14:52:44 -0400 Subject: [PATCH 05/11] updated import path --- apps/dashboard/lib/trpc/routers/api/create.ts | 2 +- apps/dashboard/lib/trpc/routers/api/delete.ts | 2 +- apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts | 2 +- apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts | 2 +- apps/dashboard/lib/trpc/routers/api/updateName.ts | 2 +- apps/dashboard/lib/trpc/routers/gateway/create.ts | 2 +- apps/dashboard/lib/trpc/routers/key/create.ts | 2 +- apps/dashboard/lib/trpc/routers/key/createRootKey.ts | 2 +- apps/dashboard/lib/trpc/routers/key/delete.ts | 2 +- apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts | 2 +- apps/dashboard/lib/trpc/routers/key/updateEnabled.ts | 2 +- apps/dashboard/lib/trpc/routers/key/updateExpiration.ts | 2 +- apps/dashboard/lib/trpc/routers/key/updateMetadata.ts | 2 +- apps/dashboard/lib/trpc/routers/key/updateName.ts | 2 +- apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts | 2 +- apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts | 2 +- apps/dashboard/lib/trpc/routers/key/updateRemaining.ts | 2 +- apps/dashboard/lib/trpc/routers/llmGateway/create.ts | 2 +- apps/dashboard/lib/trpc/routers/llmGateway/delete.ts | 2 +- apps/dashboard/lib/trpc/routers/monitor/verification/create.ts | 2 +- apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts | 2 +- apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts | 2 +- apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts | 2 +- apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts | 2 +- .../dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts | 2 +- apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/createPermission.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/createRole.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts | 2 +- .../lib/trpc/routers/rbac/disconnectPermissionFromRole.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts | 2 +- .../lib/trpc/routers/rbac/removePermissionFromRootKey.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/updateRole.ts | 2 +- apps/dashboard/lib/trpc/routers/secrets/create.ts | 2 +- apps/dashboard/lib/trpc/routers/secrets/decrypt.ts | 2 +- apps/dashboard/lib/trpc/routers/secrets/update.ts | 2 +- apps/dashboard/lib/trpc/routers/webhook/create.ts | 2 +- apps/dashboard/lib/trpc/routers/webhook/delete.ts | 2 +- apps/dashboard/lib/trpc/routers/webhook/toggle.ts | 2 +- apps/dashboard/lib/trpc/routers/workspace/changeName.ts | 2 +- apps/dashboard/lib/trpc/routers/workspace/changePlan.ts | 2 +- apps/dashboard/lib/trpc/routers/workspace/create.ts | 2 +- apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts | 2 +- 48 files changed, 48 insertions(+), 48 deletions(-) diff --git a/apps/dashboard/lib/trpc/routers/api/create.ts b/apps/dashboard/lib/trpc/routers/api/create.ts index b322a4f7a3..0cfbf84862 100644 --- a/apps/dashboard/lib/trpc/routers/api/create.ts +++ b/apps/dashboard/lib/trpc/routers/api/create.ts @@ -4,7 +4,7 @@ import { z } from "zod"; import { db, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; import { newId } from "@unkey/id"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; export const createApi = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/api/delete.ts b/apps/dashboard/lib/trpc/routers/api/delete.ts index 69f692e20b..c89ebcb082 100644 --- a/apps/dashboard/lib/trpc/routers/api/delete.ts +++ b/apps/dashboard/lib/trpc/routers/api/delete.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; diff --git a/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts b/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts index 2e92200d6b..e3f48f50f2 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateDeleteProtection.ts @@ -3,7 +3,7 @@ import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; export const updateAPIDeleteProtection = rateLimitedProcedure(ratelimit.update) .input( diff --git a/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts b/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts index 797577a43a..8ec7334cfd 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateIpWhitelist.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; diff --git a/apps/dashboard/lib/trpc/routers/api/updateName.ts b/apps/dashboard/lib/trpc/routers/api/updateName.ts index 51ac5193b2..4f99b1d37c 100644 --- a/apps/dashboard/lib/trpc/routers/api/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/api/updateName.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; diff --git a/apps/dashboard/lib/trpc/routers/gateway/create.ts b/apps/dashboard/lib/trpc/routers/gateway/create.ts index 01afd70e57..552ba6c7ce 100644 --- a/apps/dashboard/lib/trpc/routers/gateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/gateway/create.ts @@ -1,5 +1,5 @@ import { db } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/key/create.ts b/apps/dashboard/lib/trpc/routers/key/create.ts index 6b01cef0fb..a0e8cc6f70 100644 --- a/apps/dashboard/lib/trpc/routers/key/create.ts +++ b/apps/dashboard/lib/trpc/routers/key/create.ts @@ -1,5 +1,5 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; diff --git a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts index f596b41f2a..1268ff95e5 100644 --- a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts @@ -1,6 +1,6 @@ import { type Permission, db, eq, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { type UnkeyAuditLog, ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; diff --git a/apps/dashboard/lib/trpc/routers/key/delete.ts b/apps/dashboard/lib/trpc/routers/key/delete.ts index 46db550543..9488f9ed82 100644 --- a/apps/dashboard/lib/trpc/routers/key/delete.ts +++ b/apps/dashboard/lib/trpc/routers/key/delete.ts @@ -1,5 +1,5 @@ import { and, db, eq, inArray, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts index 191c929c8e..79cd3a8722 100644 --- a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts @@ -1,6 +1,6 @@ import { db, inArray, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts index 818591ab7c..8650fa3c7b 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts index 87ca1926bb..2e4759ee6e 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts index 3780ea9b2d..52d8c32035 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/key/updateName.ts b/apps/dashboard/lib/trpc/routers/key/updateName.ts index 6e61c58cff..248fadda8e 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateName.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts index 2d98bd06ce..cb6aba9758 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts index 582c5955fe..a3a10aaec5 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts index ad13274d9a..41d3e275fe 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts index fc064c2a11..f4ecddae9c 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts @@ -1,5 +1,5 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts b/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts index e69755df04..6b8e48fa17 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/delete.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; diff --git a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts index 056ad67670..39506678f6 100644 --- a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts +++ b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts @@ -1,5 +1,5 @@ import { type Webhook, db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError, createCallerFactory } from "@trpc/server"; import { newId } from "@unkey/id"; diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts index c808bbb20e..0ff9339b9e 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { newId } from "@unkey/id"; diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts index 819bd64468..c00b8c046d 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { and, db, eq, isNull, schema, sql } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { newId } from "@unkey/id"; diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts index cdc1f2c5db..7d4377e5ff 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/deleteNamespace.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts index a0ce59efdd..ccee480a99 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/deleteOverride.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts b/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts index 62feba530a..5f303dae3a 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/updateNamespaceName.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts index eea5bac927..1bdf2556a2 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/updateOverride.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts index 941c9d0a5e..249432e5e1 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts @@ -1,5 +1,5 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { unkeyPermissionValidation } from "@unkey/rbac"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts b/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts index 70caeb57fc..c271f04386 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectPermissionToRole.ts @@ -1,5 +1,5 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts index 42bb53c344..f23800e508 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts @@ -1,5 +1,5 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts index d492a377e6..f49031670d 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts @@ -1,5 +1,5 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts index 89d7f75d10..e365fa3389 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts @@ -1,5 +1,5 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts index fbfd3744a7..2cae02afb6 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts @@ -1,5 +1,5 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts index 9c9c936465..8f56b162fa 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts @@ -1,5 +1,5 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts index 975a6ff6ab..ec50aa3510 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts @@ -1,5 +1,5 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts index c1498f3b43..7f50ed0590 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts @@ -1,5 +1,5 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts index 2972244d00..efe127baee 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts @@ -1,5 +1,5 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts index 2ad84b764a..9307f09b0c 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts index d436102968..51569b3ae4 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/secrets/create.ts b/apps/dashboard/lib/trpc/routers/secrets/create.ts index 3421c670a9..e735df55b9 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/create.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/create.ts @@ -1,6 +1,6 @@ import { db, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; diff --git a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts index 048e4f43b4..c2a0b862b4 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts @@ -1,5 +1,5 @@ import { db } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/secrets/update.ts b/apps/dashboard/lib/trpc/routers/secrets/update.ts index 3ce07d7c01..bfb35e8ef2 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/update.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/update.ts @@ -1,6 +1,6 @@ import { type Secret, db, eq, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/webhook/create.ts b/apps/dashboard/lib/trpc/routers/webhook/create.ts index 3e0ccbd13e..1816167ded 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/create.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/create.ts @@ -1,6 +1,6 @@ import { db, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { AesGCM } from "@unkey/encryption"; diff --git a/apps/dashboard/lib/trpc/routers/webhook/delete.ts b/apps/dashboard/lib/trpc/routers/webhook/delete.ts index b63e4a9dc6..75a3c224fa 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/delete.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/delete.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts index 2d98f225ad..10bf2d1ece 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts index eba3878b3d..fe78d29bc9 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; diff --git a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts index 01ddb32599..7fa89e0629 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; import { stripeEnv } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; diff --git a/apps/dashboard/lib/trpc/routers/workspace/create.ts b/apps/dashboard/lib/trpc/routers/workspace/create.ts index 6940a70355..275a145ba2 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/create.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/create.ts @@ -1,5 +1,5 @@ import { type Workspace, db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; diff --git a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts index c9b235320b..6f86350856 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts @@ -1,5 +1,5 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "../../ratelimitProcedure"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; From bbea07940b866f310a02c00e07dffb03e3383031 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 19:10:18 +0000 Subject: [PATCH 06/11] [autofix.ci] apply automated fixes --- apps/dashboard/lib/trpc/routers/api/create.ts | 2 +- apps/dashboard/lib/trpc/routers/gateway/create.ts | 1 - apps/dashboard/lib/trpc/routers/key/create.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/createRootKey.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/delete.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateEnabled.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateExpiration.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateMetadata.ts | 3 +-- apps/dashboard/lib/trpc/routers/key/updateName.ts | 2 +- apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts | 2 +- apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts | 2 +- apps/dashboard/lib/trpc/routers/key/updateRemaining.ts | 2 +- apps/dashboard/lib/trpc/routers/llmGateway/create.ts | 2 +- apps/dashboard/lib/trpc/routers/monitor/verification/create.ts | 2 +- apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts | 2 +- apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/createPermission.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/createRole.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts | 2 +- .../lib/trpc/routers/rbac/disconnectPermissionFromRole.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts | 2 +- .../lib/trpc/routers/rbac/removePermissionFromRootKey.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac/updateRole.ts | 2 +- apps/dashboard/lib/trpc/routers/secrets/create.ts | 2 +- apps/dashboard/lib/trpc/routers/secrets/decrypt.ts | 2 +- apps/dashboard/lib/trpc/routers/secrets/update.ts | 2 +- apps/dashboard/lib/trpc/routers/webhook/create.ts | 2 +- apps/dashboard/lib/trpc/routers/webhook/delete.ts | 2 +- apps/dashboard/lib/trpc/routers/webhook/toggle.ts | 2 +- apps/dashboard/lib/trpc/routers/workspace/changeName.ts | 2 +- apps/dashboard/lib/trpc/routers/workspace/changePlan.ts | 2 +- apps/dashboard/lib/trpc/routers/workspace/create.ts | 2 +- apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts | 2 +- 38 files changed, 37 insertions(+), 45 deletions(-) diff --git a/apps/dashboard/lib/trpc/routers/api/create.ts b/apps/dashboard/lib/trpc/routers/api/create.ts index 0cfbf84862..6748756dd2 100644 --- a/apps/dashboard/lib/trpc/routers/api/create.ts +++ b/apps/dashboard/lib/trpc/routers/api/create.ts @@ -3,8 +3,8 @@ import { z } from "zod"; import { db, schema } from "@/lib/db"; import { ingestAuditLogs } from "@/lib/tinybird"; -import { newId } from "@unkey/id"; import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; +import { newId } from "@unkey/id"; export const createApi = rateLimitedProcedure(ratelimit.create) .input( diff --git a/apps/dashboard/lib/trpc/routers/gateway/create.ts b/apps/dashboard/lib/trpc/routers/gateway/create.ts index 552ba6c7ce..f714ff15e4 100644 --- a/apps/dashboard/lib/trpc/routers/gateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/gateway/create.ts @@ -4,7 +4,6 @@ import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; - export const createGateway = rateLimitedProcedure(ratelimit.create) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/create.ts b/apps/dashboard/lib/trpc/routers/key/create.ts index a0e8cc6f70..5c5c34a66d 100644 --- a/apps/dashboard/lib/trpc/routers/key/create.ts +++ b/apps/dashboard/lib/trpc/routers/key/create.ts @@ -1,12 +1,11 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { newKey } from "@unkey/keys"; import { z } from "zod"; - export const createKey = rateLimitedProcedure(ratelimit.create) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts index da5561f1fd..4f23f3dbc4 100644 --- a/apps/dashboard/lib/trpc/routers/key/createRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/createRootKey.ts @@ -1,14 +1,13 @@ import { type Permission, db, eq, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { type UnkeyAuditLog, ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { newKey } from "@unkey/keys"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; - import { upsertPermissions } from "../rbac"; export const createRootKey = rateLimitedProcedure(ratelimit.create) diff --git a/apps/dashboard/lib/trpc/routers/key/delete.ts b/apps/dashboard/lib/trpc/routers/key/delete.ts index 9488f9ed82..51348260dd 100644 --- a/apps/dashboard/lib/trpc/routers/key/delete.ts +++ b/apps/dashboard/lib/trpc/routers/key/delete.ts @@ -1,10 +1,9 @@ import { and, db, eq, inArray, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - export const deleteKeys = rateLimitedProcedure(ratelimit.delete) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts index 79cd3a8722..1c08336b19 100644 --- a/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/key/deleteRootKey.ts @@ -1,11 +1,10 @@ import { db, inArray, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - export const deleteRootKeys = rateLimitedProcedure(ratelimit.delete) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts index 8650fa3c7b..b14bfe94c2 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateEnabled.ts @@ -1,10 +1,9 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - export const updateKeyEnabled = rateLimitedProcedure(ratelimit.update) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts index 2e4759ee6e..7886b4731c 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateExpiration.ts @@ -1,10 +1,9 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - export const updateKeyExpiration = rateLimitedProcedure(ratelimit.update) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts index 52d8c32035..4bc208d5f1 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateMetadata.ts @@ -1,10 +1,9 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; - export const updateKeyMetadata = rateLimitedProcedure(ratelimit.update) .input( z.object({ diff --git a/apps/dashboard/lib/trpc/routers/key/updateName.ts b/apps/dashboard/lib/trpc/routers/key/updateName.ts index 121e2aa7e2..0929d7d8dc 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateName.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateName.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { auth, t } from "../../trpc"; diff --git a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts index 55af2e99dd..2745763dcc 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateOwnerId.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { auth, t } from "../../trpc"; diff --git a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts index 7daf079abc..b02b61d598 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRatelimit.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts index 9bc6cce473..6aecf13657 100644 --- a/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts +++ b/apps/dashboard/lib/trpc/routers/key/updateRemaining.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts index f8089ecdac..eb2ee39c8f 100644 --- a/apps/dashboard/lib/trpc/routers/llmGateway/create.ts +++ b/apps/dashboard/lib/trpc/routers/llmGateway/create.ts @@ -1,6 +1,6 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; diff --git a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts index b77ae5913b..b66754a1e2 100644 --- a/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts +++ b/apps/dashboard/lib/trpc/routers/monitor/verification/create.ts @@ -1,6 +1,6 @@ import { type Webhook, db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError, createCallerFactory } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts index 48a07a1c8a..6438b49a1e 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createNamespace.ts @@ -2,8 +2,8 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { DatabaseError } from "@planetscale/database"; import { newId } from "@unkey/id"; diff --git a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts index 5cbd947a02..69ce306c62 100644 --- a/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts +++ b/apps/dashboard/lib/trpc/routers/ratelimit/createOverride.ts @@ -2,8 +2,8 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod"; import { and, db, eq, isNull, schema, sql } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { newId } from "@unkey/id"; export const createOverride = rateLimitedProcedure(ratelimit.create) diff --git a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts index 249432e5e1..f08810b0fd 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/addPermissionToRootKey.ts @@ -1,6 +1,6 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts index 2e2fa78e08..a7997ac333 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/connectRoleToKey.ts @@ -1,6 +1,6 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts index f49031670d..809f35d96c 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createPermission.ts @@ -1,6 +1,6 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts index 2617a9f3da..e30504ea88 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/createRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/createRole.ts @@ -1,6 +1,6 @@ import { db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts index 45c122b7db..b3293c7d3b 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deletePermission.ts @@ -1,6 +1,6 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts index 00a473b8aa..ec40236405 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/deleteRole.ts @@ -1,6 +1,6 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts index 8d50084d3c..2596111431 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectPermissionFromRole.ts @@ -1,6 +1,6 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts index 6afb66ded6..1d27092af6 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/disconnectRoleFromKey.ts @@ -1,6 +1,6 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts index 2364054333..6628d1daff 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/removePermissionFromRootKey.ts @@ -1,6 +1,6 @@ import { and, db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts index aaa3c573da..db19d599d6 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updatePermission.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts index fba394f84d..89fc880140 100644 --- a/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts +++ b/apps/dashboard/lib/trpc/routers/rbac/updateRole.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/secrets/create.ts b/apps/dashboard/lib/trpc/routers/secrets/create.ts index d331814dfb..750fd1fc1f 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/create.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/create.ts @@ -1,7 +1,7 @@ import { db, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { DatabaseError } from "@planetscale/database"; import { TRPCError } from "@trpc/server"; import { AesGCM } from "@unkey/encryption"; diff --git a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts index c2a0b862b4..d50861674d 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/decrypt.ts @@ -1,6 +1,6 @@ import { db } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/secrets/update.ts b/apps/dashboard/lib/trpc/routers/secrets/update.ts index 49bb4bf6c0..f93d89993b 100644 --- a/apps/dashboard/lib/trpc/routers/secrets/update.ts +++ b/apps/dashboard/lib/trpc/routers/secrets/update.ts @@ -1,7 +1,7 @@ import { type Secret, db, eq, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/webhook/create.ts b/apps/dashboard/lib/trpc/routers/webhook/create.ts index 3888fbd08d..50b59f7578 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/create.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/create.ts @@ -1,7 +1,7 @@ import { db, schema } from "@/lib/db"; import { env } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { AesGCM } from "@unkey/encryption"; import { sha256 } from "@unkey/hash"; diff --git a/apps/dashboard/lib/trpc/routers/webhook/delete.ts b/apps/dashboard/lib/trpc/routers/webhook/delete.ts index e4354e47e3..3f9c303d43 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/delete.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/delete.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts index 10bf2d1ece..164bb288a4 100644 --- a/apps/dashboard/lib/trpc/routers/webhook/toggle.ts +++ b/apps/dashboard/lib/trpc/routers/webhook/toggle.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts index fa2a089906..577762c253 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changeName.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changeName.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; diff --git a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts index 126c4b227d..2f6303e468 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/changePlan.ts @@ -1,7 +1,7 @@ import { db, eq, schema } from "@/lib/db"; import { stripeEnv } from "@/lib/env"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; import Stripe from "stripe"; diff --git a/apps/dashboard/lib/trpc/routers/workspace/create.ts b/apps/dashboard/lib/trpc/routers/workspace/create.ts index dfdbe2d7cb..f12562fede 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/create.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/create.ts @@ -1,6 +1,6 @@ import { type Workspace, db, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { clerkClient } from "@clerk/nextjs"; import { TRPCError } from "@trpc/server"; import { defaultProSubscriptions } from "@unkey/billing"; diff --git a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts index 7867c26aed..7ffa2b6ae1 100644 --- a/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts +++ b/apps/dashboard/lib/trpc/routers/workspace/optIntoBeta.ts @@ -1,6 +1,6 @@ import { db, eq, schema } from "@/lib/db"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; From 964ce0f126a8d17069301c8a17e5784b8899982b Mon Sep 17 00:00:00 2001 From: Michael Silva Date: Tue, 17 Sep 2024 09:01:29 -0400 Subject: [PATCH 07/11] fixed with no root key --- apps/dashboard/lib/env.ts | 2 +- apps/dashboard/lib/trpc/ratelimitProcedure.ts | 44 +++++++--------- apps/dashboard/lib/trpc/routers/plain.ts | 8 +-- apps/dashboard/lib/trpc/routers/rbac.ts | 51 ++++++------------- 4 files changed, 36 insertions(+), 69 deletions(-) diff --git a/apps/dashboard/lib/env.ts b/apps/dashboard/lib/env.ts index f7978e95f3..69d302939a 100644 --- a/apps/dashboard/lib/env.ts +++ b/apps/dashboard/lib/env.ts @@ -32,7 +32,7 @@ export const env = () => GITHUB_KEYS_URI: z.string().optional(), - UNKEY_ROOT_KEY: z.string(), + UNKEY_ROOT_KEY: z.string().optional(), }) .parse(process.env); diff --git a/apps/dashboard/lib/trpc/ratelimitProcedure.ts b/apps/dashboard/lib/trpc/ratelimitProcedure.ts index 3bcb115b07..129496f181 100644 --- a/apps/dashboard/lib/trpc/ratelimitProcedure.ts +++ b/apps/dashboard/lib/trpc/ratelimitProcedure.ts @@ -2,49 +2,41 @@ import { TRPCError } from "@trpc/server"; import { Ratelimit } from "@unkey/ratelimit"; import { env } from "../env"; // Values for route types -import { protectedProcedure } from "./trpc"; +import { auth, protectedProcedure } from "./trpc"; -//Values are in seconds currently -export const CREATE_LIMIT_SEC = 5; -export const CREATE_LIMIT_DURATION_SEC = "3s"; +export const ratelimit = env().UNKEY_ROOT_KEY ? { -export const UPDATE_LIMIT_SEC = 25; -export const UPDATE_LIMIT_DURATION_SEC = "5s"; - -export const DELETE_LIMIT_SEC = 5; -export const DELETE_LIMIT_DURATION_SEC = "3s"; - -export const ratelimit = { create: new Ratelimit({ - rootKey: env().UNKEY_ROOT_KEY, + rootKey: env().UNKEY_ROOT_KEY ?? "", namespace: "trpc_create", - limit: CREATE_LIMIT_SEC ?? 3, - duration: CREATE_LIMIT_DURATION_SEC, + limit: 5, + duration: "3s", }), update: new Ratelimit({ - rootKey: env().UNKEY_ROOT_KEY, + rootKey: env().UNKEY_ROOT_KEY ?? "", namespace: "trpc_update", - limit: UPDATE_LIMIT_SEC, - duration: UPDATE_LIMIT_DURATION_SEC, + limit: 25, + duration: "5s", }), delete: new Ratelimit({ - rootKey: env().UNKEY_ROOT_KEY, + rootKey: env().UNKEY_ROOT_KEY ?? "", namespace: "trpc_delete", - limit: DELETE_LIMIT_SEC, - duration: DELETE_LIMIT_DURATION_SEC, + limit: 5, + duration: "5s", }), +}: { + }; -export const rateLimitedProcedure = (ratelimit: Ratelimit) => +export const rateLimitedProcedure = (ratelimit: Ratelimit | undefined) => ratelimit ? protectedProcedure.use(async (opts) => { - const unkey = ratelimit; - - const response = await unkey.limit(opts.ctx.user.id); + + const response = await ratelimit.limit(opts.ctx.user.id); if (!response.success) { throw new TRPCError({ code: "TOO_MANY_REQUESTS", - message: JSON.stringify(response), + message: "Too many requests in the allowed duration. Please try again", }); } @@ -54,4 +46,4 @@ export const rateLimitedProcedure = (ratelimit: Ratelimit) => remaining: response.remaining, }, }); - }); + }) : protectedProcedure; diff --git a/apps/dashboard/lib/trpc/routers/plain.ts b/apps/dashboard/lib/trpc/routers/plain.ts index 925c5b1f71..0832e29140 100644 --- a/apps/dashboard/lib/trpc/routers/plain.ts +++ b/apps/dashboard/lib/trpc/routers/plain.ts @@ -1,17 +1,13 @@ import { env } from "@/lib/env"; -import { CREATE_LIMIT, CREATE_LIMIT_DURATION } from "@/lib/ratelimitValues"; import { clerkClient } from "@clerk/nextjs"; import { PlainClient, uiComponent } from "@team-plain/typescript-sdk"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure } from "../trpc"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; const issueType = z.enum(["bug", "feature", "security", "question", "payment"]); const severity = z.enum(["p0", "p1", "p2", "p3"]); -export const createPlainIssue = rateLimitedProcedure({ - limit: CREATE_LIMIT, - duration: CREATE_LIMIT_DURATION, -}) +export const createPlainIssue = rateLimitedProcedure(ratelimit.create) .input( z.object({ issueType, diff --git a/apps/dashboard/lib/trpc/routers/rbac.ts b/apps/dashboard/lib/trpc/routers/rbac.ts index b7a2bf3a1f..a6b1c2564b 100644 --- a/apps/dashboard/lib/trpc/routers/rbac.ts +++ b/apps/dashboard/lib/trpc/routers/rbac.ts @@ -1,19 +1,13 @@ import { type Permission, and, db, eq, schema } from "@/lib/db"; -import { - CREATE_LIMIT, - CREATE_LIMIT_DURATION, - DELETE_LIMIT, - DELETE_LIMIT_DURATION, - UPDATE_LIMIT, - UPDATE_LIMIT_DURATION, -} from "@/lib/ratelimitValues"; + import { type UnkeyAuditLog, ingestAuditLogs } from "@/lib/tinybird"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; import type { Context } from "../context"; -import { rateLimitedProcedure, t } from "../trpc"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; +import { t } from "../trpc"; const nameSchema = z .string() @@ -24,10 +18,7 @@ const nameSchema = z }); export const rbacRouter = t.router({ - addPermissionToRootKey: rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, - }) + addPermissionToRootKey: rateLimitedProcedure(ratelimit.update) .input( z.object({ rootKeyId: z.string(), @@ -85,10 +76,7 @@ export const rbacRouter = t.router({ .onDuplicateKeyUpdate({ set: { permissionId: permissions[0].id } }); await ingestAuditLogs(auditLogs); }), - removePermissionFromRootKey: rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, - }) + removePermissionFromRootKey: rateLimitedProcedure(ratelimit.update) .input( z.object({ rootKeyId: z.string(), @@ -145,10 +133,7 @@ export const rbacRouter = t.router({ ), ); }), - connectPermissionToRole: rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, - }) + connectPermissionToRole: rateLimitedProcedure(ratelimit.update) .input( z.object({ roleId: z.string(), @@ -201,10 +186,7 @@ export const rbacRouter = t.router({ set: { ...tuple, updatedAt: new Date() }, }); }), - disconnectPermissionToRole: rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, - }) + disconnectPermissionToRole: rateLimitedProcedure(ratelimit.update) .input( z.object({ roleId: z.string(), @@ -232,7 +214,7 @@ export const rbacRouter = t.router({ ), ); }), - connectRoleToKey: rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + connectRoleToKey: rateLimitedProcedure(ratelimit.update) .input( z.object({ roleId: z.string(), @@ -285,10 +267,7 @@ export const rbacRouter = t.router({ set: { ...tuple, updatedAt: new Date() }, }); }), - disconnectRoleFromKey: rateLimitedProcedure({ - limit: UPDATE_LIMIT, - duration: UPDATE_LIMIT_DURATION, - }) + disconnectRoleFromKey: rateLimitedProcedure(ratelimit.update) .input( z.object({ roleId: z.string(), @@ -316,7 +295,7 @@ export const rbacRouter = t.router({ ), ); }), - createRole: rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) + createRole: rateLimitedProcedure(ratelimit.create) .input( z.object({ name: nameSchema, @@ -398,7 +377,7 @@ export const rbacRouter = t.router({ } return { roleId }; }), - updateRole: rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + updateRole: rateLimitedProcedure(ratelimit.update) .input( z.object({ id: z.string(), @@ -431,7 +410,7 @@ export const rbacRouter = t.router({ } await db.update(schema.roles).set(input).where(eq(schema.roles.id, input.id)); }), - deleteRole: rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) + deleteRole: rateLimitedProcedure(ratelimit.delete) .input( z.object({ roleId: z.string(), @@ -464,7 +443,7 @@ export const rbacRouter = t.router({ .delete(schema.roles) .where(and(eq(schema.roles.id, input.roleId), eq(schema.roles.workspaceId, workspace.id))); }), - createPermission: rateLimitedProcedure({ limit: CREATE_LIMIT, duration: CREATE_LIMIT_DURATION }) + createPermission: rateLimitedProcedure(ratelimit.create) .input( z.object({ name: nameSchema, @@ -513,7 +492,7 @@ export const rbacRouter = t.router({ return { permissionId }; }), - updatePermission: rateLimitedProcedure({ limit: UPDATE_LIMIT, duration: UPDATE_LIMIT_DURATION }) + updatePermission: rateLimitedProcedure(ratelimit.update) .input( z.object({ id: z.string(), @@ -553,7 +532,7 @@ export const rbacRouter = t.router({ }) .where(eq(schema.permissions.id, input.id)); }), - deletePermission: rateLimitedProcedure({ limit: DELETE_LIMIT, duration: DELETE_LIMIT_DURATION }) + deletePermission: rateLimitedProcedure(ratelimit.delete) .input( z.object({ permissionId: z.string(), From 98efcc4bd3a7fc35d1e303dfcbc6f87333a90608 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 13:03:27 +0000 Subject: [PATCH 08/11] [autofix.ci] apply automated fixes --- apps/dashboard/lib/trpc/ratelimitProcedure.ts | 80 +++++++++---------- apps/dashboard/lib/trpc/routers/plain.ts | 2 +- apps/dashboard/lib/trpc/routers/rbac.ts | 2 +- 3 files changed, 42 insertions(+), 42 deletions(-) diff --git a/apps/dashboard/lib/trpc/ratelimitProcedure.ts b/apps/dashboard/lib/trpc/ratelimitProcedure.ts index 129496f181..721072eab3 100644 --- a/apps/dashboard/lib/trpc/ratelimitProcedure.ts +++ b/apps/dashboard/lib/trpc/ratelimitProcedure.ts @@ -4,46 +4,46 @@ import { env } from "../env"; // Values for route types import { auth, protectedProcedure } from "./trpc"; -export const ratelimit = env().UNKEY_ROOT_KEY ? { +export const ratelimit = env().UNKEY_ROOT_KEY + ? { + create: new Ratelimit({ + rootKey: env().UNKEY_ROOT_KEY ?? "", + namespace: "trpc_create", + limit: 5, + duration: "3s", + }), - create: new Ratelimit({ - rootKey: env().UNKEY_ROOT_KEY ?? "", - namespace: "trpc_create", - limit: 5, - duration: "3s", - }), - - update: new Ratelimit({ - rootKey: env().UNKEY_ROOT_KEY ?? "", - namespace: "trpc_update", - limit: 25, - duration: "5s", - }), - delete: new Ratelimit({ - rootKey: env().UNKEY_ROOT_KEY ?? "", - namespace: "trpc_delete", - limit: 5, - duration: "5s", - }), -}: { - -}; -export const rateLimitedProcedure = (ratelimit: Ratelimit | undefined) => ratelimit ? - protectedProcedure.use(async (opts) => { - - const response = await ratelimit.limit(opts.ctx.user.id); - - if (!response.success) { - throw new TRPCError({ - code: "TOO_MANY_REQUESTS", - message: "Too many requests in the allowed duration. Please try again", - }); + update: new Ratelimit({ + rootKey: env().UNKEY_ROOT_KEY ?? "", + namespace: "trpc_update", + limit: 25, + duration: "5s", + }), + delete: new Ratelimit({ + rootKey: env().UNKEY_ROOT_KEY ?? "", + namespace: "trpc_delete", + limit: 5, + duration: "5s", + }), } + : {}; +export const rateLimitedProcedure = (ratelimit: Ratelimit | undefined) => + ratelimit + ? protectedProcedure.use(async (opts) => { + const response = await ratelimit.limit(opts.ctx.user.id); + + if (!response.success) { + throw new TRPCError({ + code: "TOO_MANY_REQUESTS", + message: "Too many requests in the allowed duration. Please try again", + }); + } - return opts.next({ - ctx: { - ...opts.ctx, - remaining: response.remaining, - }, - }); - }) : protectedProcedure; + return opts.next({ + ctx: { + ...opts.ctx, + remaining: response.remaining, + }, + }); + }) + : protectedProcedure; diff --git a/apps/dashboard/lib/trpc/routers/plain.ts b/apps/dashboard/lib/trpc/routers/plain.ts index 0832e29140..d98f4c846a 100644 --- a/apps/dashboard/lib/trpc/routers/plain.ts +++ b/apps/dashboard/lib/trpc/routers/plain.ts @@ -1,9 +1,9 @@ import { env } from "@/lib/env"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { clerkClient } from "@clerk/nextjs"; import { PlainClient, uiComponent } from "@team-plain/typescript-sdk"; import { TRPCError } from "@trpc/server"; import { z } from "zod"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; const issueType = z.enum(["bug", "feature", "security", "question", "payment"]); const severity = z.enum(["p0", "p1", "p2", "p3"]); diff --git a/apps/dashboard/lib/trpc/routers/rbac.ts b/apps/dashboard/lib/trpc/routers/rbac.ts index a6b1c2564b..6e6b1980c7 100644 --- a/apps/dashboard/lib/trpc/routers/rbac.ts +++ b/apps/dashboard/lib/trpc/routers/rbac.ts @@ -1,12 +1,12 @@ import { type Permission, and, db, eq, schema } from "@/lib/db"; import { type UnkeyAuditLog, ingestAuditLogs } from "@/lib/tinybird"; +import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { TRPCError } from "@trpc/server"; import { newId } from "@unkey/id"; import { unkeyPermissionValidation } from "@unkey/rbac"; import { z } from "zod"; import type { Context } from "../context"; -import { rateLimitedProcedure, ratelimit } from "@/lib/trpc/ratelimitProcedure"; import { t } from "../trpc"; const nameSchema = z From da21fbc45c1481754a441091a09aefc1d3c35896 Mon Sep 17 00:00:00 2001 From: Michael Silva Date: Tue, 17 Sep 2024 09:12:31 -0400 Subject: [PATCH 09/11] remove extra data returned --- apps/dashboard/lib/trpc/ratelimitProcedure.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/dashboard/lib/trpc/ratelimitProcedure.ts b/apps/dashboard/lib/trpc/ratelimitProcedure.ts index 129496f181..ab0465ecea 100644 --- a/apps/dashboard/lib/trpc/ratelimitProcedure.ts +++ b/apps/dashboard/lib/trpc/ratelimitProcedure.ts @@ -43,7 +43,6 @@ export const rateLimitedProcedure = (ratelimit: Ratelimit | undefined) => rateli return opts.next({ ctx: { ...opts.ctx, - remaining: response.remaining, }, }); }) : protectedProcedure; From 45314205d2b25fe095d0248d2cd435a6f3ff21fc Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 13:15:10 +0000 Subject: [PATCH 10/11] [autofix.ci] apply automated fixes --- apps/dashboard/lib/trpc/ratelimitProcedure.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/dashboard/lib/trpc/ratelimitProcedure.ts b/apps/dashboard/lib/trpc/ratelimitProcedure.ts index 19a9655ecc..ae822ace2a 100644 --- a/apps/dashboard/lib/trpc/ratelimitProcedure.ts +++ b/apps/dashboard/lib/trpc/ratelimitProcedure.ts @@ -39,9 +39,10 @@ export const rateLimitedProcedure = (ratelimit: Ratelimit | undefined) => }); } - return opts.next({ - ctx: { - ...opts.ctx, - }, - }); - }) : protectedProcedure; + return opts.next({ + ctx: { + ...opts.ctx, + }, + }); + }) + : protectedProcedure; From c6e26bfcca1351053bed98194eaf69c563e6be87 Mon Sep 17 00:00:00 2001 From: chronark Date: Thu, 19 Sep 2024 09:18:10 +0200 Subject: [PATCH 11/11] docs: explain permissions and use of key --- apps/dashboard/lib/env.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/dashboard/lib/env.ts b/apps/dashboard/lib/env.ts index 69d302939a..259f629e50 100644 --- a/apps/dashboard/lib/env.ts +++ b/apps/dashboard/lib/env.ts @@ -32,6 +32,10 @@ export const env = () => GITHUB_KEYS_URI: z.string().optional(), + // This key is used for ratelimiting our trpc procedures + // It requires the following permissions: + // - `ratelimit.*.create_namespace` + // - `ratelimit.*.limit` UNKEY_ROOT_KEY: z.string().optional(), }) .parse(process.env);