@robelest/convex-auth 0.0.4-preview.13 → 0.0.4-preview.16
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/README.md +140 -9
- package/dist/bin.cjs +5957 -5478
- package/dist/client/index.d.ts +3 -7
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +27 -26
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +14 -0
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +1672 -24
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/convex.config.d.ts +2 -2
- package/dist/component/convex.config.d.ts.map +1 -1
- package/dist/component/index.d.ts +1 -1
- package/dist/component/index.js +2 -2
- package/dist/component/model.d.ts +153 -0
- package/dist/component/model.d.ts.map +1 -0
- package/dist/component/model.js +343 -0
- package/dist/component/model.js.map +1 -0
- package/dist/component/providers/sso.d.ts +1 -1
- package/dist/component/public/enterprise.d.ts +54 -0
- package/dist/component/public/enterprise.d.ts.map +1 -0
- package/dist/component/public/enterprise.js +515 -0
- package/dist/component/public/enterprise.js.map +1 -0
- package/dist/component/public/factors.d.ts +52 -0
- package/dist/component/public/factors.d.ts.map +1 -0
- package/dist/component/public/factors.js +285 -0
- package/dist/component/public/factors.js.map +1 -0
- package/dist/component/public/groups.d.ts +116 -0
- package/dist/component/public/groups.d.ts.map +1 -0
- package/dist/component/public/groups.js +596 -0
- package/dist/component/public/groups.js.map +1 -0
- package/dist/component/public/identity.d.ts +93 -0
- package/dist/component/public/identity.d.ts.map +1 -0
- package/dist/component/public/identity.js +426 -0
- package/dist/component/public/identity.js.map +1 -0
- package/dist/component/public/keys.d.ts +41 -0
- package/dist/component/public/keys.d.ts.map +1 -0
- package/dist/component/public/keys.js +157 -0
- package/dist/component/public/keys.js.map +1 -0
- package/dist/component/public/shared.d.ts +26 -0
- package/dist/component/public/shared.d.ts.map +1 -0
- package/dist/component/public/shared.js +32 -0
- package/dist/component/public/shared.js.map +1 -0
- package/dist/component/public.d.ts +9 -321
- package/dist/component/public.d.ts.map +1 -1
- package/dist/component/public.js +6 -2145
- package/dist/component/schema.d.ts +406 -260
- package/dist/component/schema.js +37 -32
- package/dist/component/schema.js.map +1 -1
- package/dist/component/server/auth.d.ts +161 -15
- package/dist/component/server/auth.d.ts.map +1 -1
- package/dist/component/server/auth.js +100 -7
- package/dist/component/server/auth.js.map +1 -1
- package/dist/component/server/cookies.js +3 -0
- package/dist/component/server/cookies.js.map +1 -1
- package/dist/component/server/db.js +1 -0
- package/dist/component/server/db.js.map +1 -1
- package/dist/component/server/device.js +3 -1
- package/dist/component/server/device.js.map +1 -1
- package/dist/component/server/domains/core.js +629 -0
- package/dist/component/server/domains/core.js.map +1 -0
- package/dist/component/server/domains/sso.js +884 -0
- package/dist/component/server/domains/sso.js.map +1 -0
- package/dist/component/server/factory.d.ts +136 -0
- package/dist/component/server/factory.d.ts.map +1 -0
- package/dist/component/server/factory.js +1134 -0
- package/dist/component/server/factory.js.map +1 -0
- package/dist/component/server/fx.js +2 -1
- package/dist/component/server/fx.js.map +1 -1
- package/dist/component/server/http.js +287 -0
- package/dist/component/server/http.js.map +1 -0
- package/dist/component/server/identity.js +13 -0
- package/dist/component/server/identity.js.map +1 -0
- package/dist/component/server/keys.js +4 -0
- package/dist/component/server/keys.js.map +1 -1
- package/dist/component/server/mutations/account.js +1 -1
- package/dist/component/server/mutations/index.js +2 -2
- package/dist/component/server/mutations/index.js.map +1 -1
- package/dist/component/server/mutations/invalidate.js +1 -1
- package/dist/component/server/mutations/oauth.js +10 -7
- package/dist/component/server/mutations/oauth.js.map +1 -1
- package/dist/component/server/mutations/refresh.js +1 -1
- package/dist/component/server/mutations/register.js +1 -1
- package/dist/component/server/mutations/retrieve.js +1 -1
- package/dist/component/server/mutations/signature.js +1 -1
- package/dist/component/server/mutations/store.js +6 -3
- package/dist/component/server/mutations/store.js.map +1 -1
- package/dist/component/server/mutations/verify.js +1 -1
- package/dist/component/server/oauth.js +3 -0
- package/dist/component/server/oauth.js.map +1 -1
- package/dist/component/server/passkey.js +3 -2
- package/dist/component/server/passkey.js.map +1 -1
- package/dist/component/server/provider.js +2 -0
- package/dist/component/server/provider.js.map +1 -1
- package/dist/component/server/providers.js +10 -0
- package/dist/component/server/providers.js.map +1 -1
- package/dist/component/server/ratelimit.js +3 -0
- package/dist/component/server/ratelimit.js.map +1 -1
- package/dist/component/server/redirects.js +2 -0
- package/dist/component/server/redirects.js.map +1 -1
- package/dist/component/server/refresh.js +5 -0
- package/dist/component/server/refresh.js.map +1 -1
- package/dist/component/server/sessions.js +5 -0
- package/dist/component/server/sessions.js.map +1 -1
- package/dist/component/server/signin.js +2 -1
- package/dist/component/server/signin.js.map +1 -1
- package/dist/component/server/sso.js +166 -19
- package/dist/component/server/sso.js.map +1 -1
- package/dist/component/server/tokens.js +1 -0
- package/dist/component/server/tokens.js.map +1 -1
- package/dist/component/server/totp.js +4 -2
- package/dist/component/server/totp.js.map +1 -1
- package/dist/component/server/types.d.ts +106 -38
- package/dist/component/server/types.d.ts.map +1 -1
- package/dist/component/server/types.js.map +1 -1
- package/dist/component/server/users.js +1 -0
- package/dist/component/server/users.js.map +1 -1
- package/dist/component/server/utils.js +44 -2
- package/dist/component/server/utils.js.map +1 -1
- package/dist/providers/anonymous.d.ts +1 -1
- package/dist/providers/credentials.d.ts +1 -1
- package/dist/providers/password.d.ts +1 -1
- package/dist/providers/sso.d.ts +1 -1
- package/dist/providers/sso.js.map +1 -1
- package/dist/server/auth.d.ts +163 -17
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +100 -7
- package/dist/server/auth.js.map +1 -1
- package/dist/server/cookies.d.ts +1 -38
- package/dist/server/cookies.js +3 -0
- package/dist/server/cookies.js.map +1 -1
- package/dist/server/db.d.ts +1 -125
- package/dist/server/db.js +1 -0
- package/dist/server/db.js.map +1 -1
- package/dist/server/device.d.ts +1 -24
- package/dist/server/device.js +3 -1
- package/dist/server/device.js.map +1 -1
- package/dist/server/domains/core.d.ts +434 -0
- package/dist/server/domains/core.d.ts.map +1 -0
- package/dist/server/domains/core.js +629 -0
- package/dist/server/domains/core.js.map +1 -0
- package/dist/server/domains/sso.d.ts +409 -0
- package/dist/server/domains/sso.d.ts.map +1 -0
- package/dist/server/domains/sso.js +884 -0
- package/dist/server/domains/sso.js.map +1 -0
- package/dist/server/enterpriseValidators.d.ts +1 -0
- package/dist/server/enterpriseValidators.js +60 -0
- package/dist/server/enterpriseValidators.js.map +1 -0
- package/dist/server/factory.d.ts +136 -0
- package/dist/server/factory.d.ts.map +1 -0
- package/dist/server/factory.js +1134 -0
- package/dist/server/factory.js.map +1 -0
- package/dist/server/fx.d.ts +1 -16
- package/dist/server/fx.d.ts.map +1 -1
- package/dist/server/fx.js +1 -0
- package/dist/server/fx.js.map +1 -1
- package/dist/server/http.d.ts +59 -0
- package/dist/server/http.d.ts.map +1 -0
- package/dist/server/http.js +287 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server/identity.d.ts +1 -0
- package/dist/server/identity.js +13 -0
- package/dist/server/identity.js.map +1 -0
- package/dist/server/index.d.ts +468 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +530 -36
- package/dist/server/index.js.map +1 -1
- package/dist/server/keys.d.ts +1 -57
- package/dist/server/keys.js +4 -0
- package/dist/server/keys.js.map +1 -1
- package/dist/server/mutations/account.d.ts +7 -7
- package/dist/server/mutations/account.d.ts.map +1 -1
- package/dist/server/mutations/code.d.ts +13 -13
- package/dist/server/mutations/code.d.ts.map +1 -1
- package/dist/server/mutations/index.d.ts +107 -107
- package/dist/server/mutations/index.d.ts.map +1 -1
- package/dist/server/mutations/index.js +1 -1
- package/dist/server/mutations/index.js.map +1 -1
- package/dist/server/mutations/invalidate.d.ts +5 -5
- package/dist/server/mutations/invalidate.d.ts.map +1 -1
- package/dist/server/mutations/oauth.d.ts +10 -10
- package/dist/server/mutations/oauth.d.ts.map +1 -1
- package/dist/server/mutations/oauth.js +9 -6
- package/dist/server/mutations/oauth.js.map +1 -1
- package/dist/server/mutations/refresh.d.ts +4 -4
- package/dist/server/mutations/register.d.ts +12 -12
- package/dist/server/mutations/register.d.ts.map +1 -1
- package/dist/server/mutations/retrieve.d.ts +7 -7
- package/dist/server/mutations/signature.d.ts +5 -5
- package/dist/server/mutations/signin.d.ts +6 -6
- package/dist/server/mutations/signin.d.ts.map +1 -1
- package/dist/server/mutations/signout.d.ts +1 -1
- package/dist/server/mutations/store.d.ts +3 -2
- package/dist/server/mutations/store.d.ts.map +1 -1
- package/dist/server/mutations/store.js +6 -3
- package/dist/server/mutations/store.js.map +1 -1
- package/dist/server/mutations/verifier.d.ts +1 -1
- package/dist/server/mutations/verify.d.ts +11 -11
- package/dist/server/mutations/verify.d.ts.map +1 -1
- package/dist/server/oauth.d.ts +1 -59
- package/dist/server/oauth.js +3 -0
- package/dist/server/oauth.js.map +1 -1
- package/dist/server/passkey.d.ts.map +1 -1
- package/dist/server/passkey.js +3 -2
- package/dist/server/passkey.js.map +1 -1
- package/dist/server/provider.d.ts +1 -14
- package/dist/server/provider.d.ts.map +1 -1
- package/dist/server/provider.js +2 -0
- package/dist/server/provider.js.map +1 -1
- package/dist/server/providers.js +10 -0
- package/dist/server/providers.js.map +1 -1
- package/dist/server/ratelimit.d.ts +1 -22
- package/dist/server/ratelimit.js +3 -0
- package/dist/server/ratelimit.js.map +1 -1
- package/dist/server/redirects.d.ts +1 -10
- package/dist/server/redirects.js +2 -0
- package/dist/server/redirects.js.map +1 -1
- package/dist/server/refresh.d.ts +1 -37
- package/dist/server/refresh.js +5 -0
- package/dist/server/refresh.js.map +1 -1
- package/dist/server/sessions.d.ts +1 -28
- package/dist/server/sessions.js +5 -0
- package/dist/server/sessions.js.map +1 -1
- package/dist/server/signin.d.ts +1 -55
- package/dist/server/signin.js +2 -1
- package/dist/server/signin.js.map +1 -1
- package/dist/server/sso.d.ts +1 -348
- package/dist/server/sso.js +165 -18
- package/dist/server/sso.js.map +1 -1
- package/dist/server/templates.d.ts +1 -21
- package/dist/server/templates.js +1 -0
- package/dist/server/templates.js.map +1 -1
- package/dist/server/tokens.d.ts +1 -11
- package/dist/server/tokens.js +1 -0
- package/dist/server/tokens.js.map +1 -1
- package/dist/server/totp.d.ts +1 -23
- package/dist/server/totp.js +4 -2
- package/dist/server/totp.js.map +1 -1
- package/dist/server/types.d.ts +114 -77
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js.map +1 -1
- package/dist/server/users.d.ts +1 -31
- package/dist/server/users.js +1 -0
- package/dist/server/users.js.map +1 -1
- package/dist/server/utils.d.ts +1 -27
- package/dist/server/utils.js +44 -2
- package/dist/server/utils.js.map +1 -1
- package/dist/server/version.d.ts +1 -1
- package/dist/server/version.js +1 -1
- package/dist/server/version.js.map +1 -1
- package/package.json +4 -5
- package/src/cli/bin.ts +5 -0
- package/src/cli/index.ts +22 -9
- package/src/cli/keys.ts +3 -0
- package/src/client/index.ts +36 -37
- package/src/component/_generated/api.ts +14 -0
- package/src/component/_generated/component.ts +2106 -9
- package/src/component/index.ts +3 -1
- package/src/component/model.ts +441 -0
- package/src/component/public/enterprise.ts +753 -0
- package/src/component/public/factors.ts +332 -0
- package/src/component/public/groups.ts +932 -0
- package/src/component/public/identity.ts +566 -0
- package/src/component/public/keys.ts +209 -0
- package/src/component/public/shared.ts +119 -0
- package/src/component/public.ts +5 -2965
- package/src/component/schema.ts +68 -63
- package/src/providers/sso.ts +1 -1
- package/src/server/auth.ts +413 -18
- package/src/server/cookies.ts +3 -0
- package/src/server/db.ts +3 -0
- package/src/server/device.ts +3 -1
- package/src/server/domains/core.ts +1071 -0
- package/src/server/domains/sso.ts +1749 -0
- package/src/server/enterpriseValidators.ts +93 -0
- package/src/server/factory.ts +2181 -0
- package/src/server/fx.ts +1 -0
- package/src/server/http.ts +529 -0
- package/src/server/identity.ts +18 -0
- package/src/server/index.ts +806 -40
- package/src/server/keys.ts +4 -0
- package/src/server/mutations/index.ts +1 -1
- package/src/server/mutations/oauth.ts +36 -8
- package/src/server/mutations/store.ts +6 -3
- package/src/server/oauth.ts +6 -0
- package/src/server/passkey.ts +3 -2
- package/src/server/provider.ts +2 -0
- package/src/server/providers.ts +20 -0
- package/src/server/ratelimit.ts +3 -0
- package/src/server/redirects.ts +2 -0
- package/src/server/refresh.ts +5 -0
- package/src/server/sessions.ts +5 -0
- package/src/server/signin.ts +1 -0
- package/src/server/sso.ts +259 -17
- package/src/server/templates.ts +1 -0
- package/src/server/tokens.ts +1 -0
- package/src/server/totp.ts +4 -2
- package/src/server/types.ts +178 -83
- package/src/server/users.ts +1 -0
- package/src/server/utils.ts +71 -1
- package/src/server/version.ts +1 -1
- package/dist/component/public.js.map +0 -1
- package/dist/component/server/implementation.d.ts +0 -1264
- package/dist/component/server/implementation.d.ts.map +0 -1
- package/dist/component/server/implementation.js +0 -2365
- package/dist/component/server/implementation.js.map +0 -1
- package/dist/server/cookies.d.ts.map +0 -1
- package/dist/server/db.d.ts.map +0 -1
- package/dist/server/device.d.ts.map +0 -1
- package/dist/server/implementation.d.ts +0 -1264
- package/dist/server/implementation.d.ts.map +0 -1
- package/dist/server/implementation.js +0 -2365
- package/dist/server/implementation.js.map +0 -1
- package/dist/server/keys.d.ts.map +0 -1
- package/dist/server/oauth.d.ts.map +0 -1
- package/dist/server/ratelimit.d.ts.map +0 -1
- package/dist/server/redirects.d.ts.map +0 -1
- package/dist/server/refresh.d.ts.map +0 -1
- package/dist/server/sessions.d.ts.map +0 -1
- package/dist/server/signin.d.ts.map +0 -1
- package/dist/server/sso.d.ts.map +0 -1
- package/dist/server/templates.d.ts.map +0 -1
- package/dist/server/tokens.d.ts.map +0 -1
- package/dist/server/totp.d.ts.map +0 -1
- package/dist/server/users.d.ts.map +0 -1
- package/dist/server/utils.d.ts.map +0 -1
- package/src/server/implementation.ts +0 -5336
package/src/component/schema.ts
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import { defineSchema, defineTable } from "convex/server";
|
|
2
2
|
import { v } from "convex/values";
|
|
3
3
|
|
|
4
|
+
import {
|
|
5
|
+
vApiKeyRateLimit,
|
|
6
|
+
vApiKeyRateLimitState,
|
|
7
|
+
vApiKeyScope,
|
|
8
|
+
vAuditActorType,
|
|
9
|
+
vAuditStatus,
|
|
10
|
+
vDeviceStatus,
|
|
11
|
+
vEnterprisePolicy,
|
|
12
|
+
vEnterpriseSecretKind,
|
|
13
|
+
vEnterpriseStatus,
|
|
14
|
+
vInviteStatus,
|
|
15
|
+
vScimResourceType,
|
|
16
|
+
vScimStatus,
|
|
17
|
+
vTag,
|
|
18
|
+
vWebhookDeliveryStatus,
|
|
19
|
+
vWebhookEndpointStatus,
|
|
20
|
+
} from "./model";
|
|
21
|
+
|
|
4
22
|
/**
|
|
5
23
|
* Schema for the auth component.
|
|
6
24
|
*
|
|
@@ -166,11 +184,7 @@ export default defineSchema({
|
|
|
166
184
|
/** Minimum polling interval in seconds. */
|
|
167
185
|
interval: v.number(),
|
|
168
186
|
/** Current status of this device authorization session. */
|
|
169
|
-
status:
|
|
170
|
-
v.literal("pending"),
|
|
171
|
-
v.literal("authorized"),
|
|
172
|
-
v.literal("denied"),
|
|
173
|
-
),
|
|
187
|
+
status: vDeviceStatus,
|
|
174
188
|
/** Set when the user authorizes — links to the authorizing user. */
|
|
175
189
|
userId: v.optional(v.id("User")),
|
|
176
190
|
/** Set when the user authorizes — the session created for the device. */
|
|
@@ -201,7 +215,7 @@ export default defineSchema({
|
|
|
201
215
|
type: v.optional(v.string()),
|
|
202
216
|
parentGroupId: v.optional(v.id("Group")),
|
|
203
217
|
/** Faceted classification tags. Normalized at write time (trimmed, lowercased). */
|
|
204
|
-
tags: v.optional(v.array(
|
|
218
|
+
tags: v.optional(v.array(vTag)),
|
|
205
219
|
extend: v.optional(v.any()),
|
|
206
220
|
})
|
|
207
221
|
.index("slug", ["slug"])
|
|
@@ -232,6 +246,7 @@ export default defineSchema({
|
|
|
232
246
|
groupId: v.id("Group"),
|
|
233
247
|
userId: v.id("User"),
|
|
234
248
|
role: v.optional(v.string()),
|
|
249
|
+
roleIds: v.optional(v.array(v.string())),
|
|
235
250
|
status: v.optional(v.string()),
|
|
236
251
|
extend: v.optional(v.any()),
|
|
237
252
|
})
|
|
@@ -253,12 +268,8 @@ export default defineSchema({
|
|
|
253
268
|
email: v.optional(v.string()),
|
|
254
269
|
tokenHash: v.string(),
|
|
255
270
|
role: v.optional(v.string()),
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
v.literal("accepted"),
|
|
259
|
-
v.literal("revoked"),
|
|
260
|
-
v.literal("expired"),
|
|
261
|
-
),
|
|
271
|
+
roleIds: v.optional(v.array(v.string())),
|
|
272
|
+
status: vInviteStatus,
|
|
262
273
|
expiresTime: v.optional(v.number()),
|
|
263
274
|
acceptedByUserId: v.optional(v.id("User")),
|
|
264
275
|
acceptedTime: v.optional(v.number()),
|
|
@@ -269,12 +280,7 @@ export default defineSchema({
|
|
|
269
280
|
.index("email_status", ["email", "status"])
|
|
270
281
|
.index("invited_by_user_id_status", ["invitedByUserId", "status"])
|
|
271
282
|
.index("group_id", ["groupId"])
|
|
272
|
-
.index("group_id_status", ["groupId", "status"])
|
|
273
|
-
.index("role_status_accepted_by_user_id", [
|
|
274
|
-
"role",
|
|
275
|
-
"status",
|
|
276
|
-
"acceptedByUserId",
|
|
277
|
-
]),
|
|
283
|
+
.index("group_id_status", ["groupId", "status"]),
|
|
278
284
|
|
|
279
285
|
/**
|
|
280
286
|
* Enterprise configuration attached to a root group/organization.
|
|
@@ -287,11 +293,8 @@ export default defineSchema({
|
|
|
287
293
|
groupId: v.id("Group"),
|
|
288
294
|
slug: v.optional(v.string()),
|
|
289
295
|
name: v.optional(v.string()),
|
|
290
|
-
status:
|
|
291
|
-
|
|
292
|
-
v.literal("active"),
|
|
293
|
-
v.literal("disabled"),
|
|
294
|
-
),
|
|
296
|
+
status: vEnterpriseStatus,
|
|
297
|
+
policy: v.optional(vEnterprisePolicy),
|
|
295
298
|
config: v.optional(v.any()),
|
|
296
299
|
extend: v.optional(v.any()),
|
|
297
300
|
})
|
|
@@ -313,21 +316,48 @@ export default defineSchema({
|
|
|
313
316
|
.index("group_id", ["groupId"])
|
|
314
317
|
.index("domain", ["domain"]),
|
|
315
318
|
|
|
319
|
+
/**
|
|
320
|
+
* Pending DNS TXT verification challenges for enterprise domains.
|
|
321
|
+
*/
|
|
322
|
+
EnterpriseDomainVerification: defineTable({
|
|
323
|
+
enterpriseId: v.id("Enterprise"),
|
|
324
|
+
groupId: v.id("Group"),
|
|
325
|
+
domainId: v.id("EnterpriseDomain"),
|
|
326
|
+
domain: v.string(),
|
|
327
|
+
recordName: v.string(),
|
|
328
|
+
token: v.string(),
|
|
329
|
+
tokenHash: v.string(),
|
|
330
|
+
requestedAt: v.number(),
|
|
331
|
+
expiresAt: v.number(),
|
|
332
|
+
})
|
|
333
|
+
.index("enterprise_id", ["enterpriseId"])
|
|
334
|
+
.index("domain_id", ["domainId"])
|
|
335
|
+
.index("token_hash", ["tokenHash"]),
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Encrypted enterprise secrets stored separately from protocol config.
|
|
339
|
+
*/
|
|
340
|
+
EnterpriseSecret: defineTable({
|
|
341
|
+
enterpriseId: v.id("Enterprise"),
|
|
342
|
+
groupId: v.id("Group"),
|
|
343
|
+
kind: vEnterpriseSecretKind,
|
|
344
|
+
ciphertext: v.string(),
|
|
345
|
+
updatedAt: v.number(),
|
|
346
|
+
})
|
|
347
|
+
.index("enterprise_id", ["enterpriseId"])
|
|
348
|
+
.index("enterprise_id_kind", ["enterpriseId", "kind"])
|
|
349
|
+
.index("group_id", ["groupId"]),
|
|
350
|
+
|
|
316
351
|
/**
|
|
317
352
|
* SCIM configuration for an enterprise tenant.
|
|
318
353
|
*/
|
|
319
354
|
EnterpriseScimConfig: defineTable({
|
|
320
355
|
enterpriseId: v.id("Enterprise"),
|
|
321
356
|
groupId: v.id("Group"),
|
|
322
|
-
status:
|
|
323
|
-
v.literal("draft"),
|
|
324
|
-
v.literal("active"),
|
|
325
|
-
v.literal("disabled"),
|
|
326
|
-
),
|
|
357
|
+
status: vScimStatus,
|
|
327
358
|
basePath: v.string(),
|
|
328
359
|
tokenHash: v.string(),
|
|
329
360
|
lastRotatedAt: v.optional(v.number()),
|
|
330
|
-
deprovisionMode: v.optional(v.union(v.literal("soft"), v.literal("hard"))),
|
|
331
361
|
extend: v.optional(v.any()),
|
|
332
362
|
})
|
|
333
363
|
.index("enterprise_id", ["enterpriseId"])
|
|
@@ -341,7 +371,7 @@ export default defineSchema({
|
|
|
341
371
|
EnterpriseScimIdentity: defineTable({
|
|
342
372
|
enterpriseId: v.id("Enterprise"),
|
|
343
373
|
groupId: v.id("Group"),
|
|
344
|
-
resourceType:
|
|
374
|
+
resourceType: vScimResourceType,
|
|
345
375
|
externalId: v.string(),
|
|
346
376
|
userId: v.optional(v.id("User")),
|
|
347
377
|
mappedGroupId: v.optional(v.id("Group")),
|
|
@@ -356,6 +386,7 @@ export default defineSchema({
|
|
|
356
386
|
"resourceType",
|
|
357
387
|
"externalId",
|
|
358
388
|
])
|
|
389
|
+
.index("enterprise_id_user_id", ["enterpriseId", "userId"])
|
|
359
390
|
.index("user_id", ["userId"])
|
|
360
391
|
.index("mapped_group_id", ["mappedGroupId"]),
|
|
361
392
|
|
|
@@ -366,17 +397,11 @@ export default defineSchema({
|
|
|
366
397
|
enterpriseId: v.id("Enterprise"),
|
|
367
398
|
groupId: v.id("Group"),
|
|
368
399
|
eventType: v.string(),
|
|
369
|
-
actorType:
|
|
370
|
-
v.literal("user"),
|
|
371
|
-
v.literal("system"),
|
|
372
|
-
v.literal("scim"),
|
|
373
|
-
v.literal("api_key"),
|
|
374
|
-
v.literal("webhook"),
|
|
375
|
-
),
|
|
400
|
+
actorType: vAuditActorType,
|
|
376
401
|
actorId: v.optional(v.string()),
|
|
377
402
|
subjectType: v.string(),
|
|
378
403
|
subjectId: v.optional(v.string()),
|
|
379
|
-
status:
|
|
404
|
+
status: vAuditStatus,
|
|
380
405
|
occurredAt: v.number(),
|
|
381
406
|
requestId: v.optional(v.string()),
|
|
382
407
|
ip: v.optional(v.string()),
|
|
@@ -393,7 +418,7 @@ export default defineSchema({
|
|
|
393
418
|
enterpriseId: v.id("Enterprise"),
|
|
394
419
|
groupId: v.id("Group"),
|
|
395
420
|
url: v.string(),
|
|
396
|
-
status:
|
|
421
|
+
status: vWebhookEndpointStatus,
|
|
397
422
|
secretHash: v.string(),
|
|
398
423
|
subscriptions: v.array(v.string()),
|
|
399
424
|
createdByUserId: v.optional(v.id("User")),
|
|
@@ -414,12 +439,7 @@ export default defineSchema({
|
|
|
414
439
|
endpointId: v.id("EnterpriseWebhookEndpoint"),
|
|
415
440
|
auditEventId: v.optional(v.id("EnterpriseAuditEvent")),
|
|
416
441
|
eventType: v.string(),
|
|
417
|
-
status:
|
|
418
|
-
v.literal("pending"),
|
|
419
|
-
v.literal("processing"),
|
|
420
|
-
v.literal("delivered"),
|
|
421
|
-
v.literal("failed"),
|
|
422
|
-
),
|
|
442
|
+
status: vWebhookDeliveryStatus,
|
|
423
443
|
attemptCount: v.number(),
|
|
424
444
|
nextAttemptAt: v.number(),
|
|
425
445
|
lastAttemptAt: v.optional(v.number()),
|
|
@@ -454,26 +474,11 @@ export default defineSchema({
|
|
|
454
474
|
/** User-assigned name (e.g. "CI Pipeline", "Production API"). */
|
|
455
475
|
name: v.string(),
|
|
456
476
|
/** Scoped permissions: [{ resource: "users", actions: ["read", "list"] }]. */
|
|
457
|
-
scopes: v.array(
|
|
458
|
-
v.object({
|
|
459
|
-
resource: v.string(),
|
|
460
|
-
actions: v.array(v.string()),
|
|
461
|
-
}),
|
|
462
|
-
),
|
|
477
|
+
scopes: v.array(vApiKeyScope),
|
|
463
478
|
/** Optional per-key rate limit configuration. */
|
|
464
|
-
rateLimit: v.optional(
|
|
465
|
-
v.object({
|
|
466
|
-
maxRequests: v.number(),
|
|
467
|
-
windowMs: v.number(),
|
|
468
|
-
}),
|
|
469
|
-
),
|
|
479
|
+
rateLimit: v.optional(vApiKeyRateLimit),
|
|
470
480
|
/** Rate limit state tracking (token-bucket). */
|
|
471
|
-
rateLimitState: v.optional(
|
|
472
|
-
v.object({
|
|
473
|
-
attemptsLeft: v.number(),
|
|
474
|
-
lastAttemptTime: v.number(),
|
|
475
|
-
}),
|
|
476
|
-
),
|
|
481
|
+
rateLimitState: v.optional(vApiKeyRateLimitState),
|
|
477
482
|
/** Expiration timestamp. Null/undefined = never expires. */
|
|
478
483
|
expiresAt: v.optional(v.number()),
|
|
479
484
|
lastUsedAt: v.optional(v.number()),
|
package/src/providers/sso.ts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* });
|
|
15
15
|
*
|
|
16
16
|
* // auth.sso is now available
|
|
17
|
-
* await auth.sso.oidc.configure(ctx, { enterpriseId, clientId, ... });
|
|
17
|
+
* await auth.sso.admin.oidc.configure(ctx, { enterpriseId, clientId, ... });
|
|
18
18
|
* ```
|
|
19
19
|
*
|
|
20
20
|
* Without `new SSO()` in the providers list, `auth.sso` is not
|