@robelest/convex-auth 0.0.2 → 0.0.3-preview.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/bin.cjs +1 -1
- package/dist/client/index.d.ts +33 -9
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +79 -13
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +48 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/index.d.ts +10 -4
- package/dist/component/index.d.ts.map +1 -1
- package/dist/component/index.js +8 -3
- package/dist/component/index.js.map +1 -1
- package/dist/component/public.d.ts +163 -3
- package/dist/component/public.d.ts.map +1 -1
- package/dist/component/public.js +124 -0
- package/dist/component/public.js.map +1 -1
- package/dist/component/schema.d.ts +81 -2
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +45 -0
- package/dist/component/schema.js.map +1 -1
- package/dist/providers/anonymous.d.ts +3 -0
- package/dist/providers/anonymous.d.ts.map +1 -1
- package/dist/providers/anonymous.js +3 -0
- package/dist/providers/anonymous.js.map +1 -1
- package/dist/providers/credentials.d.ts +3 -0
- package/dist/providers/credentials.d.ts.map +1 -1
- package/dist/providers/credentials.js +3 -0
- package/dist/providers/credentials.js.map +1 -1
- package/dist/providers/email.d.ts +3 -0
- package/dist/providers/email.d.ts.map +1 -1
- package/dist/providers/email.js +3 -0
- package/dist/providers/email.js.map +1 -1
- package/dist/providers/passkey.d.ts +7 -1
- package/dist/providers/passkey.d.ts.map +1 -1
- package/dist/providers/passkey.js +7 -1
- package/dist/providers/passkey.js.map +1 -1
- package/dist/providers/password.d.ts +3 -0
- package/dist/providers/password.d.ts.map +1 -1
- package/dist/providers/password.js +3 -0
- package/dist/providers/password.js.map +1 -1
- package/dist/providers/phone.d.ts +3 -0
- package/dist/providers/phone.d.ts.map +1 -1
- package/dist/providers/phone.js +3 -0
- package/dist/providers/phone.js.map +1 -1
- package/dist/providers/totp.d.ts +8 -0
- package/dist/providers/totp.d.ts.map +1 -1
- package/dist/providers/totp.js +8 -0
- package/dist/providers/totp.js.map +1 -1
- package/dist/server/convex-auth.d.ts +185 -25
- package/dist/server/convex-auth.d.ts.map +1 -1
- package/dist/server/convex-auth.js +317 -58
- package/dist/server/convex-auth.js.map +1 -1
- package/dist/server/email-templates.d.ts +18 -0
- package/dist/server/email-templates.d.ts.map +1 -0
- package/dist/server/email-templates.js +74 -0
- package/dist/server/email-templates.js.map +1 -0
- package/dist/server/errors.d.ts +146 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/errors.js +176 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/implementation/apiKey.d.ts +74 -0
- package/dist/server/implementation/apiKey.d.ts.map +1 -0
- package/dist/server/implementation/apiKey.js +139 -0
- package/dist/server/implementation/apiKey.js.map +1 -0
- package/dist/server/implementation/index.d.ts +151 -14
- package/dist/server/implementation/index.d.ts.map +1 -1
- package/dist/server/implementation/index.js +216 -24
- package/dist/server/implementation/index.js.map +1 -1
- package/dist/server/implementation/mutations/createAccountFromCredentials.d.ts.map +1 -1
- package/dist/server/implementation/mutations/createAccountFromCredentials.js +2 -1
- package/dist/server/implementation/mutations/createAccountFromCredentials.js.map +1 -1
- package/dist/server/implementation/mutations/createVerificationCode.d.ts +2 -2
- package/dist/server/implementation/mutations/index.d.ts +6 -6
- package/dist/server/implementation/mutations/modifyAccount.d.ts.map +1 -1
- package/dist/server/implementation/mutations/modifyAccount.js +2 -1
- package/dist/server/implementation/mutations/modifyAccount.js.map +1 -1
- package/dist/server/implementation/mutations/userOAuth.d.ts.map +1 -1
- package/dist/server/implementation/mutations/userOAuth.js +2 -1
- package/dist/server/implementation/mutations/userOAuth.js.map +1 -1
- package/dist/server/implementation/mutations/verifierSignature.d.ts.map +1 -1
- package/dist/server/implementation/mutations/verifierSignature.js +2 -1
- package/dist/server/implementation/mutations/verifierSignature.js.map +1 -1
- package/dist/server/implementation/passkey.d.ts.map +1 -1
- package/dist/server/implementation/passkey.js +28 -29
- package/dist/server/implementation/passkey.js.map +1 -1
- package/dist/server/implementation/provider.d.ts.map +1 -1
- package/dist/server/implementation/provider.js +5 -4
- package/dist/server/implementation/provider.js.map +1 -1
- package/dist/server/implementation/redirects.d.ts.map +1 -1
- package/dist/server/implementation/redirects.js +2 -1
- package/dist/server/implementation/redirects.js.map +1 -1
- package/dist/server/implementation/refreshTokens.d.ts.map +1 -1
- package/dist/server/implementation/refreshTokens.js +2 -1
- package/dist/server/implementation/refreshTokens.js.map +1 -1
- package/dist/server/implementation/signIn.d.ts.map +1 -1
- package/dist/server/implementation/signIn.js +8 -18
- package/dist/server/implementation/signIn.js.map +1 -1
- package/dist/server/implementation/totp.d.ts.map +1 -1
- package/dist/server/implementation/totp.js +16 -17
- package/dist/server/implementation/totp.js.map +1 -1
- package/dist/server/implementation/users.d.ts.map +1 -1
- package/dist/server/implementation/users.js +3 -2
- package/dist/server/implementation/users.js.map +1 -1
- package/dist/server/index.d.ts +157 -3
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +180 -17
- package/dist/server/index.js.map +1 -1
- package/dist/server/oauth/authorizationUrl.d.ts.map +1 -1
- package/dist/server/oauth/authorizationUrl.js +2 -1
- package/dist/server/oauth/authorizationUrl.js.map +1 -1
- package/dist/server/oauth/callback.d.ts.map +1 -1
- package/dist/server/oauth/callback.js +5 -4
- package/dist/server/oauth/callback.js.map +1 -1
- package/dist/server/oauth/checks.d.ts.map +1 -1
- package/dist/server/oauth/checks.js +2 -1
- package/dist/server/oauth/checks.js.map +1 -1
- package/dist/server/oauth/convexAuth.d.ts.map +1 -1
- package/dist/server/oauth/convexAuth.js +3 -2
- package/dist/server/oauth/convexAuth.js.map +1 -1
- package/dist/server/provider_utils.d.ts +2 -0
- package/dist/server/provider_utils.d.ts.map +1 -1
- package/dist/server/types.d.ts +240 -5
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/server/utils.js +2 -1
- package/dist/server/utils.js.map +1 -1
- package/dist/server/version.d.ts +2 -0
- package/dist/server/version.d.ts.map +1 -0
- package/dist/server/version.js +3 -0
- package/dist/server/version.js.map +1 -0
- package/package.json +7 -2
- package/src/cli/index.ts +1 -1
- package/src/cli/utils.ts +248 -0
- package/src/client/index.ts +105 -15
- package/src/component/_generated/component.ts +61 -0
- package/src/component/index.ts +11 -2
- package/src/component/public.ts +142 -0
- package/src/component/schema.ts +52 -0
- package/src/providers/anonymous.ts +3 -0
- package/src/providers/credentials.ts +3 -0
- package/src/providers/email.ts +3 -0
- package/src/providers/passkey.ts +8 -1
- package/src/providers/password.ts +3 -0
- package/src/providers/phone.ts +3 -0
- package/src/providers/totp.ts +9 -0
- package/src/server/convex-auth.ts +385 -73
- package/src/server/email-templates.ts +77 -0
- package/src/server/errors.ts +269 -0
- package/src/server/implementation/apiKey.ts +186 -0
- package/src/server/implementation/index.ts +288 -28
- package/src/server/implementation/mutations/createAccountFromCredentials.ts +2 -1
- package/src/server/implementation/mutations/modifyAccount.ts +2 -3
- package/src/server/implementation/mutations/userOAuth.ts +2 -1
- package/src/server/implementation/mutations/verifierSignature.ts +2 -1
- package/src/server/implementation/passkey.ts +33 -35
- package/src/server/implementation/provider.ts +5 -8
- package/src/server/implementation/redirects.ts +2 -3
- package/src/server/implementation/refreshTokens.ts +2 -1
- package/src/server/implementation/signIn.ts +9 -18
- package/src/server/implementation/totp.ts +18 -21
- package/src/server/implementation/users.ts +4 -7
- package/src/server/index.ts +240 -37
- package/src/server/oauth/authorizationUrl.ts +2 -1
- package/src/server/oauth/callback.ts +5 -4
- package/src/server/oauth/checks.ts +3 -1
- package/src/server/oauth/convexAuth.ts +6 -3
- package/src/server/types.ts +254 -5
- package/src/server/utils.ts +3 -1
- package/src/server/version.ts +2 -0
- package/dist/server/portal.d.ts +0 -116
- package/dist/server/portal.d.ts.map +0 -1
- package/dist/server/portal.js +0 -294
- package/dist/server/portal.js.map +0 -1
- package/src/server/portal.ts +0 -375
|
@@ -6,11 +6,24 @@
|
|
|
6
6
|
* ```ts
|
|
7
7
|
* // convex/auth.ts
|
|
8
8
|
* import { Auth, Portal } from "@robelest/convex-auth/component";
|
|
9
|
-
* import
|
|
9
|
+
* import google from "@auth/core/providers/google";
|
|
10
10
|
* import { components } from "./_generated/api";
|
|
11
11
|
*
|
|
12
12
|
* export const auth = new Auth(components.auth, {
|
|
13
|
-
* providers: [
|
|
13
|
+
* providers: [google],
|
|
14
|
+
* email: {
|
|
15
|
+
* from: "My App <noreply@example.com>",
|
|
16
|
+
* send: async (_ctx, { from, to, subject, html }) => {
|
|
17
|
+
* await fetch("https://api.resend.com/emails", {
|
|
18
|
+
* method: "POST",
|
|
19
|
+
* headers: {
|
|
20
|
+
* Authorization: `Bearer ${process.env.AUTH_RESEND_KEY}`,
|
|
21
|
+
* "Content-Type": "application/json",
|
|
22
|
+
* },
|
|
23
|
+
* body: JSON.stringify({ from, to, subject, html }),
|
|
24
|
+
* });
|
|
25
|
+
* },
|
|
26
|
+
* },
|
|
14
27
|
* });
|
|
15
28
|
* export const { signIn, signOut, store } = auth;
|
|
16
29
|
* export const { portalQuery, portalMutation, portalInternal } = Portal(auth);
|
|
@@ -18,12 +31,15 @@
|
|
|
18
31
|
*
|
|
19
32
|
* @module
|
|
20
33
|
*/
|
|
21
|
-
import { queryGeneric, mutationGeneric, internalMutationGeneric, } from "convex/server";
|
|
34
|
+
import { queryGeneric, mutationGeneric, internalMutationGeneric, httpActionGeneric, } from "convex/server";
|
|
22
35
|
import { v } from "convex/values";
|
|
23
36
|
import { Auth as AuthFactory } from "./implementation/index.js";
|
|
24
37
|
import { registerStaticRoutes } from "@convex-dev/self-hosting";
|
|
25
38
|
import { portalMagicLinkEmail } from "./portal-email.js";
|
|
26
|
-
import
|
|
39
|
+
import { defaultMagicLinkEmail } from "./email-templates.js";
|
|
40
|
+
import emailProvider from "../providers/email.js";
|
|
41
|
+
import { AUTH_VERSION } from "./version.js";
|
|
42
|
+
import { throwAuthError } from "./errors.js";
|
|
27
43
|
// ============================================================================
|
|
28
44
|
// Helpers
|
|
29
45
|
// ============================================================================
|
|
@@ -39,7 +55,7 @@ async function requirePortalAdmin(ctx, authComponent, userId) {
|
|
|
39
55
|
});
|
|
40
56
|
const isAdmin = invites.some((invite) => invite.role === "portalAdmin" && invite.acceptedByUserId === userId);
|
|
41
57
|
if (!isAdmin) {
|
|
42
|
-
|
|
58
|
+
throwAuthError("PORTAL_NOT_AUTHORIZED");
|
|
43
59
|
}
|
|
44
60
|
}
|
|
45
61
|
// ============================================================================
|
|
@@ -51,7 +67,11 @@ async function requirePortalAdmin(ctx, authComponent, userId) {
|
|
|
51
67
|
*
|
|
52
68
|
* ```ts
|
|
53
69
|
* export const auth = new Auth(components.auth, {
|
|
54
|
-
* providers: [
|
|
70
|
+
* providers: [google, password],
|
|
71
|
+
* email: {
|
|
72
|
+
* from: "My App <noreply@example.com>",
|
|
73
|
+
* send: (ctx, params) => resend.sendEmail(ctx, params),
|
|
74
|
+
* },
|
|
55
75
|
* });
|
|
56
76
|
* export const { signIn, signOut, store } = auth;
|
|
57
77
|
* export const { portalQuery, portalMutation, portalInternal } = Portal(auth);
|
|
@@ -71,59 +91,90 @@ export class Auth {
|
|
|
71
91
|
/** @internal */
|
|
72
92
|
portalUrl;
|
|
73
93
|
// ---- Proxied auth helper sub-objects ----
|
|
74
|
-
/** User helpers: `.current(ctx)`, `.require(ctx)`, `.get(ctx, userId)`, `.viewer(ctx)` */
|
|
94
|
+
/** User helpers: `.current(ctx)`, `.require(ctx)`, `.get(ctx, userId)`, `.patch(ctx, userId, data)`, `.viewer(ctx)`, `.group.list(ctx, ...)`, `.group.get(ctx, ...)` */
|
|
75
95
|
get user() { return this._auth.user; }
|
|
76
|
-
/** Session helpers */
|
|
96
|
+
/** Session helpers: `.current(ctx)`, `.invalidate(ctx, { userId, except? })` */
|
|
77
97
|
get session() { return this._auth.session; }
|
|
78
|
-
/** Provider helpers */
|
|
98
|
+
/** Provider helpers: `.signIn(ctx, provider, args)` */
|
|
79
99
|
get provider() { return this._auth.provider; }
|
|
80
|
-
/** Account helpers */
|
|
100
|
+
/** Account helpers: `.create(ctx, args)`, `.get(ctx, args)`, `.updateCredentials(ctx, args)` */
|
|
81
101
|
get account() { return this._auth.account; }
|
|
82
|
-
/** Group helpers */
|
|
102
|
+
/** Group helpers: `.create(ctx, ...)`, `.get(ctx, id)`, `.list(ctx, ...)`, `.update(ctx, ...)`, `.delete(ctx, id)`, `.member.*` */
|
|
83
103
|
get group() { return this._auth.group; }
|
|
84
|
-
/** Invite helpers */
|
|
104
|
+
/** Invite helpers: `.create(ctx, ...)`, `.get(ctx, id)`, `.getByTokenHash(ctx, hash)`, `.list(ctx, ...)`, `.accept(ctx, ...)`, `.revoke(ctx, id)` */
|
|
85
105
|
get invite() { return this._auth.invite; }
|
|
86
|
-
/** Passkey helpers */
|
|
106
|
+
/** Passkey helpers: `.list(ctx, { userId })`, `.rename(ctx, id, name)`, `.remove(ctx, id)` */
|
|
87
107
|
get passkey() { return this._auth.passkey; }
|
|
88
|
-
/** TOTP helpers */
|
|
108
|
+
/** TOTP helpers: `.list(ctx, { userId })`, `.remove(ctx, id)` */
|
|
89
109
|
get totp() { return this._auth.totp; }
|
|
110
|
+
/** API key helpers: `.create(ctx, ...)`, `.verify(ctx, rawKey)`, `.list(ctx, ...)`, `.get(ctx, id)`, `.update(ctx, ...)`, `.revoke(ctx, id)`, `.remove(ctx, id)` */
|
|
111
|
+
get key() { return this._auth.key; }
|
|
112
|
+
/**
|
|
113
|
+
* @param component - The auth component reference from `components.auth`.
|
|
114
|
+
* @param config - Auth configuration (providers, email transport, session, JWT, callbacks).
|
|
115
|
+
*/
|
|
90
116
|
constructor(component, config) {
|
|
91
117
|
this.component = component;
|
|
92
118
|
// Derive portal URL from CONVEX_SITE_URL
|
|
93
119
|
this.portalUrl = process.env.CONVEX_SITE_URL
|
|
94
120
|
? `${process.env.CONVEX_SITE_URL.replace(/\/$/, "")}/auth`
|
|
95
121
|
: "/auth";
|
|
96
|
-
|
|
122
|
+
const emailTransport = config.email;
|
|
97
123
|
const providers = [...config.providers];
|
|
98
|
-
|
|
124
|
+
// Auto-register user-facing magic link provider when email is configured.
|
|
125
|
+
// Skipped if the user already registered their own provider with id "email".
|
|
126
|
+
const hasUserEmailProvider = providers.some((p) => typeof p === "object" && "id" in p && p.id === "email");
|
|
127
|
+
if (emailTransport && !hasUserEmailProvider) {
|
|
128
|
+
providers.push(emailProvider({
|
|
129
|
+
id: "email",
|
|
130
|
+
maxAge: 60 * 60 * 24, // 24 hours
|
|
131
|
+
authorize: undefined, // Magic link — no OTP email check needed
|
|
132
|
+
async sendVerificationRequest({ identifier, url }, ctx) {
|
|
133
|
+
if (!ctx) {
|
|
134
|
+
throwAuthError("MISSING_ACTION_CONTEXT");
|
|
135
|
+
}
|
|
136
|
+
const { host } = new URL(url);
|
|
137
|
+
await emailTransport.send(ctx, {
|
|
138
|
+
from: emailTransport.from,
|
|
139
|
+
to: identifier,
|
|
140
|
+
subject: `Sign in to ${host}`,
|
|
141
|
+
html: defaultMagicLinkEmail(url, host),
|
|
142
|
+
});
|
|
143
|
+
},
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
// Auto-register portal admin magic link provider.
|
|
147
|
+
// Uses its own styled dark-theme email template.
|
|
148
|
+
providers.push(emailProvider({
|
|
99
149
|
id: "portal",
|
|
100
150
|
maxAge: 60 * 60 * 24, // 24 hours
|
|
101
|
-
authorize: undefined, // Magic link — no email check needed
|
|
102
|
-
async sendVerificationRequest({ identifier, url, expires }) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const siteUrl = process.env.CONVEX_SITE_URL;
|
|
106
|
-
if (!siteUrl) {
|
|
107
|
-
throw new Error("CONVEX_SITE_URL is required to send portal magic link email");
|
|
151
|
+
authorize: undefined, // Magic link — no OTP email check needed
|
|
152
|
+
async sendVerificationRequest({ identifier, url, expires }, ctx) {
|
|
153
|
+
if (!emailTransport) {
|
|
154
|
+
throwAuthError("EMAIL_CONFIG_REQUIRED");
|
|
108
155
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
"x-auth-email-dispatch-secret": process.env.AUTH_EMAIL_DISPATCH_SECRET,
|
|
116
|
-
}
|
|
117
|
-
: {}),
|
|
118
|
-
},
|
|
119
|
-
body: JSON.stringify({
|
|
120
|
-
to: identifier,
|
|
121
|
-
subject: "Sign in to Convex Auth Portal",
|
|
122
|
-
html,
|
|
123
|
-
}),
|
|
156
|
+
if (!ctx) {
|
|
157
|
+
throwAuthError("MISSING_ACTION_CONTEXT");
|
|
158
|
+
}
|
|
159
|
+
// Check authorization BEFORE sending — only portal-authorized emails
|
|
160
|
+
const invites = await ctx.runQuery(component.public.inviteList, {
|
|
161
|
+
status: "accepted",
|
|
124
162
|
});
|
|
125
|
-
|
|
126
|
-
|
|
163
|
+
const hasAccess = invites.some((invite) => invite.role === "portalAdmin" && invite.email === identifier);
|
|
164
|
+
if (!hasAccess) {
|
|
165
|
+
throwAuthError("PORTAL_NOT_AUTHORIZED");
|
|
166
|
+
}
|
|
167
|
+
const hours = Math.max(1, Math.floor((+expires - Date.now()) / (60 * 60 * 1000)));
|
|
168
|
+
try {
|
|
169
|
+
await emailTransport.send(ctx, {
|
|
170
|
+
from: emailTransport.from,
|
|
171
|
+
to: identifier,
|
|
172
|
+
subject: "Sign in to Auth Portal",
|
|
173
|
+
html: portalMagicLinkEmail(url, hours),
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
catch (e) {
|
|
177
|
+
throwAuthError("EMAIL_SEND_FAILED", "Failed to send portal sign-in email.", { detail: e instanceof Error ? e.message : String(e) });
|
|
127
178
|
}
|
|
128
179
|
},
|
|
129
180
|
}));
|
|
@@ -151,12 +202,38 @@ export class Auth {
|
|
|
151
202
|
* auth.addHttpRoutes(http);
|
|
152
203
|
* export default http;
|
|
153
204
|
* ```
|
|
205
|
+
*
|
|
206
|
+
* @param http - The Convex HTTP router to register routes on.
|
|
207
|
+
* @param opts.pathPrefix - URL prefix for portal static files. Defaults to `"/auth"`.
|
|
208
|
+
* @param opts.spaFallback - Serve `index.html` for unmatched sub-paths. Defaults to `true`.
|
|
154
209
|
*/
|
|
155
210
|
addHttpRoutes(http, opts) {
|
|
156
211
|
// Core auth routes (OAuth, JWKS, etc.)
|
|
157
212
|
this._auth.addHttpRoutes(http);
|
|
158
|
-
// Portal static file serving
|
|
159
213
|
const prefix = opts?.pathPrefix ?? "/auth";
|
|
214
|
+
// Portal configuration endpoint — serves Convex URLs + version info.
|
|
215
|
+
// The portal SPA fetches this at startup to discover its Convex backend,
|
|
216
|
+
// which is critical for custom domain deployments where the hostname
|
|
217
|
+
// alone doesn't reveal the Convex cloud URL.
|
|
218
|
+
// Registered as an exact path match before the static file prefix catch-all.
|
|
219
|
+
http.route({
|
|
220
|
+
path: `${prefix}/.well-known/portal-config`,
|
|
221
|
+
method: "GET",
|
|
222
|
+
handler: httpActionGeneric(async () => {
|
|
223
|
+
return new Response(JSON.stringify({
|
|
224
|
+
convexUrl: process.env.CONVEX_CLOUD_URL,
|
|
225
|
+
siteUrl: process.env.CONVEX_SITE_URL,
|
|
226
|
+
version: AUTH_VERSION,
|
|
227
|
+
}), {
|
|
228
|
+
status: 200,
|
|
229
|
+
headers: {
|
|
230
|
+
"Content-Type": "application/json",
|
|
231
|
+
"Cache-Control": "public, max-age=60, stale-while-revalidate=60",
|
|
232
|
+
"Access-Control-Allow-Origin": "*",
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
}),
|
|
236
|
+
});
|
|
160
237
|
// Create a shim that maps the self-hosting ComponentApi shape
|
|
161
238
|
// to the auth component's portalBridge functions
|
|
162
239
|
const selfHostingShim = {
|
|
@@ -181,15 +258,17 @@ export class Auth {
|
|
|
181
258
|
// Portal exports (standalone function)
|
|
182
259
|
// ============================================================================
|
|
183
260
|
/**
|
|
184
|
-
* Create portal function definitions from
|
|
261
|
+
* Create portal function definitions from an `Auth` instance.
|
|
185
262
|
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
* cannot trace through `instance.method()`.
|
|
263
|
+
* Standalone function (not a class method) because Convex's bundler
|
|
264
|
+
* can trace `export const { x } = fn(instance)` but not `instance.method()`.
|
|
189
265
|
*
|
|
190
266
|
* ```ts
|
|
191
267
|
* export const { portalQuery, portalMutation, portalInternal } = Portal(auth);
|
|
192
268
|
* ```
|
|
269
|
+
*
|
|
270
|
+
* @param auth - The `Auth` class instance from your `convex/auth.ts`.
|
|
271
|
+
* @returns `{ portalQuery, portalMutation, portalInternal }` — export all three.
|
|
193
272
|
*/
|
|
194
273
|
export function Portal(auth) {
|
|
195
274
|
const authComponent = auth.component;
|
|
@@ -236,7 +315,7 @@ export function Portal(auth) {
|
|
|
236
315
|
// userId param repurposed as tokenHash for this action
|
|
237
316
|
const tokenHash = userId;
|
|
238
317
|
if (!tokenHash)
|
|
239
|
-
|
|
318
|
+
throwAuthError("INVITE_TOKEN_REQUIRED");
|
|
240
319
|
const invite = await ctx.runQuery(authComponent.public.inviteGetByTokenHash, { tokenHash });
|
|
241
320
|
if (!invite || invite.status !== "pending") {
|
|
242
321
|
return null;
|
|
@@ -248,8 +327,19 @@ export function Portal(auth) {
|
|
|
248
327
|
}
|
|
249
328
|
case "getCurrentDeployment":
|
|
250
329
|
return await ctx.runQuery(authComponent.portalBridge.getCurrentDeployment);
|
|
330
|
+
// ---- API Keys (portal admin) ----
|
|
331
|
+
case "listKeys":
|
|
332
|
+
return await ctx.runQuery(authComponent.public.keyList);
|
|
333
|
+
case "getUserKeys":
|
|
334
|
+
return await ctx.runQuery(authComponent.public.keyListByUserId, {
|
|
335
|
+
userId: userId,
|
|
336
|
+
});
|
|
337
|
+
case "getKey":
|
|
338
|
+
return await ctx.runQuery(authComponent.public.keyGetById, {
|
|
339
|
+
keyId: userId, // userId param repurposed as keyId
|
|
340
|
+
});
|
|
251
341
|
default:
|
|
252
|
-
|
|
342
|
+
throwAuthError("PORTAL_UNKNOWN_ACTION", `Unknown portal query action: ${action}`);
|
|
253
343
|
}
|
|
254
344
|
},
|
|
255
345
|
});
|
|
@@ -258,21 +348,34 @@ export function Portal(auth) {
|
|
|
258
348
|
action: v.string(),
|
|
259
349
|
sessionId: v.optional(v.string()),
|
|
260
350
|
tokenHash: v.optional(v.string()),
|
|
351
|
+
// API key fields
|
|
352
|
+
keyId: v.optional(v.string()),
|
|
353
|
+
keyUserId: v.optional(v.string()),
|
|
354
|
+
keyName: v.optional(v.string()),
|
|
355
|
+
keyScopes: v.optional(v.array(v.object({
|
|
356
|
+
resource: v.string(),
|
|
357
|
+
actions: v.array(v.string()),
|
|
358
|
+
}))),
|
|
359
|
+
keyRateLimit: v.optional(v.object({
|
|
360
|
+
maxRequests: v.number(),
|
|
361
|
+
windowMs: v.number(),
|
|
362
|
+
})),
|
|
363
|
+
keyExpiresAt: v.optional(v.number()),
|
|
261
364
|
},
|
|
262
|
-
handler: async (ctx,
|
|
365
|
+
handler: async (ctx, args) => {
|
|
263
366
|
const currentUserId = await authHelper.user.require(ctx);
|
|
264
|
-
switch (action) {
|
|
367
|
+
switch (args.action) {
|
|
265
368
|
case "acceptInvite": {
|
|
266
|
-
if (!tokenHash)
|
|
267
|
-
|
|
268
|
-
const invite = await ctx.runQuery(authComponent.public.inviteGetByTokenHash, { tokenHash });
|
|
369
|
+
if (!args.tokenHash)
|
|
370
|
+
throwAuthError("INVITE_TOKEN_REQUIRED");
|
|
371
|
+
const invite = await ctx.runQuery(authComponent.public.inviteGetByTokenHash, { tokenHash: args.tokenHash });
|
|
269
372
|
if (!invite)
|
|
270
|
-
|
|
373
|
+
throwAuthError("INVALID_INVITE");
|
|
271
374
|
if (invite.status !== "pending") {
|
|
272
|
-
|
|
375
|
+
throwAuthError("INVITE_ALREADY_USED", `Invite already ${invite.status}`);
|
|
273
376
|
}
|
|
274
377
|
if (invite.expiresTime && invite.expiresTime < Date.now()) {
|
|
275
|
-
|
|
378
|
+
throwAuthError("INVITE_EXPIRED");
|
|
276
379
|
}
|
|
277
380
|
await ctx.runMutation(authComponent.public.inviteAccept, {
|
|
278
381
|
inviteId: invite._id,
|
|
@@ -283,12 +386,47 @@ export function Portal(auth) {
|
|
|
283
386
|
case "revokeSession": {
|
|
284
387
|
await requirePortalAdmin(ctx, authComponent, currentUserId);
|
|
285
388
|
await ctx.runMutation(authComponent.public.sessionDelete, {
|
|
286
|
-
sessionId: sessionId,
|
|
389
|
+
sessionId: args.sessionId,
|
|
287
390
|
});
|
|
288
391
|
return;
|
|
289
392
|
}
|
|
393
|
+
// ---- API Keys (portal admin) ----
|
|
394
|
+
case "createKey": {
|
|
395
|
+
await requirePortalAdmin(ctx, authComponent, currentUserId);
|
|
396
|
+
const result = await authHelper.key.create(ctx, {
|
|
397
|
+
userId: args.keyUserId,
|
|
398
|
+
name: args.keyName,
|
|
399
|
+
scopes: args.keyScopes ?? [],
|
|
400
|
+
rateLimit: args.keyRateLimit,
|
|
401
|
+
expiresAt: args.keyExpiresAt,
|
|
402
|
+
});
|
|
403
|
+
// Return the raw key — portal will show it once
|
|
404
|
+
return result;
|
|
405
|
+
}
|
|
406
|
+
case "revokeKey": {
|
|
407
|
+
await requirePortalAdmin(ctx, authComponent, currentUserId);
|
|
408
|
+
await authHelper.key.revoke(ctx, args.keyId);
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
case "deleteKey": {
|
|
412
|
+
await requirePortalAdmin(ctx, authComponent, currentUserId);
|
|
413
|
+
await authHelper.key.remove(ctx, args.keyId);
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
case "updateKey": {
|
|
417
|
+
await requirePortalAdmin(ctx, authComponent, currentUserId);
|
|
418
|
+
const data = {};
|
|
419
|
+
if (args.keyName)
|
|
420
|
+
data.name = args.keyName;
|
|
421
|
+
if (args.keyScopes)
|
|
422
|
+
data.scopes = args.keyScopes;
|
|
423
|
+
if (args.keyRateLimit)
|
|
424
|
+
data.rateLimit = args.keyRateLimit;
|
|
425
|
+
await authHelper.key.update(ctx, args.keyId, data);
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
290
428
|
default:
|
|
291
|
-
|
|
429
|
+
throwAuthError("PORTAL_UNKNOWN_ACTION", `Unknown portal mutation action: ${args.action}`);
|
|
292
430
|
}
|
|
293
431
|
},
|
|
294
432
|
});
|
|
@@ -356,10 +494,131 @@ export function Portal(auth) {
|
|
|
356
494
|
});
|
|
357
495
|
}
|
|
358
496
|
default:
|
|
359
|
-
|
|
497
|
+
throwAuthError("PORTAL_UNKNOWN_ACTION", `Unknown portalInternal action: ${args.action}`);
|
|
360
498
|
}
|
|
361
499
|
},
|
|
362
500
|
});
|
|
363
501
|
return { portalQuery, portalMutation, portalInternal };
|
|
364
502
|
}
|
|
503
|
+
/**
|
|
504
|
+
* Create a `convex-helpers`–compatible customization object that
|
|
505
|
+
* enriches `ctx.auth` with the authenticated user's data.
|
|
506
|
+
*
|
|
507
|
+
* Standalone function (not a class method) because Convex's bundler
|
|
508
|
+
* can trace `export const x = fn(instance)` but not `instance.method()`.
|
|
509
|
+
*
|
|
510
|
+
* ### Basic usage (with `convex-helpers`)
|
|
511
|
+
*
|
|
512
|
+
* ```ts
|
|
513
|
+
* // convex/functions.ts
|
|
514
|
+
* import { customQuery, customMutation } from "convex-helpers/server/customFunctions";
|
|
515
|
+
* import { query as rawQuery, mutation as rawMutation } from "./_generated/server";
|
|
516
|
+
* import { AuthCtx } from "\@robelest/convex-auth/component";
|
|
517
|
+
* import { auth } from "./auth";
|
|
518
|
+
*
|
|
519
|
+
* const authCtx = AuthCtx(auth);
|
|
520
|
+
*
|
|
521
|
+
* export const query = customQuery(rawQuery, authCtx);
|
|
522
|
+
* export const mutation = customMutation(rawMutation, authCtx);
|
|
523
|
+
* ```
|
|
524
|
+
*
|
|
525
|
+
* Then in any function file:
|
|
526
|
+
*
|
|
527
|
+
* ```ts
|
|
528
|
+
* // convex/messages.ts
|
|
529
|
+
* import { query, mutation } from "./functions";
|
|
530
|
+
*
|
|
531
|
+
* export const list = query({
|
|
532
|
+
* args: {},
|
|
533
|
+
* handler: async (ctx) => {
|
|
534
|
+
* // ctx.auth.userId and ctx.auth.user are already resolved
|
|
535
|
+
* return ctx.db.query("messages").collect();
|
|
536
|
+
* },
|
|
537
|
+
* });
|
|
538
|
+
* ```
|
|
539
|
+
*
|
|
540
|
+
* ### Optional auth (public routes)
|
|
541
|
+
*
|
|
542
|
+
* ```ts
|
|
543
|
+
* export const publicQuery = customQuery(rawQuery, AuthCtx(auth, { optional: true }));
|
|
544
|
+
* // ctx.auth.userId is null when unauthenticated
|
|
545
|
+
* ```
|
|
546
|
+
*
|
|
547
|
+
* ### Multi-tenant with group resolution
|
|
548
|
+
*
|
|
549
|
+
* ```ts
|
|
550
|
+
* const authCtx = AuthCtx(auth, {
|
|
551
|
+
* resolve: async (ctx, user) => {
|
|
552
|
+
* const groupId = user?.extend?.lastActiveGroup;
|
|
553
|
+
* const membership = await auth.user.group.get(ctx, {
|
|
554
|
+
* userId: user._id,
|
|
555
|
+
* groupId,
|
|
556
|
+
* });
|
|
557
|
+
* return { groupId, role: membership?.role ?? "member" };
|
|
558
|
+
* },
|
|
559
|
+
* });
|
|
560
|
+
* // ctx.auth.groupId and ctx.auth.role available in handlers
|
|
561
|
+
* ```
|
|
562
|
+
*
|
|
563
|
+
* @param auth - The `Auth` class instance from your `convex/auth.ts`.
|
|
564
|
+
* @param config - Optional configuration for optional auth and group resolution.
|
|
565
|
+
* @returns A `{ args, input }` customization object compatible with
|
|
566
|
+
* `customQuery` / `customMutation` from `convex-helpers`.
|
|
567
|
+
*/
|
|
568
|
+
export function AuthCtx(auth, config) {
|
|
569
|
+
const authHelper = auth._auth;
|
|
570
|
+
return {
|
|
571
|
+
args: {},
|
|
572
|
+
input: async (ctx, _args, _extra) => {
|
|
573
|
+
const nativeAuth = ctx.auth;
|
|
574
|
+
if (config?.optional) {
|
|
575
|
+
const userId = await authHelper.user.current(ctx);
|
|
576
|
+
if (!userId) {
|
|
577
|
+
return {
|
|
578
|
+
ctx: {
|
|
579
|
+
auth: {
|
|
580
|
+
getUserIdentity: nativeAuth.getUserIdentity.bind(nativeAuth),
|
|
581
|
+
userId: null,
|
|
582
|
+
user: null,
|
|
583
|
+
},
|
|
584
|
+
},
|
|
585
|
+
args: {},
|
|
586
|
+
};
|
|
587
|
+
}
|
|
588
|
+
const user = await authHelper.user.get(ctx, userId);
|
|
589
|
+
const extra = config.resolve
|
|
590
|
+
? await config.resolve(ctx, user)
|
|
591
|
+
: {};
|
|
592
|
+
return {
|
|
593
|
+
ctx: {
|
|
594
|
+
auth: {
|
|
595
|
+
getUserIdentity: nativeAuth.getUserIdentity.bind(nativeAuth),
|
|
596
|
+
userId,
|
|
597
|
+
user,
|
|
598
|
+
...extra,
|
|
599
|
+
},
|
|
600
|
+
},
|
|
601
|
+
args: {},
|
|
602
|
+
};
|
|
603
|
+
}
|
|
604
|
+
// Required mode (default): throws NOT_SIGNED_IN
|
|
605
|
+
const userId = await authHelper.user.require(ctx);
|
|
606
|
+
const user = await authHelper.user.get(ctx, userId);
|
|
607
|
+
const extra = config?.resolve
|
|
608
|
+
? await config.resolve(ctx, user)
|
|
609
|
+
: {};
|
|
610
|
+
return {
|
|
611
|
+
ctx: {
|
|
612
|
+
auth: {
|
|
613
|
+
getUserIdentity: nativeAuth.getUserIdentity.bind(nativeAuth),
|
|
614
|
+
userId,
|
|
615
|
+
user,
|
|
616
|
+
...extra,
|
|
617
|
+
},
|
|
618
|
+
},
|
|
619
|
+
args: {},
|
|
620
|
+
};
|
|
621
|
+
},
|
|
622
|
+
};
|
|
623
|
+
}
|
|
365
624
|
//# sourceMappingURL=convex-auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convex-auth.js","sourceRoot":"","sources":["../../src/server/convex-auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"convex-auth.js","sourceRoot":"","sources":["../../src/server/convex-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default email templates generated by the Auth library.
|
|
3
|
+
*
|
|
4
|
+
* These are used when the library sends emails on behalf of the developer
|
|
5
|
+
* (magic links, portal admin sign-in). The developer provides the transport
|
|
6
|
+
* via `email.send`; the library provides the content.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Default magic link email template.
|
|
12
|
+
*
|
|
13
|
+
* Clean, minimal design that works across email clients.
|
|
14
|
+
* Used by the auto-registered `email` provider when `email` is
|
|
15
|
+
* configured in the Auth constructor.
|
|
16
|
+
*/
|
|
17
|
+
export declare function defaultMagicLinkEmail(url: string, host: string): string;
|
|
18
|
+
//# sourceMappingURL=email-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-templates.d.ts","sourceRoot":"","sources":["../../src/server/email-templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA2DvE"}
|