From ea589eef0a7886bf6d2fb3bef4a0f664996b1e81 Mon Sep 17 00:00:00 2001 From: Taesu <166604494+bytaesu@users.noreply.github.com> Date: Fri, 23 Jan 2026 06:07:59 +0900 Subject: [PATCH] fix(core): consolidate rateLimit table schema definition (#7551) --- packages/core/src/db/adapter/factory.ts | 36 ------------------------- packages/core/src/db/get-tables.ts | 5 ++++ 2 files changed, 5 insertions(+), 36 deletions(-) diff --git a/packages/core/src/db/adapter/factory.ts b/packages/core/src/db/adapter/factory.ts index aa429009b4..b0a02f05a9 100644 --- a/packages/core/src/db/adapter/factory.ts +++ b/packages/core/src/db/adapter/factory.ts @@ -1284,42 +1284,6 @@ export const createAdapterFactory = delete tables.session; } - if ( - options.rateLimit && - options.rateLimit.storage === "database" && - // rate-limit will default to enabled in production, - // and given storage is database, it will try to use the rate-limit table, - // so we should make sure to generate rate-limit table schema - (typeof options.rateLimit.enabled === "undefined" || - // and of course if they forcefully set to true, then they want rate-limit, - // thus we should also generate rate-limit table schema - options.rateLimit.enabled === true) - ) { - tables.ratelimit = { - modelName: options.rateLimit.modelName ?? "ratelimit", - fields: { - key: { - type: "string", - unique: true, - required: true, - fieldName: options.rateLimit.fields?.key ?? "key", - }, - count: { - type: "number", - required: true, - fieldName: options.rateLimit.fields?.count ?? "count", - }, - lastRequest: { - type: "number", - required: true, - bigint: true, - defaultValue: () => Date.now(), - fieldName: - options.rateLimit.fields?.lastRequest ?? "lastRequest", - }, - }, - }; - } return adapterInstance.createSchema!({ file, tables }); } : undefined, diff --git a/packages/core/src/db/get-tables.ts b/packages/core/src/db/get-tables.ts index 53849207b0..b5170856c1 100644 --- a/packages/core/src/db/get-tables.ts +++ b/packages/core/src/db/get-tables.ts @@ -32,16 +32,21 @@ export const getAuthTables = ( fields: { key: { type: "string", + unique: true, + required: true, fieldName: options.rateLimit?.fields?.key || "key", }, count: { type: "number", + required: true, fieldName: options.rateLimit?.fields?.count || "count", }, lastRequest: { type: "number", bigint: true, + required: true, fieldName: options.rateLimit?.fields?.lastRequest || "lastRequest", + defaultValue: () => Date.now(), }, }, },