tinbase 0.9.0 → 0.10.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/README.md +10 -9
- package/dist/admin/api.d.ts +62 -1
- package/dist/admin/api.js +209 -10
- package/dist/admin/api.js.map +1 -1
- package/dist/admin/ui.d.ts +1 -1
- package/dist/admin/ui.js +1548 -16
- package/dist/admin/ui.js.map +1 -1
- package/dist/auth/handler.d.ts +52 -5
- package/dist/auth/handler.js +147 -36
- package/dist/auth/handler.js.map +1 -1
- package/dist/auth/inbox.d.ts +4 -2
- package/dist/auth/inbox.js +1 -0
- package/dist/auth/inbox.js.map +1 -1
- package/dist/auth/oauth.d.ts +30 -4
- package/dist/auth/oauth.js +22 -6
- package/dist/auth/oauth.js.map +1 -1
- package/dist/auth/password.d.ts +5 -0
- package/dist/auth/password.js +7 -0
- package/dist/auth/password.js.map +1 -1
- package/dist/auth/qr.d.ts +1 -1
- package/dist/auth/qr.js +1 -1
- package/dist/auth/rate-limit.d.ts +33 -0
- package/dist/auth/rate-limit.js +63 -0
- package/dist/auth/rate-limit.js.map +1 -0
- package/dist/auth/redirect.d.ts +20 -0
- package/dist/auth/redirect.js +79 -0
- package/dist/auth/redirect.js.map +1 -0
- package/dist/auth/settings.d.ts +55 -0
- package/dist/auth/settings.js +116 -0
- package/dist/auth/settings.js.map +1 -0
- package/dist/auth/totp.js +1 -1
- package/dist/cli.js +66 -30
- package/dist/cli.js.map +1 -1
- package/dist/cron/service.d.ts +15 -2
- package/dist/cron/service.js +19 -2
- package/dist/cron/service.js.map +1 -1
- package/dist/db/bootstrap.d.ts +13 -6
- package/dist/db/bootstrap.js +26 -5
- package/dist/db/bootstrap.js.map +1 -1
- package/dist/db/database.d.ts +61 -3
- package/dist/db/database.js +72 -9
- package/dist/db/database.js.map +1 -1
- package/dist/db/emulated.d.ts +39 -2
- package/dist/db/emulated.js +39 -23
- package/dist/db/emulated.js.map +1 -1
- package/dist/db/engine.d.ts +19 -5
- package/dist/db/engine.js +4 -2
- package/dist/db/engine.js.map +1 -1
- package/dist/db/inspect.d.ts +6 -1
- package/dist/db/inspect.js +2 -1
- package/dist/db/inspect.js.map +1 -1
- package/dist/db/pglite-engine.d.ts +7 -1
- package/dist/db/pglite-engine.js +7 -1
- package/dist/db/pglite-engine.js.map +1 -1
- package/dist/db/pgmem-engine.d.ts +9 -3
- package/dist/db/pgmem-engine.js +13 -7
- package/dist/db/pgmem-engine.js.map +1 -1
- package/dist/db/schema-diff.d.ts +9 -1
- package/dist/db/schema-diff.js +19 -5
- package/dist/db/schema-diff.js.map +1 -1
- package/dist/db/sql-compat.d.ts +2 -2
- package/dist/db/sql-compat.js +2 -2
- package/dist/functions/deno-shim.d.ts +6 -17
- package/dist/functions/deno-shim.js +42 -10
- package/dist/functions/deno-shim.js.map +1 -1
- package/dist/functions/handler.d.ts +9 -4
- package/dist/functions/handler.js +9 -1
- package/dist/functions/handler.js.map +1 -1
- package/dist/gen-types.d.ts +6 -1
- package/dist/gen-types.js +53 -41
- package/dist/gen-types.js.map +1 -1
- package/dist/index.d.ts +33 -3
- package/dist/index.js +170 -30
- package/dist/index.js.map +1 -1
- package/dist/jwt.d.ts +4 -1
- package/dist/jwt.js +4 -2
- package/dist/jwt.js.map +1 -1
- package/dist/log-buffer.d.ts +7 -1
- package/dist/log-buffer.js +3 -0
- package/dist/log-buffer.js.map +1 -1
- package/dist/net/service.d.ts +35 -6
- package/dist/net/service.js +72 -17
- package/dist/net/service.js.map +1 -1
- package/dist/node/bun-server.d.ts +2 -1
- package/dist/node/bun-server.js +11 -1
- package/dist/node/bun-server.js.map +1 -1
- package/dist/node/bundle-function.d.ts +1 -1
- package/dist/node/bundle-function.js +1 -1
- package/dist/node/config-toml.d.ts +31 -0
- package/dist/node/config-toml.js +186 -0
- package/dist/node/config-toml.js.map +1 -0
- package/dist/node/db-diff.d.ts +13 -1
- package/dist/node/db-diff.js +3 -1
- package/dist/node/db-diff.js.map +1 -1
- package/dist/node/fs-driver.d.ts +16 -1
- package/dist/node/fs-driver.js +20 -1
- package/dist/node/fs-driver.js.map +1 -1
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/load-config.d.ts +80 -0
- package/dist/node/load-config.js +230 -0
- package/dist/node/load-config.js.map +1 -0
- package/dist/node/load-functions.d.ts +17 -2
- package/dist/node/load-functions.js +17 -4
- package/dist/node/load-functions.js.map +1 -1
- package/dist/node/native/database-url.d.ts +25 -0
- package/dist/node/native/database-url.js +38 -0
- package/dist/node/native/database-url.js.map +1 -0
- package/dist/node/native/engine.d.ts +7 -0
- package/dist/node/native/engine.js +63 -85
- package/dist/node/native/engine.js.map +1 -1
- package/dist/node/native/wire-engine.d.ts +16 -0
- package/dist/node/native/wire-engine.js +83 -0
- package/dist/node/native/wire-engine.js.map +1 -0
- package/dist/node/native/wire.d.ts +25 -8
- package/dist/node/native/wire.js +130 -15
- package/dist/node/native/wire.js.map +1 -1
- package/dist/node/project.d.ts +15 -1
- package/dist/node/project.js +19 -7
- package/dist/node/project.js.map +1 -1
- package/dist/node/server-shared.d.ts +4 -1
- package/dist/node/server.d.ts +11 -0
- package/dist/node/server.js +11 -0
- package/dist/node/server.js.map +1 -1
- package/dist/node/ws.d.ts +26 -1
- package/dist/node/ws.js +26 -3
- package/dist/node/ws.js.map +1 -1
- package/dist/realtime/engine.d.ts +6 -0
- package/dist/realtime/engine.js +45 -34
- package/dist/realtime/engine.js.map +1 -1
- package/dist/rest/build.d.ts +44 -1
- package/dist/rest/build.js +96 -10
- package/dist/rest/build.js.map +1 -1
- package/dist/rest/errors.d.ts +8 -0
- package/dist/rest/errors.js +12 -1
- package/dist/rest/errors.js.map +1 -1
- package/dist/rest/handler.d.ts +17 -1
- package/dist/rest/handler.js +125 -10
- package/dist/rest/handler.js.map +1 -1
- package/dist/rest/parse.d.ts +26 -1
- package/dist/rest/parse.js +29 -2
- package/dist/rest/parse.js.map +1 -1
- package/dist/retention/service.d.ts +3 -0
- package/dist/retention/service.js +3 -1
- package/dist/retention/service.js.map +1 -1
- package/dist/security.d.ts +22 -0
- package/dist/security.js +47 -0
- package/dist/security.js.map +1 -0
- package/dist/storage/driver.d.ts +8 -1
- package/dist/storage/driver.js +4 -1
- package/dist/storage/driver.js.map +1 -1
- package/dist/storage/handler.d.ts +20 -1
- package/dist/storage/handler.js +272 -16
- package/dist/storage/handler.js.map +1 -1
- package/dist/types.d.ts +84 -1
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -1
- package/dist/webhooks/service.d.ts +25 -2
- package/dist/webhooks/service.js +21 -3
- package/dist/webhooks/service.js.map +1 -1
- package/package.json +5 -3
package/dist/auth/handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/auth/handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/auth/handler.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/inbox.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Local email inbox
|
|
2
|
+
* Local email inbox - the tinbase equivalent of Supabase local's Inbucket /
|
|
3
3
|
* Mailpit. When no custom mailer is configured, outgoing auth emails (magic
|
|
4
4
|
* links, OTP codes, password recovery, email-change confirmations) are captured
|
|
5
5
|
* in memory and viewable at /inbox, so you can test those flows locally without
|
|
6
6
|
* a real SMTP server.
|
|
7
7
|
*
|
|
8
8
|
* Dev-only by nature: it exposes email contents (including sign-in links) with
|
|
9
|
-
* no auth, exactly like Inbucket. Not for production
|
|
9
|
+
* no auth, exactly like Inbucket. Not for production - provide your own
|
|
10
10
|
* `mailer` there and no inbox is mounted.
|
|
11
11
|
*/
|
|
12
12
|
import type { MailMessage, Mailer } from '../types.js';
|
|
13
|
+
/** A captured message plus the link/code extracted from its body for the inbox UI. */
|
|
13
14
|
export interface InboxEntry extends MailMessage {
|
|
14
15
|
id: string;
|
|
15
16
|
created_at: string;
|
|
@@ -18,6 +19,7 @@ export interface InboxEntry extends MailMessage {
|
|
|
18
19
|
/** first 6-digit code found in the body (the OTP), if any */
|
|
19
20
|
code: string | null;
|
|
20
21
|
}
|
|
22
|
+
/** In-memory {@link Mailer} that captures the most recent {@link CAP} messages and serves the /inbox UI. */
|
|
21
23
|
export declare class InboxMailer implements Mailer {
|
|
22
24
|
private passthrough?;
|
|
23
25
|
private messages;
|
package/dist/auth/inbox.js
CHANGED
package/dist/auth/inbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/auth/inbox.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/auth/inbox.ts"],"names":[],"mappings":"AAuBA,MAAM,GAAG,GAAG,GAAG,CAAA;AAEf,4GAA4G;AAC5G,MAAM,OAAO,WAAW;IAIF;IAHZ,QAAQ,GAAiB,EAAE,CAAA;IAEnC,gFAAgF;IAChF,YAAoB,WAAwC;QAAxC,gBAAW,GAAX,WAAW,CAA6B;IAAG,CAAC;IAEhE,KAAK,CAAC,IAAI,CAAC,GAAgB;QACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YACpB,GAAG,GAAG;YACN,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;YACnD,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;SAC/C,CAAC,CAAA;QACF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG;YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAA;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IACD,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;IACpB,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,GAAY,EAAE,GAAQ;QAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAA;QACzB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;QACvC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAA;QAC3G,CAAC;QACD,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACnC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,EAAE,CAAA;gBACZ,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5C,CAAC;YACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;gBAC/D,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,cAAc,EAAE,iCAAiC,EAAE;aAC/D,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAA;IAC/H,CAAC;CACF;AAED,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgEX,CAAA"}
|
package/dist/auth/oauth.d.ts
CHANGED
|
@@ -11,50 +11,76 @@
|
|
|
11
11
|
* - implicit: redirect to redirect_to#access_token=…&refresh_token=…
|
|
12
12
|
*/
|
|
13
13
|
import type { Database } from '../db/database.js';
|
|
14
|
+
/** Operator-supplied config for one OAuth provider. Endpoint URLs are optional for presets (google, github). */
|
|
14
15
|
export interface OAuthProviderConfig {
|
|
16
|
+
/** OAuth client id issued by the provider */
|
|
15
17
|
clientId: string;
|
|
18
|
+
/** OAuth client secret issued by the provider */
|
|
16
19
|
clientSecret: string;
|
|
17
20
|
/** Overrides; filled from a preset for known providers (google, github). */
|
|
18
21
|
authorizeUrl?: string;
|
|
22
|
+
/** token endpoint; filled from a preset when omitted */
|
|
19
23
|
tokenUrl?: string;
|
|
24
|
+
/** userinfo endpoint; filled from a preset when omitted */
|
|
20
25
|
userInfoUrl?: string;
|
|
26
|
+
/** space-separated scopes to request; falls back to the preset's */
|
|
21
27
|
scopes?: string;
|
|
22
28
|
/** Map the provider's raw userinfo JSON to a normalized profile. */
|
|
23
29
|
profileMap?: (raw: any) => OAuthProfile;
|
|
24
30
|
}
|
|
31
|
+
/** Normalized profile extracted from a provider's userinfo response. */
|
|
25
32
|
export interface OAuthProfile {
|
|
33
|
+
/** Provider-local user id (becomes auth.identities.provider_id). */
|
|
26
34
|
id: string;
|
|
35
|
+
/** email address the provider returned, if any */
|
|
27
36
|
email?: string;
|
|
37
|
+
/** Whether the provider asserts the email is verified; gated for account linking. */
|
|
28
38
|
emailVerified?: boolean;
|
|
39
|
+
/** display name the provider returned, if any */
|
|
29
40
|
name?: string;
|
|
41
|
+
/** extra provider fields (avatar, username, …) merged into identity_data */
|
|
30
42
|
metadata?: Record<string, unknown>;
|
|
31
43
|
}
|
|
32
44
|
interface ResolvedProvider extends Required<Omit<OAuthProviderConfig, 'profileMap'>> {
|
|
33
45
|
name: string;
|
|
34
46
|
profileMap: (raw: any) => OAuthProfile;
|
|
35
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Merge operator config with the built-in preset for `name` into a fully
|
|
50
|
+
* resolved provider.
|
|
51
|
+
*
|
|
52
|
+
* @throws if no endpoint URLs are supplied and no preset exists for `name`.
|
|
53
|
+
*/
|
|
36
54
|
export declare function resolveProvider(name: string, cfg: OAuthProviderConfig): ResolvedProvider;
|
|
55
|
+
/** Drives the OAuth authorize/callback/PKCE flows against the configured providers. */
|
|
37
56
|
export declare class OAuthService {
|
|
38
57
|
private db;
|
|
39
58
|
private siteUrl;
|
|
40
59
|
private fetchImpl;
|
|
60
|
+
private uriAllowList;
|
|
61
|
+
private enforceRedirectAllowList;
|
|
41
62
|
private providers;
|
|
42
|
-
constructor(db: Database, siteUrl: string, configs: Record<string, OAuthProviderConfig>, fetchImpl?: typeof fetch);
|
|
63
|
+
constructor(db: Database, siteUrl: string, configs: Record<string, OAuthProviderConfig>, fetchImpl?: typeof fetch, uriAllowList?: string[], enforceRedirectAllowList?: boolean);
|
|
64
|
+
/** Whether a provider by this name is configured. */
|
|
43
65
|
has(name: string): boolean;
|
|
44
66
|
private callbackUrl;
|
|
45
|
-
/** GET /authorize
|
|
67
|
+
/** GET /authorize - persist state, redirect to the provider. */
|
|
46
68
|
authorize(url: URL): Promise<Response>;
|
|
47
|
-
/** GET /callback
|
|
69
|
+
/** GET /callback - exchange code, upsert user+identity, redirect back. */
|
|
48
70
|
callback(url: URL, createSession: (userId: string) => Promise<OAuthSession>): Promise<Response>;
|
|
49
|
-
/** POST /token?grant_type=pkce
|
|
71
|
+
/** POST /token?grant_type=pkce - exchange an auth code + verifier for a session. */
|
|
50
72
|
exchangePkce(authCode: string, verifier: string): Promise<string | null>;
|
|
51
73
|
private exchangeCode;
|
|
52
74
|
private fetchProfile;
|
|
53
75
|
private upsertUser;
|
|
54
76
|
}
|
|
77
|
+
/** The minimal session the callback puts in the redirect fragment for the implicit flow. */
|
|
55
78
|
export interface OAuthSession {
|
|
79
|
+
/** signed access token (JWT) */
|
|
56
80
|
access_token: string;
|
|
81
|
+
/** opaque refresh token */
|
|
57
82
|
refresh_token: string;
|
|
83
|
+
/** access-token lifetime in seconds */
|
|
58
84
|
expires_in: number;
|
|
59
85
|
}
|
|
60
86
|
export {};
|
package/dist/auth/oauth.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { randomToken } from '../jwt.js';
|
|
2
|
+
import { resolveRedirect } from './redirect.js';
|
|
2
3
|
const PRESETS = {
|
|
3
4
|
google: {
|
|
4
5
|
authorizeUrl: 'https://accounts.google.com/o/oauth2/v2/auth',
|
|
@@ -21,6 +22,12 @@ const PRESETS = {
|
|
|
21
22
|
profileMap: (r) => ({ id: String(r.id), email: r.email, name: r.name ?? r.login, metadata: { avatar_url: r.avatar_url, user_name: r.login } }),
|
|
22
23
|
},
|
|
23
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* Merge operator config with the built-in preset for `name` into a fully
|
|
27
|
+
* resolved provider.
|
|
28
|
+
*
|
|
29
|
+
* @throws if no endpoint URLs are supplied and no preset exists for `name`.
|
|
30
|
+
*/
|
|
24
31
|
export function resolveProvider(name, cfg) {
|
|
25
32
|
const preset = PRESETS[name] ?? {};
|
|
26
33
|
const authorizeUrl = cfg.authorizeUrl ?? preset.authorizeUrl;
|
|
@@ -40,26 +47,32 @@ export function resolveProvider(name, cfg) {
|
|
|
40
47
|
profileMap: cfg.profileMap ?? preset.profileMap ?? ((r) => ({ id: String(r.id ?? r.sub), email: r.email, name: r.name })),
|
|
41
48
|
};
|
|
42
49
|
}
|
|
50
|
+
/** Drives the OAuth authorize/callback/PKCE flows against the configured providers. */
|
|
43
51
|
export class OAuthService {
|
|
44
52
|
db;
|
|
45
53
|
siteUrl;
|
|
46
54
|
fetchImpl;
|
|
55
|
+
uriAllowList;
|
|
56
|
+
enforceRedirectAllowList;
|
|
47
57
|
providers = new Map();
|
|
48
|
-
constructor(db, siteUrl, configs, fetchImpl = fetch) {
|
|
58
|
+
constructor(db, siteUrl, configs, fetchImpl = fetch, uriAllowList = [], enforceRedirectAllowList = false) {
|
|
49
59
|
this.db = db;
|
|
50
60
|
this.siteUrl = siteUrl;
|
|
51
61
|
this.fetchImpl = fetchImpl;
|
|
62
|
+
this.uriAllowList = uriAllowList;
|
|
63
|
+
this.enforceRedirectAllowList = enforceRedirectAllowList;
|
|
52
64
|
for (const [name, cfg] of Object.entries(configs)) {
|
|
53
65
|
this.providers.set(name, resolveProvider(name, cfg));
|
|
54
66
|
}
|
|
55
67
|
}
|
|
68
|
+
/** Whether a provider by this name is configured. */
|
|
56
69
|
has(name) {
|
|
57
70
|
return this.providers.has(name);
|
|
58
71
|
}
|
|
59
72
|
callbackUrl() {
|
|
60
73
|
return `${this.siteUrl}/auth/v1/callback`;
|
|
61
74
|
}
|
|
62
|
-
/** GET /authorize
|
|
75
|
+
/** GET /authorize - persist state, redirect to the provider. */
|
|
63
76
|
async authorize(url) {
|
|
64
77
|
const providerName = url.searchParams.get('provider') ?? '';
|
|
65
78
|
const provider = this.providers.get(providerName);
|
|
@@ -68,11 +81,14 @@ export class OAuthService {
|
|
|
68
81
|
}
|
|
69
82
|
const providerState = randomToken(16);
|
|
70
83
|
const scopes = url.searchParams.get('scopes') || provider.scopes;
|
|
84
|
+
// Validate the redirect target up front so the callback can trust the stored
|
|
85
|
+
// value - an unallowed target falls back to the site URL.
|
|
86
|
+
const redirectTo = resolveRedirect(url.searchParams.get('redirect_to'), this.siteUrl, this.uriAllowList, this.enforceRedirectAllowList);
|
|
71
87
|
await this.db.query(`insert into auth.flow_state (provider, provider_state, redirect_to, code_challenge, code_challenge_method, expires_at)
|
|
72
88
|
values ($1, $2, $3, $4, $5, now() + interval '10 minutes')`, [
|
|
73
89
|
providerName,
|
|
74
90
|
providerState,
|
|
75
|
-
|
|
91
|
+
redirectTo,
|
|
76
92
|
url.searchParams.get('code_challenge'),
|
|
77
93
|
url.searchParams.get('code_challenge_method'),
|
|
78
94
|
]);
|
|
@@ -85,7 +101,7 @@ export class OAuthService {
|
|
|
85
101
|
});
|
|
86
102
|
return redirect(`${provider.authorizeUrl}?${p}`);
|
|
87
103
|
}
|
|
88
|
-
/** GET /callback
|
|
104
|
+
/** GET /callback - exchange code, upsert user+identity, redirect back. */
|
|
89
105
|
async callback(url, createSession) {
|
|
90
106
|
const code = url.searchParams.get('code');
|
|
91
107
|
const state = url.searchParams.get('state');
|
|
@@ -120,7 +136,7 @@ export class OAuthService {
|
|
|
120
136
|
const hash = `#access_token=${session.access_token}&refresh_token=${session.refresh_token}&expires_in=${session.expires_in}&token_type=bearer&provider_token=`;
|
|
121
137
|
return redirect(`${flow.redirect_to}${hash}`);
|
|
122
138
|
}
|
|
123
|
-
/** POST /token?grant_type=pkce
|
|
139
|
+
/** POST /token?grant_type=pkce - exchange an auth code + verifier for a session. */
|
|
124
140
|
async exchangePkce(authCode, verifier) {
|
|
125
141
|
const res = await this.db.query(`delete from auth.flow_state where auth_code = $1 and expires_at > now() returning *`, [authCode]);
|
|
126
142
|
const flow = res.rows[0];
|
|
@@ -181,7 +197,7 @@ export class OAuthService {
|
|
|
181
197
|
return existing.rows[0].user_id;
|
|
182
198
|
}
|
|
183
199
|
// Link to an existing user with the same email ONLY when the provider
|
|
184
|
-
// asserts the email is verified
|
|
200
|
+
// asserts the email is verified - otherwise an attacker could register a
|
|
185
201
|
// provider account with a victim's unverified email and take over their
|
|
186
202
|
// account. Unverified → fall through and create a separate user.
|
|
187
203
|
let userId;
|
package/dist/auth/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/password.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
/** PBKDF2-SHA256 password hashing on WebCrypto (portable, no native deps). */
|
|
2
|
+
/** Hash a password into the self-describing `pbkdf2$iterations$salt$hash` string stored in encrypted_password. */
|
|
2
3
|
export declare function hashPassword(password: string): Promise<string>;
|
|
4
|
+
/**
|
|
5
|
+
* Verify a password against a stored `pbkdf2$…` hash, re-deriving with the
|
|
6
|
+
* salt/iterations embedded in it. Returns false for any malformed hash.
|
|
7
|
+
*/
|
|
3
8
|
export declare function verifyPassword(password: string, stored: string): Promise<boolean>;
|
package/dist/auth/password.js
CHANGED
|
@@ -16,11 +16,16 @@ async function derive(password, salt, iterations) {
|
|
|
16
16
|
const bits = await crypto.subtle.deriveBits({ name: 'PBKDF2', hash: 'SHA-256', salt: salt, iterations }, key, 256);
|
|
17
17
|
return new Uint8Array(bits);
|
|
18
18
|
}
|
|
19
|
+
/** Hash a password into the self-describing `pbkdf2$iterations$salt$hash` string stored in encrypted_password. */
|
|
19
20
|
export async function hashPassword(password) {
|
|
20
21
|
const salt = crypto.getRandomValues(new Uint8Array(16));
|
|
21
22
|
const hash = await derive(password, salt, ITERATIONS);
|
|
22
23
|
return `pbkdf2$${ITERATIONS}$${toHex(salt)}$${toHex(hash)}`;
|
|
23
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Verify a password against a stored `pbkdf2$…` hash, re-deriving with the
|
|
27
|
+
* salt/iterations embedded in it. Returns false for any malformed hash.
|
|
28
|
+
*/
|
|
24
29
|
export async function verifyPassword(password, stored) {
|
|
25
30
|
const parts = stored.split('$');
|
|
26
31
|
if (parts.length !== 4 || parts[0] !== 'pbkdf2')
|
|
@@ -32,6 +37,8 @@ export async function verifyPassword(password, stored) {
|
|
|
32
37
|
const actual = toHex(hash);
|
|
33
38
|
if (actual.length !== expected.length)
|
|
34
39
|
return false;
|
|
40
|
+
// SECURITY: constant-time compare over the full hash to avoid leaking a
|
|
41
|
+
// match prefix via timing.
|
|
35
42
|
let diff = 0;
|
|
36
43
|
for (let i = 0; i < actual.length; i++)
|
|
37
44
|
diff |= actual.charCodeAt(i) ^ expected.charCodeAt(i);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/auth/password.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/auth/password.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/qr.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Minimal QR Code generator (byte mode, full version/ECC/mask support) used to
|
|
3
3
|
* render the MFA enrollment otpauth:// URI as a scannable SVG. Compact port of
|
|
4
|
-
* Nayuki's public-domain "QR Code generator" algorithm
|
|
4
|
+
* Nayuki's public-domain "QR Code generator" algorithm - no dependencies.
|
|
5
5
|
* Source of the algorithm: https://www.nayuki.io/page/qr-code-generator-library
|
|
6
6
|
*/
|
|
7
7
|
/** Encode `text` as a QR SVG data URI (works directly as an <img src>). */
|
package/dist/auth/qr.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Minimal QR Code generator (byte mode, full version/ECC/mask support) used to
|
|
3
3
|
* render the MFA enrollment otpauth:// URI as a scannable SVG. Compact port of
|
|
4
|
-
* Nayuki's public-domain "QR Code generator" algorithm
|
|
4
|
+
* Nayuki's public-domain "QR Code generator" algorithm - no dependencies.
|
|
5
5
|
* Source of the algorithm: https://www.nayuki.io/page/qr-code-generator-library
|
|
6
6
|
*/
|
|
7
7
|
// Error-correction level → format bits. We use M (medium) like GoTrue.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory sliding-window rate limiter for auth endpoints. GoTrue throttles
|
|
3
|
+
* login/signup/OTP/recovery to blunt brute-force and mail-flooding; tinbase
|
|
4
|
+
* mirrors that with per-key windows and returns the same 429 /
|
|
5
|
+
* `over_request_rate_limit` shape. State is per-process (no external store),
|
|
6
|
+
* which is sufficient for a single-process local backend.
|
|
7
|
+
*/
|
|
8
|
+
/** A single sliding-window limit: at most `limit` hits per `windowMs`. */
|
|
9
|
+
export interface RateLimitRule {
|
|
10
|
+
/** max requests permitted within the window */
|
|
11
|
+
limit: number;
|
|
12
|
+
/** window length in milliseconds */
|
|
13
|
+
windowMs: number;
|
|
14
|
+
}
|
|
15
|
+
/** Default per-endpoint rules, keyed by the logical action being throttled. */
|
|
16
|
+
export declare const DEFAULT_AUTH_RATE_LIMITS: Record<string, RateLimitRule>;
|
|
17
|
+
/** Per-key sliding-window counter with one background sweep to drop stale buckets. */
|
|
18
|
+
export declare class RateLimiter {
|
|
19
|
+
private hits;
|
|
20
|
+
private timer;
|
|
21
|
+
private rules;
|
|
22
|
+
/** `overrides` (e.g. from config.toml auth.rate_limit.*) replace the matching defaults. */
|
|
23
|
+
constructor(overrides?: Record<string, RateLimitRule>);
|
|
24
|
+
/**
|
|
25
|
+
* Record an attempt for `action` by `key` (typically IP + identifier).
|
|
26
|
+
* Returns `null` when allowed, or the seconds until the window frees up when
|
|
27
|
+
* the limit is exceeded.
|
|
28
|
+
*/
|
|
29
|
+
check(action: string, key: string, now?: number): number | null;
|
|
30
|
+
private sweep;
|
|
31
|
+
/** Stop the background sweep timer. */
|
|
32
|
+
stop(): void;
|
|
33
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory sliding-window rate limiter for auth endpoints. GoTrue throttles
|
|
3
|
+
* login/signup/OTP/recovery to blunt brute-force and mail-flooding; tinbase
|
|
4
|
+
* mirrors that with per-key windows and returns the same 429 /
|
|
5
|
+
* `over_request_rate_limit` shape. State is per-process (no external store),
|
|
6
|
+
* which is sufficient for a single-process local backend.
|
|
7
|
+
*/
|
|
8
|
+
/** Default per-endpoint rules, keyed by the logical action being throttled. */
|
|
9
|
+
export const DEFAULT_AUTH_RATE_LIMITS = {
|
|
10
|
+
// Password login / token grants: brute-force surface.
|
|
11
|
+
token: { limit: 30, windowMs: 5 * 60 * 1000 },
|
|
12
|
+
signup: { limit: 30, windowMs: 60 * 60 * 1000 },
|
|
13
|
+
// Endpoints that send email (OTP, magic link, recovery): mail-flood surface.
|
|
14
|
+
otp: { limit: 10, windowMs: 60 * 60 * 1000 },
|
|
15
|
+
recover: { limit: 10, windowMs: 60 * 60 * 1000 },
|
|
16
|
+
};
|
|
17
|
+
/** Per-key sliding-window counter with one background sweep to drop stale buckets. */
|
|
18
|
+
export class RateLimiter {
|
|
19
|
+
hits = new Map();
|
|
20
|
+
timer = null;
|
|
21
|
+
rules;
|
|
22
|
+
/** `overrides` (e.g. from config.toml auth.rate_limit.*) replace the matching defaults. */
|
|
23
|
+
constructor(overrides = {}) {
|
|
24
|
+
this.rules = { ...DEFAULT_AUTH_RATE_LIMITS, ...overrides };
|
|
25
|
+
// Periodically drop empty buckets so long-lived processes don't grow the
|
|
26
|
+
// map without bound. Unref'd so it never keeps the process alive.
|
|
27
|
+
this.timer = setInterval(() => this.sweep(), 10 * 60 * 1000);
|
|
28
|
+
this.timer.unref?.();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Record an attempt for `action` by `key` (typically IP + identifier).
|
|
32
|
+
* Returns `null` when allowed, or the seconds until the window frees up when
|
|
33
|
+
* the limit is exceeded.
|
|
34
|
+
*/
|
|
35
|
+
check(action, key, now = Date.now()) {
|
|
36
|
+
const rule = this.rules[action];
|
|
37
|
+
if (!rule)
|
|
38
|
+
return null;
|
|
39
|
+
const bucketKey = `${action}:${key}`;
|
|
40
|
+
const cutoff = now - rule.windowMs;
|
|
41
|
+
const recent = (this.hits.get(bucketKey) ?? []).filter((t) => t > cutoff);
|
|
42
|
+
if (recent.length >= rule.limit) {
|
|
43
|
+
const retryMs = recent[0] + rule.windowMs - now;
|
|
44
|
+
return Math.max(1, Math.ceil(retryMs / 1000));
|
|
45
|
+
}
|
|
46
|
+
recent.push(now);
|
|
47
|
+
this.hits.set(bucketKey, recent);
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
sweep(now = Date.now()) {
|
|
51
|
+
for (const [key, times] of this.hits) {
|
|
52
|
+
if (times.every((t) => now - t > 60 * 60 * 1000))
|
|
53
|
+
this.hits.delete(key);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** Stop the background sweep timer. */
|
|
57
|
+
stop() {
|
|
58
|
+
if (this.timer)
|
|
59
|
+
clearInterval(this.timer);
|
|
60
|
+
this.timer = null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=rate-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/auth/rate-limit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redirect-URL validation, matching GoTrue's URI_ALLOW_LIST behavior: a
|
|
3
|
+
* client-supplied `redirect_to` is only honored when it is same-origin with the
|
|
4
|
+
* site URL or matches a configured allowlist entry. Anything else falls back to
|
|
5
|
+
* the site URL, so a crafted magic-link/OAuth URL can't redirect a victim (and
|
|
6
|
+
* the freshly minted session tokens) to an attacker-controlled origin.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the redirect target: return `requested` when it is allowed, otherwise
|
|
10
|
+
* fall back to `siteUrl`. `requested` is allowed when it is same-origin with
|
|
11
|
+
* `siteUrl` or matches any `allowList` glob.
|
|
12
|
+
*
|
|
13
|
+
* When `enforce` is false (the default for a loopback/local-dev backend), any
|
|
14
|
+
* well-formed absolute URL is honored - matching how `supabase start` lets a
|
|
15
|
+
* dev redirect anywhere locally. The backend sets `enforce` to true once bound
|
|
16
|
+
* to a network-exposed host, at which point the allowlist is strict.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveRedirect(requested: string | null | undefined, siteUrl: string, allowList?: string[], enforce?: boolean): string;
|
|
19
|
+
/** Whether `requested` is same-origin with `siteUrl` or matches the allowlist. */
|
|
20
|
+
export declare function isAllowedRedirect(requested: string, siteUrl: string, allowList?: string[]): boolean;
|