better-auth 1.2.6-beta.7 → 1.2.7-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/drizzle-adapter/index.cjs +186 -249
- package/dist/adapters/drizzle-adapter/index.d.cts +11 -49
- package/dist/adapters/drizzle-adapter/index.d.mts +11 -49
- package/dist/adapters/drizzle-adapter/index.d.ts +11 -49
- package/dist/adapters/drizzle-adapter/index.mjs +186 -249
- package/dist/adapters/index.cjs +26 -0
- package/dist/adapters/index.d.cts +17 -0
- package/dist/adapters/index.d.mts +17 -0
- package/dist/adapters/index.d.ts +17 -0
- package/dist/adapters/index.mjs +20 -0
- package/dist/adapters/kysely-adapter/index.cjs +7 -7
- package/dist/adapters/kysely-adapter/index.d.cts +17 -49
- package/dist/adapters/kysely-adapter/index.d.mts +17 -49
- package/dist/adapters/kysely-adapter/index.d.ts +17 -49
- package/dist/adapters/kysely-adapter/index.mjs +8 -8
- package/dist/adapters/memory-adapter/index.cjs +7 -8
- package/dist/adapters/memory-adapter/index.d.cts +9 -49
- package/dist/adapters/memory-adapter/index.d.mts +9 -49
- package/dist/adapters/memory-adapter/index.d.ts +9 -49
- package/dist/adapters/memory-adapter/index.mjs +8 -9
- package/dist/adapters/mongodb-adapter/index.cjs +2 -2
- package/dist/adapters/mongodb-adapter/index.d.cts +4 -4
- package/dist/adapters/mongodb-adapter/index.d.mts +4 -4
- package/dist/adapters/mongodb-adapter/index.d.ts +4 -4
- package/dist/adapters/mongodb-adapter/index.mjs +3 -3
- package/dist/adapters/prisma-adapter/index.cjs +130 -203
- package/dist/adapters/prisma-adapter/index.d.cts +17 -49
- package/dist/adapters/prisma-adapter/index.d.mts +17 -49
- package/dist/adapters/prisma-adapter/index.d.ts +17 -49
- package/dist/adapters/prisma-adapter/index.mjs +131 -204
- package/dist/adapters/test.cjs +710 -377
- package/dist/adapters/test.d.cts +64 -5
- package/dist/adapters/test.d.mts +64 -5
- package/dist/adapters/test.d.ts +64 -5
- package/dist/adapters/test.mjs +712 -380
- package/dist/api/index.cjs +61 -25
- package/dist/api/index.d.cts +3 -3
- package/dist/api/index.d.mts +3 -3
- package/dist/api/index.d.ts +3 -3
- package/dist/api/index.mjs +63 -27
- package/dist/client/index.d.cts +3 -3
- package/dist/client/index.d.mts +3 -3
- package/dist/client/index.d.ts +3 -3
- package/dist/client/plugins/index.cjs +13 -15
- package/dist/client/plugins/index.d.cts +80 -19
- package/dist/client/plugins/index.d.mts +80 -19
- package/dist/client/plugins/index.d.ts +80 -19
- package/dist/client/plugins/index.mjs +13 -16
- package/dist/client/react/index.cjs +4 -4
- package/dist/client/react/index.d.cts +3 -3
- package/dist/client/react/index.d.mts +3 -3
- package/dist/client/react/index.d.ts +3 -3
- package/dist/client/solid/index.d.cts +3 -3
- package/dist/client/solid/index.d.mts +3 -3
- package/dist/client/solid/index.d.ts +3 -3
- package/dist/client/svelte/index.d.cts +3 -3
- package/dist/client/svelte/index.d.mts +3 -3
- package/dist/client/svelte/index.d.ts +3 -3
- package/dist/client/vue/index.d.cts +3 -3
- package/dist/client/vue/index.d.mts +3 -3
- package/dist/client/vue/index.d.ts +3 -3
- package/dist/cookies/index.cjs +13 -2
- package/dist/cookies/index.d.cts +3 -3
- package/dist/cookies/index.d.mts +3 -3
- package/dist/cookies/index.d.ts +3 -3
- package/dist/cookies/index.mjs +13 -2
- package/dist/db/index.cjs +6 -5
- package/dist/db/index.d.cts +4 -4
- package/dist/db/index.d.mts +4 -4
- package/dist/db/index.d.ts +4 -4
- package/dist/db/index.mjs +7 -6
- package/dist/index.cjs +11 -7
- package/dist/index.d.cts +4 -4
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.mjs +14 -10
- package/dist/integrations/next-js.cjs +4 -5
- package/dist/integrations/next-js.d.cts +3 -3
- package/dist/integrations/next-js.d.mts +3 -3
- package/dist/integrations/next-js.d.ts +3 -3
- package/dist/integrations/next-js.mjs +5 -6
- package/dist/integrations/node.d.cts +3 -3
- package/dist/integrations/node.d.mts +3 -3
- package/dist/integrations/node.d.ts +3 -3
- package/dist/integrations/react-start.cjs +5 -6
- package/dist/integrations/react-start.d.cts +3 -3
- package/dist/integrations/react-start.d.mts +3 -3
- package/dist/integrations/react-start.d.ts +3 -3
- package/dist/integrations/react-start.mjs +6 -7
- package/dist/integrations/svelte-kit.d.cts +3 -3
- package/dist/integrations/svelte-kit.d.mts +3 -3
- package/dist/integrations/svelte-kit.d.ts +3 -3
- package/dist/oauth2/index.d.cts +5 -5
- package/dist/oauth2/index.d.mts +5 -5
- package/dist/oauth2/index.d.ts +5 -5
- package/dist/plugins/access/index.d.cts +1 -1
- package/dist/plugins/access/index.d.mts +1 -1
- package/dist/plugins/access/index.d.ts +1 -1
- package/dist/plugins/admin/access/index.d.cts +1 -1
- package/dist/plugins/admin/access/index.d.mts +1 -1
- package/dist/plugins/admin/access/index.d.ts +1 -1
- package/dist/plugins/admin/index.cjs +4 -4
- package/dist/plugins/admin/index.d.cts +74 -14
- package/dist/plugins/admin/index.d.mts +74 -14
- package/dist/plugins/admin/index.d.ts +74 -14
- package/dist/plugins/admin/index.mjs +5 -5
- package/dist/plugins/anonymous/index.cjs +4 -5
- package/dist/plugins/anonymous/index.d.cts +3 -3
- package/dist/plugins/anonymous/index.d.mts +3 -3
- package/dist/plugins/anonymous/index.d.ts +3 -3
- package/dist/plugins/anonymous/index.mjs +5 -6
- package/dist/plugins/bearer/index.cjs +2 -2
- package/dist/plugins/bearer/index.d.cts +3 -3
- package/dist/plugins/bearer/index.d.mts +3 -3
- package/dist/plugins/bearer/index.d.ts +3 -3
- package/dist/plugins/bearer/index.mjs +3 -3
- package/dist/plugins/captcha/index.cjs +110 -45
- package/dist/plugins/captcha/index.d.cts +26 -6
- package/dist/plugins/captcha/index.d.mts +26 -6
- package/dist/plugins/captcha/index.d.ts +26 -6
- package/dist/plugins/captcha/index.mjs +110 -45
- package/dist/plugins/custom-session/index.cjs +24 -5
- package/dist/plugins/custom-session/index.d.cts +25 -6
- package/dist/plugins/custom-session/index.d.mts +25 -6
- package/dist/plugins/custom-session/index.d.ts +25 -6
- package/dist/plugins/custom-session/index.mjs +25 -6
- package/dist/plugins/email-otp/index.cjs +96 -30
- package/dist/plugins/email-otp/index.d.cts +33 -10
- package/dist/plugins/email-otp/index.d.mts +33 -10
- package/dist/plugins/email-otp/index.d.ts +33 -10
- package/dist/plugins/email-otp/index.mjs +97 -31
- package/dist/plugins/generic-oauth/index.cjs +81 -20
- package/dist/plugins/generic-oauth/index.d.cts +46 -3
- package/dist/plugins/generic-oauth/index.d.mts +46 -3
- package/dist/plugins/generic-oauth/index.d.ts +46 -3
- package/dist/plugins/generic-oauth/index.mjs +82 -21
- package/dist/plugins/haveibeenpwned/index.cjs +98 -0
- package/dist/plugins/haveibeenpwned/index.d.cts +36 -0
- package/dist/plugins/haveibeenpwned/index.d.mts +36 -0
- package/dist/plugins/haveibeenpwned/index.d.ts +36 -0
- package/dist/plugins/haveibeenpwned/index.mjs +96 -0
- package/dist/plugins/index.cjs +583 -19
- package/dist/plugins/index.d.cts +7 -5
- package/dist/plugins/index.d.mts +7 -5
- package/dist/plugins/index.d.ts +7 -5
- package/dist/plugins/index.mjs +583 -21
- package/dist/plugins/jwt/index.cjs +45 -21
- package/dist/plugins/jwt/index.d.cts +52 -6
- package/dist/plugins/jwt/index.d.mts +52 -6
- package/dist/plugins/jwt/index.d.ts +52 -6
- package/dist/plugins/jwt/index.mjs +46 -22
- package/dist/plugins/magic-link/index.cjs +3 -3
- package/dist/plugins/magic-link/index.mjs +4 -4
- package/dist/plugins/multi-session/index.cjs +3 -3
- package/dist/plugins/multi-session/index.d.cts +3 -3
- package/dist/plugins/multi-session/index.d.mts +3 -3
- package/dist/plugins/multi-session/index.d.ts +3 -3
- package/dist/plugins/multi-session/index.mjs +4 -4
- package/dist/plugins/oauth-proxy/index.cjs +4 -4
- package/dist/plugins/oauth-proxy/index.d.cts +3 -3
- package/dist/plugins/oauth-proxy/index.d.mts +3 -3
- package/dist/plugins/oauth-proxy/index.d.ts +3 -3
- package/dist/plugins/oauth-proxy/index.mjs +5 -5
- package/dist/plugins/oidc-provider/index.cjs +227 -8
- package/dist/plugins/oidc-provider/index.d.cts +215 -3
- package/dist/plugins/oidc-provider/index.d.mts +215 -3
- package/dist/plugins/oidc-provider/index.d.ts +215 -3
- package/dist/plugins/oidc-provider/index.mjs +228 -9
- package/dist/plugins/one-tap/index.cjs +5 -5
- package/dist/plugins/one-tap/index.mjs +6 -6
- package/dist/plugins/one-time-token/index.cjs +119 -0
- package/dist/plugins/one-time-token/index.d.cts +134 -0
- package/dist/plugins/one-time-token/index.d.mts +134 -0
- package/dist/plugins/one-time-token/index.d.ts +134 -0
- package/dist/plugins/one-time-token/index.mjs +117 -0
- package/dist/plugins/open-api/index.cjs +3 -3
- package/dist/plugins/open-api/index.d.cts +3 -3
- package/dist/plugins/open-api/index.d.mts +3 -3
- package/dist/plugins/open-api/index.d.ts +3 -3
- package/dist/plugins/open-api/index.mjs +4 -4
- package/dist/plugins/organization/access/index.d.cts +1 -1
- package/dist/plugins/organization/access/index.d.mts +1 -1
- package/dist/plugins/organization/access/index.d.ts +1 -1
- package/dist/plugins/organization/index.cjs +4 -4
- package/dist/plugins/organization/index.d.cts +708 -55
- package/dist/plugins/organization/index.d.mts +708 -55
- package/dist/plugins/organization/index.d.ts +708 -55
- package/dist/plugins/organization/index.mjs +5 -5
- package/dist/plugins/passkey/index.cjs +82 -8
- package/dist/plugins/passkey/index.d.cts +72 -3
- package/dist/plugins/passkey/index.d.mts +72 -3
- package/dist/plugins/passkey/index.d.ts +72 -3
- package/dist/plugins/passkey/index.mjs +83 -9
- package/dist/plugins/phone-number/index.cjs +194 -26
- package/dist/plugins/phone-number/index.d.cts +132 -8
- package/dist/plugins/phone-number/index.d.mts +132 -8
- package/dist/plugins/phone-number/index.d.ts +132 -8
- package/dist/plugins/phone-number/index.mjs +195 -27
- package/dist/plugins/sso/index.cjs +190 -7
- package/dist/plugins/sso/index.d.cts +181 -15
- package/dist/plugins/sso/index.d.mts +181 -15
- package/dist/plugins/sso/index.d.ts +181 -15
- package/dist/plugins/sso/index.mjs +191 -8
- package/dist/plugins/two-factor/index.cjs +443 -92
- package/dist/plugins/two-factor/index.d.cts +230 -396
- package/dist/plugins/two-factor/index.d.mts +230 -396
- package/dist/plugins/two-factor/index.d.ts +230 -396
- package/dist/plugins/two-factor/index.mjs +431 -80
- package/dist/plugins/username/index.cjs +34 -31
- package/dist/plugins/username/index.d.cts +15 -12
- package/dist/plugins/username/index.d.mts +15 -12
- package/dist/plugins/username/index.d.ts +15 -12
- package/dist/plugins/username/index.mjs +35 -32
- package/dist/shared/better-auth.1DR6suCQ.mjs +307 -0
- package/dist/shared/{better-auth.BSsp73pg.cjs → better-auth.B7cZ2juS.cjs} +15 -14
- package/dist/shared/{better-auth.bKwabe3I.d.mts → better-auth.B88xucNq.d.mts} +529 -39
- package/dist/shared/{better-auth.CApEjVDP.cjs → better-auth.BW8BpneG.cjs} +4 -1
- package/dist/shared/{better-auth.BiQsvaIP.d.cts → better-auth.BcU1Kjyq.d.cts} +2051 -518
- package/dist/shared/better-auth.BfG24BjZ.cjs +118 -0
- package/dist/shared/{better-auth.A3TjrU8G.mjs → better-auth.Bk5IMdhM.mjs} +32 -12
- package/dist/shared/{better-auth.D9VnBkRI.mjs → better-auth.Bm9HxIzE.mjs} +47 -24
- package/dist/shared/{better-auth.BRf6Iynu.d.ts → better-auth.Bwc-6kOr.d.ts} +1 -1
- package/dist/shared/{better-auth.D-oLmHIj.d.mts → better-auth.CA2hFK4N.d.ts} +2051 -518
- package/dist/shared/{better-auth.Dmhe30iW.d.mts → better-auth.CGukGrxT.d.cts} +1 -1
- package/dist/shared/{better-auth.CsSpq0zL.cjs → better-auth.CHUzBidy.cjs} +46 -23
- package/dist/shared/{better-auth.DWRligF8.d.cts → better-auth.CT9J6rD-.d.cts} +539 -7
- package/dist/shared/better-auth.CVCo5Z2T.cjs +310 -0
- package/dist/shared/{better-auth.D4jH-sJA.mjs → better-auth.CWwVo_61.mjs} +458 -118
- package/dist/shared/{better-auth.Bi8FQwDD.d.cts → better-auth.CYegVoq1.d.cts} +1 -1
- package/dist/shared/{better-auth.Bi8FQwDD.d.mts → better-auth.CYegVoq1.d.mts} +1 -1
- package/dist/shared/{better-auth.Bi8FQwDD.d.ts → better-auth.CYegVoq1.d.ts} +1 -1
- package/dist/shared/{better-auth.CepcSj5H.mjs → better-auth.Cc72UxUH.mjs} +1 -2
- package/dist/shared/{better-auth.BWp5dztg.d.ts → better-auth.CmN4mlPh.d.ts} +539 -7
- package/dist/shared/{better-auth.DH3YjMQH.mjs → better-auth.Cqykj82J.mjs} +1 -1
- package/dist/shared/{better-auth.wcdMj2cT.d.mts → better-auth.DIt2e3lu.d.mts} +539 -7
- package/dist/shared/{better-auth.BANAxdkL.d.ts → better-auth.DNTAFSt1.d.ts} +529 -39
- package/dist/shared/{better-auth.DU2QNVc_.d.ts → better-auth.DQ7OSJbI.d.mts} +2051 -518
- package/dist/shared/{better-auth.DLTzKoOS.cjs → better-auth.DSVbLSt7.cjs} +4 -1
- package/dist/shared/{better-auth.B2Fw1vhH.d.cts → better-auth.DTiSPWEk.d.cts} +529 -39
- package/dist/shared/better-auth.DURsStt9.mjs +116 -0
- package/dist/shared/{better-auth.BIjcZ_vt.cjs → better-auth.DYoLD99C.cjs} +31 -11
- package/dist/shared/{better-auth.CV1L7TPV.cjs → better-auth.D_ZIX1O8.cjs} +317 -47
- package/dist/shared/{better-auth.C5H9XEzZ.cjs → better-auth.DcWKCjjf.cjs} +1 -2
- package/dist/shared/{better-auth.BDYXUcLv.cjs → better-auth.Dg0siV5C.cjs} +457 -117
- package/dist/shared/better-auth.DjryM8pE.cjs +760 -0
- package/dist/shared/{better-auth.DPBQN9Fs.mjs → better-auth.Dn_Ms1Uf.mjs} +318 -48
- package/dist/shared/{better-auth.DiG4KL2x.mjs → better-auth.OuYYTHC7.mjs} +4 -1
- package/dist/shared/{better-auth.DtC8i3pf.d.cts → better-auth.S1jimRbX.d.mts} +1 -1
- package/dist/shared/better-auth.SPmq4a4z.d.mts +344 -0
- package/dist/shared/{better-auth.cOCrlspr.mjs → better-auth.bkwPl2G4.mjs} +4 -1
- package/dist/shared/better-auth.cp2rC2iM.d.ts +344 -0
- package/dist/shared/better-auth.eVy4DZvP.d.cts +344 -0
- package/dist/shared/{better-auth.BrOpzmqo.mjs → better-auth.iKoUsdFE.mjs} +15 -14
- package/dist/shared/better-auth.rSYJCd3o.mjs +758 -0
- package/dist/social-providers/index.cjs +75 -3
- package/dist/social-providers/index.d.cts +2 -2
- package/dist/social-providers/index.d.mts +2 -2
- package/dist/social-providers/index.d.ts +2 -2
- package/dist/social-providers/index.mjs +77 -6
- package/dist/types/index.d.cts +4 -4
- package/dist/types/index.d.mts +4 -4
- package/dist/types/index.d.ts +4 -4
- package/package.json +42 -5
- package/dist/chunks/server.cjs +0 -905
- package/dist/chunks/server.mjs +0 -895
- package/dist/shared/better-auth.BcoSd9tC.mjs +0 -10
- package/dist/shared/better-auth.BnRFp-t0.mjs +0 -405
- package/dist/shared/better-auth.C1-vpKly.cjs +0 -12
- package/dist/shared/better-auth.ClTSOgiD.mjs +0 -140
- package/dist/shared/better-auth.DC8JQbiE.mjs +0 -173
- package/dist/shared/better-auth.DWHWPllD.cjs +0 -175
- package/dist/shared/better-auth.DqLjzBlO.cjs +0 -408
- package/dist/shared/better-auth.m575EIBC.cjs +0 -144
package/dist/plugins/index.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export { o as organization, p as parseRoles } from '../shared/better-auth.
|
|
2
|
-
export { twoFactor } from './two-factor/index.mjs';
|
|
1
|
+
export { o as organization, p as parseRoles } from '../shared/better-auth.Dn_Ms1Uf.mjs';
|
|
2
|
+
export { TWO_FACTOR_ERROR_CODES, twoFactor } from './two-factor/index.mjs';
|
|
3
3
|
export { username } from './username/index.mjs';
|
|
4
4
|
export { bearer } from './bearer/index.mjs';
|
|
5
|
-
import { a as createAuthEndpoint, g as getSessionFromCtx, s as sessionMiddleware, c as createAuthMiddleware } from '../shared/better-auth.
|
|
6
|
-
export { H as HIDE_METADATA, O as optionsMiddleware } from '../shared/better-auth.
|
|
5
|
+
import { a as createAuthEndpoint, g as getSessionFromCtx, s as sessionMiddleware, c as createAuthMiddleware } from '../shared/better-auth.CWwVo_61.mjs';
|
|
6
|
+
export { H as HIDE_METADATA, O as optionsMiddleware } from '../shared/better-auth.CWwVo_61.mjs';
|
|
7
7
|
export { magicLink } from './magic-link/index.mjs';
|
|
8
8
|
export { phoneNumber } from './phone-number/index.mjs';
|
|
9
9
|
export { anonymous } from './anonymous/index.mjs';
|
|
10
|
-
export { a as admin } from '../shared/better-auth.
|
|
10
|
+
export { a as admin } from '../shared/better-auth.Bm9HxIzE.mjs';
|
|
11
11
|
export { genericOAuth } from './generic-oauth/index.mjs';
|
|
12
12
|
export { getJwtToken, jwt } from './jwt/index.mjs';
|
|
13
13
|
export { multiSession } from './multi-session/index.mjs';
|
|
@@ -25,9 +25,9 @@ import { z } from 'zod';
|
|
|
25
25
|
import { g as getDate } from '../shared/better-auth.CW6D9eSx.mjs';
|
|
26
26
|
import '../shared/better-auth.8zoxzg-F.mjs';
|
|
27
27
|
import '@better-auth/utils/hmac';
|
|
28
|
-
import { m as mergeSchema } from '../shared/better-auth.
|
|
29
|
-
import '../shared/better-auth.
|
|
30
|
-
import { g as getIp } from '../shared/better-auth.
|
|
28
|
+
import { m as mergeSchema } from '../shared/better-auth.Cc72UxUH.mjs';
|
|
29
|
+
import '../shared/better-auth.Cqykj82J.mjs';
|
|
30
|
+
import { g as getIp } from '../shared/better-auth.iKoUsdFE.mjs';
|
|
31
31
|
import 'defu';
|
|
32
32
|
import '@better-auth/utils/random';
|
|
33
33
|
import '@noble/ciphers/chacha';
|
|
@@ -42,19 +42,19 @@ import '../shared/better-auth.B4Qoxdgc.mjs';
|
|
|
42
42
|
import 'kysely';
|
|
43
43
|
import { p as parseJSON } from '../shared/better-auth.ffWeg50w.mjs';
|
|
44
44
|
import { s as safeJSONParse } from '../shared/better-auth.tB5eU6EY.mjs';
|
|
45
|
-
import { g as generateId } from '../shared/better-auth.BUPPRXfK.mjs';
|
|
46
45
|
import { role } from './access/index.mjs';
|
|
47
|
-
export {
|
|
46
|
+
export { haveIBeenPwned } from './haveibeenpwned/index.mjs';
|
|
47
|
+
export { oneTimeToken } from './one-time-token/index.mjs';
|
|
48
48
|
export { t as twoFactorClient } from '../shared/better-auth.Ddw8bVyV.mjs';
|
|
49
49
|
import '../shared/better-auth.DdzSJf-n.mjs';
|
|
50
|
-
import '../shared/better-auth.
|
|
50
|
+
import '../shared/better-auth.OuYYTHC7.mjs';
|
|
51
51
|
import './organization/access/index.mjs';
|
|
52
52
|
import '../cookies/index.mjs';
|
|
53
53
|
import '../shared/better-auth.VTXNLFMT.mjs';
|
|
54
|
+
import '../shared/better-auth.BUPPRXfK.mjs';
|
|
54
55
|
import '../crypto/index.mjs';
|
|
55
56
|
import '../shared/better-auth.OT3XFeFk.mjs';
|
|
56
57
|
import '../shared/better-auth.DDEbWX-S.mjs';
|
|
57
|
-
import '../shared/better-auth.ClTSOgiD.mjs';
|
|
58
58
|
import '@better-auth/utils/otp';
|
|
59
59
|
import '../shared/better-auth.YwDQhoPc.mjs';
|
|
60
60
|
import '../social-providers/index.mjs';
|
|
@@ -64,7 +64,7 @@ import '../shared/better-auth.BdyOG_p4.mjs';
|
|
|
64
64
|
import 'jose/errors';
|
|
65
65
|
import '@better-auth/utils/binary';
|
|
66
66
|
import '../shared/better-auth.DQI8AD7d.mjs';
|
|
67
|
-
import '../shared/better-auth.
|
|
67
|
+
import '../shared/better-auth.bkwPl2G4.mjs';
|
|
68
68
|
import './admin/access/index.mjs';
|
|
69
69
|
import '../shared/better-auth.fsvwNeUx.mjs';
|
|
70
70
|
import '../api/index.mjs';
|
|
@@ -302,7 +302,143 @@ function createApiKey({
|
|
|
302
302
|
description: "Whether the key has rate limiting enabled. Server Only Property."
|
|
303
303
|
}).optional(),
|
|
304
304
|
permissions: z.record(z.string(), z.array(z.string())).optional()
|
|
305
|
-
})
|
|
305
|
+
}),
|
|
306
|
+
metadata: {
|
|
307
|
+
openapi: {
|
|
308
|
+
description: "Create a new API key for a user",
|
|
309
|
+
responses: {
|
|
310
|
+
"200": {
|
|
311
|
+
description: "API key created successfully",
|
|
312
|
+
content: {
|
|
313
|
+
"application/json": {
|
|
314
|
+
schema: {
|
|
315
|
+
type: "object",
|
|
316
|
+
properties: {
|
|
317
|
+
id: {
|
|
318
|
+
type: "string",
|
|
319
|
+
description: "Unique identifier of the API key"
|
|
320
|
+
},
|
|
321
|
+
createdAt: {
|
|
322
|
+
type: "string",
|
|
323
|
+
format: "date-time",
|
|
324
|
+
description: "Creation timestamp"
|
|
325
|
+
},
|
|
326
|
+
updatedAt: {
|
|
327
|
+
type: "string",
|
|
328
|
+
format: "date-time",
|
|
329
|
+
description: "Last update timestamp"
|
|
330
|
+
},
|
|
331
|
+
name: {
|
|
332
|
+
type: "string",
|
|
333
|
+
nullable: true,
|
|
334
|
+
description: "Name of the API key"
|
|
335
|
+
},
|
|
336
|
+
prefix: {
|
|
337
|
+
type: "string",
|
|
338
|
+
nullable: true,
|
|
339
|
+
description: "Prefix of the API key"
|
|
340
|
+
},
|
|
341
|
+
start: {
|
|
342
|
+
type: "string",
|
|
343
|
+
nullable: true,
|
|
344
|
+
description: "Starting characters of the key (if configured)"
|
|
345
|
+
},
|
|
346
|
+
key: {
|
|
347
|
+
type: "string",
|
|
348
|
+
description: "The full API key (only returned on creation)"
|
|
349
|
+
},
|
|
350
|
+
enabled: {
|
|
351
|
+
type: "boolean",
|
|
352
|
+
description: "Whether the key is enabled"
|
|
353
|
+
},
|
|
354
|
+
expiresAt: {
|
|
355
|
+
type: "string",
|
|
356
|
+
format: "date-time",
|
|
357
|
+
nullable: true,
|
|
358
|
+
description: "Expiration timestamp"
|
|
359
|
+
},
|
|
360
|
+
userId: {
|
|
361
|
+
type: "string",
|
|
362
|
+
description: "ID of the user owning the key"
|
|
363
|
+
},
|
|
364
|
+
lastRefillAt: {
|
|
365
|
+
type: "string",
|
|
366
|
+
format: "date-time",
|
|
367
|
+
nullable: true,
|
|
368
|
+
description: "Last refill timestamp"
|
|
369
|
+
},
|
|
370
|
+
lastRequest: {
|
|
371
|
+
type: "string",
|
|
372
|
+
format: "date-time",
|
|
373
|
+
nullable: true,
|
|
374
|
+
description: "Last request timestamp"
|
|
375
|
+
},
|
|
376
|
+
metadata: {
|
|
377
|
+
type: "object",
|
|
378
|
+
nullable: true,
|
|
379
|
+
additionalProperties: true,
|
|
380
|
+
description: "Metadata associated with the key"
|
|
381
|
+
},
|
|
382
|
+
rateLimitMax: {
|
|
383
|
+
type: "number",
|
|
384
|
+
nullable: true,
|
|
385
|
+
description: "Maximum requests in time window"
|
|
386
|
+
},
|
|
387
|
+
rateLimitTimeWindow: {
|
|
388
|
+
type: "number",
|
|
389
|
+
nullable: true,
|
|
390
|
+
description: "Rate limit time window in milliseconds"
|
|
391
|
+
},
|
|
392
|
+
remaining: {
|
|
393
|
+
type: "number",
|
|
394
|
+
nullable: true,
|
|
395
|
+
description: "Remaining requests"
|
|
396
|
+
},
|
|
397
|
+
refillAmount: {
|
|
398
|
+
type: "number",
|
|
399
|
+
nullable: true,
|
|
400
|
+
description: "Amount to refill"
|
|
401
|
+
},
|
|
402
|
+
refillInterval: {
|
|
403
|
+
type: "number",
|
|
404
|
+
nullable: true,
|
|
405
|
+
description: "Refill interval in milliseconds"
|
|
406
|
+
},
|
|
407
|
+
rateLimitEnabled: {
|
|
408
|
+
type: "boolean",
|
|
409
|
+
description: "Whether rate limiting is enabled"
|
|
410
|
+
},
|
|
411
|
+
requestCount: {
|
|
412
|
+
type: "number",
|
|
413
|
+
description: "Current request count in window"
|
|
414
|
+
},
|
|
415
|
+
permissions: {
|
|
416
|
+
type: "object",
|
|
417
|
+
nullable: true,
|
|
418
|
+
additionalProperties: {
|
|
419
|
+
type: "array",
|
|
420
|
+
items: { type: "string" }
|
|
421
|
+
},
|
|
422
|
+
description: "Permissions associated with the key"
|
|
423
|
+
}
|
|
424
|
+
},
|
|
425
|
+
required: [
|
|
426
|
+
"id",
|
|
427
|
+
"createdAt",
|
|
428
|
+
"updatedAt",
|
|
429
|
+
"key",
|
|
430
|
+
"enabled",
|
|
431
|
+
"userId",
|
|
432
|
+
"rateLimitEnabled",
|
|
433
|
+
"requestCount"
|
|
434
|
+
]
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
306
442
|
},
|
|
307
443
|
async (ctx) => {
|
|
308
444
|
const {
|
|
@@ -415,7 +551,6 @@ function createApiKey({
|
|
|
415
551
|
const defaultPermissions = opts.permissions?.defaultPermissions ? typeof opts.permissions.defaultPermissions === "function" ? await opts.permissions.defaultPermissions(user.id, ctx) : opts.permissions.defaultPermissions : void 0;
|
|
416
552
|
const permissionsToApply = permissions ? JSON.stringify(permissions) : defaultPermissions ? JSON.stringify(defaultPermissions) : void 0;
|
|
417
553
|
let data = {
|
|
418
|
-
id: generateId(),
|
|
419
554
|
createdAt: /* @__PURE__ */ new Date(),
|
|
420
555
|
updatedAt: /* @__PURE__ */ new Date(),
|
|
421
556
|
name: name ?? null,
|
|
@@ -433,7 +568,7 @@ function createApiKey({
|
|
|
433
568
|
remaining: remaining || refillAmount || null,
|
|
434
569
|
refillAmount: refillAmount ?? null,
|
|
435
570
|
refillInterval: refillInterval ?? null,
|
|
436
|
-
rateLimitEnabled: rateLimitEnabled ?? true,
|
|
571
|
+
rateLimitEnabled: rateLimitEnabled ?? opts.rateLimit.enabled === void 0 ? true : opts.rateLimit.enabled,
|
|
437
572
|
requestCount: 0,
|
|
438
573
|
//@ts-ignore - we intentionally save the permissions as string on DB.
|
|
439
574
|
permissions: permissionsToApply
|
|
@@ -472,7 +607,47 @@ function deleteApiKey({
|
|
|
472
607
|
description: "The id of the Api Key"
|
|
473
608
|
})
|
|
474
609
|
}),
|
|
475
|
-
use: [sessionMiddleware]
|
|
610
|
+
use: [sessionMiddleware],
|
|
611
|
+
metadata: {
|
|
612
|
+
openapi: {
|
|
613
|
+
description: "Delete an existing API key",
|
|
614
|
+
requestBody: {
|
|
615
|
+
content: {
|
|
616
|
+
"application/json": {
|
|
617
|
+
schema: {
|
|
618
|
+
type: "object",
|
|
619
|
+
properties: {
|
|
620
|
+
keyId: {
|
|
621
|
+
type: "string",
|
|
622
|
+
description: "The id of the API key to delete"
|
|
623
|
+
}
|
|
624
|
+
},
|
|
625
|
+
required: ["keyId"]
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
responses: {
|
|
631
|
+
"200": {
|
|
632
|
+
description: "API key deleted successfully",
|
|
633
|
+
content: {
|
|
634
|
+
"application/json": {
|
|
635
|
+
schema: {
|
|
636
|
+
type: "object",
|
|
637
|
+
properties: {
|
|
638
|
+
success: {
|
|
639
|
+
type: "boolean",
|
|
640
|
+
description: "Indicates if the API key was successfully deleted"
|
|
641
|
+
}
|
|
642
|
+
},
|
|
643
|
+
required: ["success"]
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
}
|
|
476
651
|
},
|
|
477
652
|
async (ctx) => {
|
|
478
653
|
const { keyId } = ctx.body;
|
|
@@ -533,7 +708,135 @@ function getApiKey({
|
|
|
533
708
|
description: "The id of the Api Key"
|
|
534
709
|
})
|
|
535
710
|
}),
|
|
536
|
-
use: [sessionMiddleware]
|
|
711
|
+
use: [sessionMiddleware],
|
|
712
|
+
metadata: {
|
|
713
|
+
openapi: {
|
|
714
|
+
description: "Retrieve an existing API key by ID",
|
|
715
|
+
responses: {
|
|
716
|
+
"200": {
|
|
717
|
+
description: "API key retrieved successfully",
|
|
718
|
+
content: {
|
|
719
|
+
"application/json": {
|
|
720
|
+
schema: {
|
|
721
|
+
type: "object",
|
|
722
|
+
properties: {
|
|
723
|
+
id: {
|
|
724
|
+
type: "string",
|
|
725
|
+
description: "ID"
|
|
726
|
+
},
|
|
727
|
+
name: {
|
|
728
|
+
type: "string",
|
|
729
|
+
nullable: true,
|
|
730
|
+
description: "The name of the key"
|
|
731
|
+
},
|
|
732
|
+
start: {
|
|
733
|
+
type: "string",
|
|
734
|
+
nullable: true,
|
|
735
|
+
description: "Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key."
|
|
736
|
+
},
|
|
737
|
+
prefix: {
|
|
738
|
+
type: "string",
|
|
739
|
+
nullable: true,
|
|
740
|
+
description: "The API Key prefix. Stored as plain text."
|
|
741
|
+
},
|
|
742
|
+
userId: {
|
|
743
|
+
type: "string",
|
|
744
|
+
description: "The owner of the user id"
|
|
745
|
+
},
|
|
746
|
+
refillInterval: {
|
|
747
|
+
type: "number",
|
|
748
|
+
nullable: true,
|
|
749
|
+
description: "The interval in which the `remaining` count is refilled by day. Example: 1 // every day"
|
|
750
|
+
},
|
|
751
|
+
refillAmount: {
|
|
752
|
+
type: "number",
|
|
753
|
+
nullable: true,
|
|
754
|
+
description: "The amount to refill"
|
|
755
|
+
},
|
|
756
|
+
lastRefillAt: {
|
|
757
|
+
type: "string",
|
|
758
|
+
format: "date-time",
|
|
759
|
+
nullable: true,
|
|
760
|
+
description: "The last refill date"
|
|
761
|
+
},
|
|
762
|
+
enabled: {
|
|
763
|
+
type: "boolean",
|
|
764
|
+
description: "Sets if key is enabled or disabled",
|
|
765
|
+
default: true
|
|
766
|
+
},
|
|
767
|
+
rateLimitEnabled: {
|
|
768
|
+
type: "boolean",
|
|
769
|
+
description: "Whether the key has rate limiting enabled"
|
|
770
|
+
},
|
|
771
|
+
rateLimitTimeWindow: {
|
|
772
|
+
type: "number",
|
|
773
|
+
nullable: true,
|
|
774
|
+
description: "The duration in milliseconds"
|
|
775
|
+
},
|
|
776
|
+
rateLimitMax: {
|
|
777
|
+
type: "number",
|
|
778
|
+
nullable: true,
|
|
779
|
+
description: "Maximum amount of requests allowed within a window"
|
|
780
|
+
},
|
|
781
|
+
requestCount: {
|
|
782
|
+
type: "number",
|
|
783
|
+
description: "The number of requests made within the rate limit time window"
|
|
784
|
+
},
|
|
785
|
+
remaining: {
|
|
786
|
+
type: "number",
|
|
787
|
+
nullable: true,
|
|
788
|
+
description: "Remaining requests (every time api key is used this should updated and should be updated on refill as well)"
|
|
789
|
+
},
|
|
790
|
+
lastRequest: {
|
|
791
|
+
type: "string",
|
|
792
|
+
format: "date-time",
|
|
793
|
+
nullable: true,
|
|
794
|
+
description: "When last request occurred"
|
|
795
|
+
},
|
|
796
|
+
expiresAt: {
|
|
797
|
+
type: "string",
|
|
798
|
+
format: "date-time",
|
|
799
|
+
nullable: true,
|
|
800
|
+
description: "Expiry date of a key"
|
|
801
|
+
},
|
|
802
|
+
createdAt: {
|
|
803
|
+
type: "string",
|
|
804
|
+
format: "date-time",
|
|
805
|
+
description: "created at"
|
|
806
|
+
},
|
|
807
|
+
updatedAt: {
|
|
808
|
+
type: "string",
|
|
809
|
+
format: "date-time",
|
|
810
|
+
description: "updated at"
|
|
811
|
+
},
|
|
812
|
+
metadata: {
|
|
813
|
+
type: "object",
|
|
814
|
+
nullable: true,
|
|
815
|
+
additionalProperties: true,
|
|
816
|
+
description: "Extra metadata about the apiKey"
|
|
817
|
+
},
|
|
818
|
+
permissions: {
|
|
819
|
+
type: "string",
|
|
820
|
+
nullable: true,
|
|
821
|
+
description: "Permissions for the api key (stored as JSON string)"
|
|
822
|
+
}
|
|
823
|
+
},
|
|
824
|
+
required: [
|
|
825
|
+
"id",
|
|
826
|
+
"userId",
|
|
827
|
+
"enabled",
|
|
828
|
+
"rateLimitEnabled",
|
|
829
|
+
"requestCount",
|
|
830
|
+
"createdAt",
|
|
831
|
+
"updatedAt"
|
|
832
|
+
]
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
}
|
|
537
840
|
},
|
|
538
841
|
async (ctx) => {
|
|
539
842
|
const { id } = ctx.query;
|
|
@@ -617,7 +920,135 @@ function updateApiKey({
|
|
|
617
920
|
description: "Maximum amount of requests allowed within a window. Once the `maxRequests` is reached, the request will be rejected until the `timeWindow` has passed, at which point the `timeWindow` will be reset."
|
|
618
921
|
}).optional(),
|
|
619
922
|
permissions: z.record(z.string(), z.array(z.string())).optional().nullable()
|
|
620
|
-
})
|
|
923
|
+
}),
|
|
924
|
+
metadata: {
|
|
925
|
+
openapi: {
|
|
926
|
+
description: "Retrieve an existing API key by ID",
|
|
927
|
+
responses: {
|
|
928
|
+
"200": {
|
|
929
|
+
description: "API key retrieved successfully",
|
|
930
|
+
content: {
|
|
931
|
+
"application/json": {
|
|
932
|
+
schema: {
|
|
933
|
+
type: "object",
|
|
934
|
+
properties: {
|
|
935
|
+
id: {
|
|
936
|
+
type: "string",
|
|
937
|
+
description: "ID"
|
|
938
|
+
},
|
|
939
|
+
name: {
|
|
940
|
+
type: "string",
|
|
941
|
+
nullable: true,
|
|
942
|
+
description: "The name of the key"
|
|
943
|
+
},
|
|
944
|
+
start: {
|
|
945
|
+
type: "string",
|
|
946
|
+
nullable: true,
|
|
947
|
+
description: "Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key."
|
|
948
|
+
},
|
|
949
|
+
prefix: {
|
|
950
|
+
type: "string",
|
|
951
|
+
nullable: true,
|
|
952
|
+
description: "The API Key prefix. Stored as plain text."
|
|
953
|
+
},
|
|
954
|
+
userId: {
|
|
955
|
+
type: "string",
|
|
956
|
+
description: "The owner of the user id"
|
|
957
|
+
},
|
|
958
|
+
refillInterval: {
|
|
959
|
+
type: "number",
|
|
960
|
+
nullable: true,
|
|
961
|
+
description: "The interval in which the `remaining` count is refilled by day. Example: 1 // every day"
|
|
962
|
+
},
|
|
963
|
+
refillAmount: {
|
|
964
|
+
type: "number",
|
|
965
|
+
nullable: true,
|
|
966
|
+
description: "The amount to refill"
|
|
967
|
+
},
|
|
968
|
+
lastRefillAt: {
|
|
969
|
+
type: "string",
|
|
970
|
+
format: "date-time",
|
|
971
|
+
nullable: true,
|
|
972
|
+
description: "The last refill date"
|
|
973
|
+
},
|
|
974
|
+
enabled: {
|
|
975
|
+
type: "boolean",
|
|
976
|
+
description: "Sets if key is enabled or disabled",
|
|
977
|
+
default: true
|
|
978
|
+
},
|
|
979
|
+
rateLimitEnabled: {
|
|
980
|
+
type: "boolean",
|
|
981
|
+
description: "Whether the key has rate limiting enabled"
|
|
982
|
+
},
|
|
983
|
+
rateLimitTimeWindow: {
|
|
984
|
+
type: "number",
|
|
985
|
+
nullable: true,
|
|
986
|
+
description: "The duration in milliseconds"
|
|
987
|
+
},
|
|
988
|
+
rateLimitMax: {
|
|
989
|
+
type: "number",
|
|
990
|
+
nullable: true,
|
|
991
|
+
description: "Maximum amount of requests allowed within a window"
|
|
992
|
+
},
|
|
993
|
+
requestCount: {
|
|
994
|
+
type: "number",
|
|
995
|
+
description: "The number of requests made within the rate limit time window"
|
|
996
|
+
},
|
|
997
|
+
remaining: {
|
|
998
|
+
type: "number",
|
|
999
|
+
nullable: true,
|
|
1000
|
+
description: "Remaining requests (every time api key is used this should updated and should be updated on refill as well)"
|
|
1001
|
+
},
|
|
1002
|
+
lastRequest: {
|
|
1003
|
+
type: "string",
|
|
1004
|
+
format: "date-time",
|
|
1005
|
+
nullable: true,
|
|
1006
|
+
description: "When last request occurred"
|
|
1007
|
+
},
|
|
1008
|
+
expiresAt: {
|
|
1009
|
+
type: "string",
|
|
1010
|
+
format: "date-time",
|
|
1011
|
+
nullable: true,
|
|
1012
|
+
description: "Expiry date of a key"
|
|
1013
|
+
},
|
|
1014
|
+
createdAt: {
|
|
1015
|
+
type: "string",
|
|
1016
|
+
format: "date-time",
|
|
1017
|
+
description: "created at"
|
|
1018
|
+
},
|
|
1019
|
+
updatedAt: {
|
|
1020
|
+
type: "string",
|
|
1021
|
+
format: "date-time",
|
|
1022
|
+
description: "updated at"
|
|
1023
|
+
},
|
|
1024
|
+
metadata: {
|
|
1025
|
+
type: "object",
|
|
1026
|
+
nullable: true,
|
|
1027
|
+
additionalProperties: true,
|
|
1028
|
+
description: "Extra metadata about the apiKey"
|
|
1029
|
+
},
|
|
1030
|
+
permissions: {
|
|
1031
|
+
type: "string",
|
|
1032
|
+
nullable: true,
|
|
1033
|
+
description: "Permissions for the api key (stored as JSON string)"
|
|
1034
|
+
}
|
|
1035
|
+
},
|
|
1036
|
+
required: [
|
|
1037
|
+
"id",
|
|
1038
|
+
"userId",
|
|
1039
|
+
"enabled",
|
|
1040
|
+
"rateLimitEnabled",
|
|
1041
|
+
"requestCount",
|
|
1042
|
+
"createdAt",
|
|
1043
|
+
"updatedAt"
|
|
1044
|
+
]
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
621
1052
|
},
|
|
622
1053
|
async (ctx) => {
|
|
623
1054
|
const {
|
|
@@ -1095,7 +1526,138 @@ function listApiKeys({
|
|
|
1095
1526
|
"/api-key/list",
|
|
1096
1527
|
{
|
|
1097
1528
|
method: "GET",
|
|
1098
|
-
use: [sessionMiddleware]
|
|
1529
|
+
use: [sessionMiddleware],
|
|
1530
|
+
metadata: {
|
|
1531
|
+
openapi: {
|
|
1532
|
+
description: "List all API keys for the authenticated user",
|
|
1533
|
+
responses: {
|
|
1534
|
+
"200": {
|
|
1535
|
+
description: "API keys retrieved successfully",
|
|
1536
|
+
content: {
|
|
1537
|
+
"application/json": {
|
|
1538
|
+
schema: {
|
|
1539
|
+
type: "array",
|
|
1540
|
+
items: {
|
|
1541
|
+
type: "object",
|
|
1542
|
+
properties: {
|
|
1543
|
+
id: {
|
|
1544
|
+
type: "string",
|
|
1545
|
+
description: "ID"
|
|
1546
|
+
},
|
|
1547
|
+
name: {
|
|
1548
|
+
type: "string",
|
|
1549
|
+
nullable: true,
|
|
1550
|
+
description: "The name of the key"
|
|
1551
|
+
},
|
|
1552
|
+
start: {
|
|
1553
|
+
type: "string",
|
|
1554
|
+
nullable: true,
|
|
1555
|
+
description: "Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key."
|
|
1556
|
+
},
|
|
1557
|
+
prefix: {
|
|
1558
|
+
type: "string",
|
|
1559
|
+
nullable: true,
|
|
1560
|
+
description: "The API Key prefix. Stored as plain text."
|
|
1561
|
+
},
|
|
1562
|
+
userId: {
|
|
1563
|
+
type: "string",
|
|
1564
|
+
description: "The owner of the user id"
|
|
1565
|
+
},
|
|
1566
|
+
refillInterval: {
|
|
1567
|
+
type: "number",
|
|
1568
|
+
nullable: true,
|
|
1569
|
+
description: "The interval in which the `remaining` count is refilled by day. Example: 1 // every day"
|
|
1570
|
+
},
|
|
1571
|
+
refillAmount: {
|
|
1572
|
+
type: "number",
|
|
1573
|
+
nullable: true,
|
|
1574
|
+
description: "The amount to refill"
|
|
1575
|
+
},
|
|
1576
|
+
lastRefillAt: {
|
|
1577
|
+
type: "string",
|
|
1578
|
+
format: "date-time",
|
|
1579
|
+
nullable: true,
|
|
1580
|
+
description: "The last refill date"
|
|
1581
|
+
},
|
|
1582
|
+
enabled: {
|
|
1583
|
+
type: "boolean",
|
|
1584
|
+
description: "Sets if key is enabled or disabled",
|
|
1585
|
+
default: true
|
|
1586
|
+
},
|
|
1587
|
+
rateLimitEnabled: {
|
|
1588
|
+
type: "boolean",
|
|
1589
|
+
description: "Whether the key has rate limiting enabled"
|
|
1590
|
+
},
|
|
1591
|
+
rateLimitTimeWindow: {
|
|
1592
|
+
type: "number",
|
|
1593
|
+
nullable: true,
|
|
1594
|
+
description: "The duration in milliseconds"
|
|
1595
|
+
},
|
|
1596
|
+
rateLimitMax: {
|
|
1597
|
+
type: "number",
|
|
1598
|
+
nullable: true,
|
|
1599
|
+
description: "Maximum amount of requests allowed within a window"
|
|
1600
|
+
},
|
|
1601
|
+
requestCount: {
|
|
1602
|
+
type: "number",
|
|
1603
|
+
description: "The number of requests made within the rate limit time window"
|
|
1604
|
+
},
|
|
1605
|
+
remaining: {
|
|
1606
|
+
type: "number",
|
|
1607
|
+
nullable: true,
|
|
1608
|
+
description: "Remaining requests (every time api key is used this should updated and should be updated on refill as well)"
|
|
1609
|
+
},
|
|
1610
|
+
lastRequest: {
|
|
1611
|
+
type: "string",
|
|
1612
|
+
format: "date-time",
|
|
1613
|
+
nullable: true,
|
|
1614
|
+
description: "When last request occurred"
|
|
1615
|
+
},
|
|
1616
|
+
expiresAt: {
|
|
1617
|
+
type: "string",
|
|
1618
|
+
format: "date-time",
|
|
1619
|
+
nullable: true,
|
|
1620
|
+
description: "Expiry date of a key"
|
|
1621
|
+
},
|
|
1622
|
+
createdAt: {
|
|
1623
|
+
type: "string",
|
|
1624
|
+
format: "date-time",
|
|
1625
|
+
description: "created at"
|
|
1626
|
+
},
|
|
1627
|
+
updatedAt: {
|
|
1628
|
+
type: "string",
|
|
1629
|
+
format: "date-time",
|
|
1630
|
+
description: "updated at"
|
|
1631
|
+
},
|
|
1632
|
+
metadata: {
|
|
1633
|
+
type: "object",
|
|
1634
|
+
nullable: true,
|
|
1635
|
+
additionalProperties: true,
|
|
1636
|
+
description: "Extra metadata about the apiKey"
|
|
1637
|
+
},
|
|
1638
|
+
permissions: {
|
|
1639
|
+
type: "string",
|
|
1640
|
+
nullable: true,
|
|
1641
|
+
description: "Permissions for the api key (stored as JSON string)"
|
|
1642
|
+
}
|
|
1643
|
+
},
|
|
1644
|
+
required: [
|
|
1645
|
+
"id",
|
|
1646
|
+
"userId",
|
|
1647
|
+
"enabled",
|
|
1648
|
+
"rateLimitEnabled",
|
|
1649
|
+
"requestCount",
|
|
1650
|
+
"createdAt",
|
|
1651
|
+
"updatedAt"
|
|
1652
|
+
]
|
|
1653
|
+
}
|
|
1654
|
+
}
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1657
|
+
}
|
|
1658
|
+
}
|
|
1659
|
+
}
|
|
1660
|
+
}
|
|
1099
1661
|
},
|
|
1100
1662
|
async (ctx) => {
|
|
1101
1663
|
const session = ctx.context.session;
|
|
@@ -1245,7 +1807,7 @@ const apiKey = (options) => {
|
|
|
1245
1807
|
minimumNameLength: options?.minimumNameLength ?? 1,
|
|
1246
1808
|
enableMetadata: options?.enableMetadata ?? false,
|
|
1247
1809
|
rateLimit: {
|
|
1248
|
-
enabled: options?.rateLimit?.enabled
|
|
1810
|
+
enabled: options?.rateLimit?.enabled === void 0 ? true : options?.rateLimit?.enabled,
|
|
1249
1811
|
timeWindow: options?.rateLimit?.timeWindow ?? 1e3 * 60 * 60 * 24,
|
|
1250
1812
|
maxRequests: options?.rateLimit?.maxRequests ?? 10
|
|
1251
1813
|
},
|