@memberjunction/server 6.1.4 → 6.1.5
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 +30 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/auth/magicLink/MagicLinkService.d.ts +17 -15
- package/dist/auth/magicLink/MagicLinkService.d.ts.map +1 -1
- package/dist/auth/magicLink/MagicLinkService.js +49 -35
- package/dist/auth/magicLink/MagicLinkService.js.map +1 -1
- package/dist/auth/magicLink/magicLinkCore.d.ts +14 -33
- package/dist/auth/magicLink/magicLinkCore.d.ts.map +1 -1
- package/dist/auth/magicLink/magicLinkCore.js +20 -52
- package/dist/auth/magicLink/magicLinkCore.js.map +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +11 -23
- package/dist/context.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -44
- package/dist/index.js.map +1 -1
- package/dist/postgresqlCompat.d.ts +8 -0
- package/dist/postgresqlCompat.d.ts.map +1 -0
- package/dist/postgresqlCompat.js +19 -0
- package/dist/postgresqlCompat.js.map +1 -0
- package/dist/postgresqlPoolSettings.d.ts +108 -0
- package/dist/postgresqlPoolSettings.d.ts.map +1 -0
- package/dist/postgresqlPoolSettings.js +134 -0
- package/dist/postgresqlPoolSettings.js.map +1 -0
- package/dist/resolvers/AdhocQueryResolver.d.ts +10 -20
- package/dist/resolvers/AdhocQueryResolver.d.ts.map +1 -1
- package/dist/resolvers/AdhocQueryResolver.js +54 -174
- package/dist/resolvers/AdhocQueryResolver.js.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts +44 -6
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.js +90 -34
- package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.js +2 -1
- package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
- package/dist/resolvers/adhocTimeout.d.ts +7 -0
- package/dist/resolvers/adhocTimeout.d.ts.map +1 -0
- package/dist/resolvers/adhocTimeout.js +12 -0
- package/dist/resolvers/adhocTimeout.js.map +1 -0
- package/dist/services/TaskGraphActionRunner.d.ts +13 -8
- package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
- package/dist/services/TaskGraphActionRunner.js +16 -15
- package/dist/services/TaskGraphActionRunner.js.map +1 -1
- package/package.json +92 -92
- package/src/__tests__/AdhocQueryResolver.bugs.test.ts +12 -35
- package/src/__tests__/AdhocQueryResolver.pagination.test.ts +6 -2
- package/src/__tests__/AdhocQueryResolver.scopeGuard.test.ts +3 -3
- package/src/__tests__/RealtimeClientSessionResolver.test.ts +216 -2
- package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +129 -0
- package/src/__tests__/adhocTimeoutClamp.test.ts +26 -0
- package/src/__tests__/magicLink.test.ts +15 -76
- package/src/__tests__/magicLinkService.consume.test.ts +224 -0
- package/src/__tests__/postgresqlPoolSettings.test.ts +131 -0
- package/src/__tests__/translateBracketsToPG.test.ts +20 -0
- package/src/auth/magicLink/MagicLinkService.ts +55 -36
- package/src/auth/magicLink/magicLinkCore.ts +19 -56
- package/src/context.ts +11 -24
- package/src/index.ts +40 -45
- package/src/postgresqlCompat.ts +21 -0
- package/src/postgresqlPoolSettings.ts +213 -0
- package/src/resolvers/AdhocQueryResolver.ts +64 -194
- package/src/resolvers/RealtimeClientSessionResolver.ts +93 -35
- package/src/resolvers/RunAIAgentResolver.ts +4 -1
- package/src/resolvers/adhocTimeout.ts +12 -0
- package/src/services/TaskGraphActionRunner.ts +16 -15
- package/dist/resolvers/adhoc-query-helpers.d.ts +0 -27
- package/dist/resolvers/adhoc-query-helpers.d.ts.map +0 -1
- package/dist/resolvers/adhoc-query-helpers.js +0 -42
- package/dist/resolvers/adhoc-query-helpers.js.map +0 -1
- package/src/__tests__/adhoc-query-helpers.test.ts +0 -50
- package/src/resolvers/adhoc-query-helpers.ts +0 -50
|
@@ -32,9 +32,9 @@ export declare class MagicLinkService {
|
|
|
32
32
|
* session JWT. Runs in the public (pre-auth) path, so it uses the global
|
|
33
33
|
* provider and a configured provisioning context user.
|
|
34
34
|
*
|
|
35
|
-
* Single-use is enforced by
|
|
36
|
-
* BEFORE the token is minted — two concurrent
|
|
37
|
-
* link race on the same row and exactly one wins. The consume is the gate:
|
|
35
|
+
* Single-use is enforced by the guarded UPDATE inside the `spConsumeMagicLinkInvite`
|
|
36
|
+
* procedure ({@link consumeInvite}) BEFORE the token is minted — two concurrent
|
|
37
|
+
* redemptions of a single-use link race on the same row and exactly one wins. The consume is the gate:
|
|
38
38
|
* if a later step fails, the use is already burned (fail-closed). That is the
|
|
39
39
|
* correct trade-off for a single-use credential — burning a token on a server
|
|
40
40
|
* error is recoverable (re-issue); allowing replay is not.
|
|
@@ -98,20 +98,22 @@ export declare class MagicLinkService {
|
|
|
98
98
|
/** Idempotently ensures the role has CanAccess to the application (Application Role). */
|
|
99
99
|
private ensureAppAccess;
|
|
100
100
|
/**
|
|
101
|
-
* Atomically consumes one use of the invite
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* (won the race); concurrent redemptions of a single-use link see 0 rows.
|
|
101
|
+
* Atomically consumes one use of the invite with a single guarded UPDATE that re-checks every
|
|
102
|
+
* eligibility condition (Active, not exhausted, not expired) at the DB level, so the increment and
|
|
103
|
+
* the guard are one atomic operation. Concurrent redemptions of a single-use link race on the row
|
|
104
|
+
* and exactly one gets the row back.
|
|
106
105
|
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
106
|
+
* The statement differs per platform because the grants do:
|
|
107
|
+
* - **SQL Server** calls {@link CONSUME_INVITE_PROC} (`EXEC … @ID=@p0`). Runtime roles have
|
|
108
|
+
* EXECUTE on procedures but no DML on base tables (#4753).
|
|
109
|
+
* - **PostgreSQL** runs {@link buildConsumeInvitePostgresSQL}'s `UPDATE … RETURNING` directly.
|
|
110
|
+
* Runtime roles hold table DML there, and no PG counterpart of the procedure exists.
|
|
111
|
+
* The ID is always a bound parameter.
|
|
113
112
|
*
|
|
114
|
-
*
|
|
113
|
+
* Returns `'won'` (this call consumed a use), `'lost'` (the guard matched nothing: consumed,
|
|
114
|
+
* revoked or expired concurrently) or `'failed'` (the statement never ran — permissions, a missing
|
|
115
|
+
* procedure, a connection error). `'failed'` is kept distinct from `'lost'` on purpose: collapsing
|
|
116
|
+
* them is what made #4753's permission error surface to users as "already redeemed".
|
|
115
117
|
*/
|
|
116
118
|
private consumeInvite;
|
|
117
119
|
/** Pushes a freshly created user into the UserCache with its single role. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MagicLinkService.d.ts","sourceRoot":"","sources":["../../../src/auth/magicLink/MagicLinkService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAGL,QAAQ,EAIR,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAC;AAiB9B,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGnE,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"MagicLinkService.d.ts","sourceRoot":"","sources":["../../../src/auth/magicLink/MagicLinkService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAGL,QAAQ,EAIR,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAC;AAiB9B,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGnE,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAiCpB;;;GAGG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe;IAG1C;;;;;;;OAOG;IACU,YAAY,CACvB,MAAM,EAAE,2BAA2B,EACnC,YAAY,EAAE,QAAQ,EACtB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,2BAA2B,CAAC;IAsFvC;;;;;;;;;;;;OAYG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAuIvG;;;;;;;;;OASG;YACW,gBAAgB;IAoC9B;;;;;;;OAOG;YACW,yBAAyB;IA4BvC,gEAAgE;IAChE,OAAO,CAAC,uBAAuB;IAM/B,2CAA2C;IAC3C,OAAO,CAAC,kBAAkB;IAK1B;;;OAGG;YACW,aAAa;IAgD3B;;;;;;;OAOG;IACH,OAAO,CAAC,yBAAyB;IASjC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kBAAkB;IAY1B,yFAAyF;YAC3E,gBAAgB;IA+D9B,mFAAmF;YACrE,gBAAgB;IA4C9B,yFAAyF;YAC3E,eAAe;IA6B7B;;;;;;;;;;;;;;;;;OAiBG;YACW,aAAa;IAmB3B,6EAA6E;IAC7E,OAAO,CAAC,eAAe;IAOvB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAQvB,mEAAmE;IACnE,OAAO,CAAC,8BAA8B;IAKtC,qFAAqF;YACvE,eAAe;CA0B9B"}
|
|
@@ -14,11 +14,21 @@ import { CommunicationEngine } from '@memberjunction/communication-engine';
|
|
|
14
14
|
import { Message } from '@memberjunction/communication-types';
|
|
15
15
|
import { configInfo } from '../../config.js';
|
|
16
16
|
import { MagicLinkKeyManager } from './MagicLinkKeys.js';
|
|
17
|
-
import { generateRawToken, generateSessionId, hashToken, evaluateInvite, buildSessionClaims,
|
|
17
|
+
import { generateRawToken, generateSessionId, hashToken, evaluateInvite, buildSessionClaims, buildConsumeInvitePostgresSQL, canIssueInvites, isRoleGrantable, MAGIC_LINK_TOKEN_PREFIX } from './magicLinkCore.js';
|
|
18
18
|
const INVITE_ENTITY = 'MJ: Magic Link Invites';
|
|
19
19
|
const REDEMPTION_ENTITY = 'MJ: Magic Link Redemptions';
|
|
20
20
|
/** Shared Anonymous principal — seeded by the Phase-4 migration; must match that UUID. */
|
|
21
21
|
const ANONYMOUS_USER_ID = '273910DF-28F1-45C1-A8F8-6E9AD8E5F008';
|
|
22
|
+
/**
|
|
23
|
+
* The SQL Server guarded single-use procedure (migration V202609291627__v6.2.x__MagicLink_Consume_Invite_Sproc).
|
|
24
|
+
* A procedure, not raw DML, because on SQL Server MJ grants its runtime roles EXECUTE on procedures
|
|
25
|
+
* and SELECT on views — never DML on base tables — so on any host whose MJAPI login is not db_owner
|
|
26
|
+
* a raw UPDATE is refused (#4753). Ownership chaining lets the procedure update the table on the
|
|
27
|
+
* caller's behalf. PostgreSQL has no counterpart function; see {@link buildConsumeInvitePostgresSQL}.
|
|
28
|
+
*/
|
|
29
|
+
const CONSUME_INVITE_PROC = 'spConsumeMagicLinkInvite';
|
|
30
|
+
/** MagicLinkInvite base table (core schema) — the PostgreSQL consume updates it directly. */
|
|
31
|
+
const INVITE_TABLE = 'MagicLinkInvite';
|
|
22
32
|
/**
|
|
23
33
|
* Magic-link service. One instance per server, constructed with the resolved
|
|
24
34
|
* public URL and the validated config.
|
|
@@ -117,9 +127,9 @@ export class MagicLinkService {
|
|
|
117
127
|
* session JWT. Runs in the public (pre-auth) path, so it uses the global
|
|
118
128
|
* provider and a configured provisioning context user.
|
|
119
129
|
*
|
|
120
|
-
* Single-use is enforced by
|
|
121
|
-
* BEFORE the token is minted — two concurrent
|
|
122
|
-
* link race on the same row and exactly one wins. The consume is the gate:
|
|
130
|
+
* Single-use is enforced by the guarded UPDATE inside the `spConsumeMagicLinkInvite`
|
|
131
|
+
* procedure ({@link consumeInvite}) BEFORE the token is minted — two concurrent
|
|
132
|
+
* redemptions of a single-use link race on the same row and exactly one wins. The consume is the gate:
|
|
123
133
|
* if a later step fails, the use is already burned (fail-closed). That is the
|
|
124
134
|
* correct trade-off for a single-use credential — burning a token on a server
|
|
125
135
|
* error is recoverable (re-issue); allowing replay is not.
|
|
@@ -184,10 +194,14 @@ export class MagicLinkService {
|
|
|
184
194
|
LogError(`[MagicLink] Invite ${invite.ID} references missing role ${invite.RoleID}.`);
|
|
185
195
|
return done({ success: false, errorCode: 'server_error', error: 'Invite role not found.' });
|
|
186
196
|
}
|
|
187
|
-
// Atomic consume BEFORE minting.
|
|
188
|
-
//
|
|
189
|
-
//
|
|
190
|
-
|
|
197
|
+
// Atomic consume BEFORE minting. A statement that never ran (permissions,
|
|
198
|
+
// missing procedure, connection) is a server fault, not a lost race — report
|
|
199
|
+
// it as such so operators aren't sent hunting a double-redeem (#4753).
|
|
200
|
+
const consume = await this.consumeInvite(invite, provider, contextUser);
|
|
201
|
+
if (consume === 'failed') {
|
|
202
|
+
return done({ success: false, errorCode: 'server_error', error: 'Could not redeem the invite due to a server error.' });
|
|
203
|
+
}
|
|
204
|
+
if (consume === 'lost') {
|
|
191
205
|
// Lost the race or the invite expired between the pre-check and the
|
|
192
206
|
// consume. The in-memory copy still looks eligible if only the DB-side
|
|
193
207
|
// use count changed, so default that case to 'consumed'.
|
|
@@ -523,40 +537,40 @@ export class MagicLinkService {
|
|
|
523
537
|
}
|
|
524
538
|
}
|
|
525
539
|
/**
|
|
526
|
-
* Atomically consumes one use of the invite
|
|
527
|
-
*
|
|
528
|
-
*
|
|
529
|
-
*
|
|
530
|
-
* (won the race); concurrent redemptions of a single-use link see 0 rows.
|
|
540
|
+
* Atomically consumes one use of the invite with a single guarded UPDATE that re-checks every
|
|
541
|
+
* eligibility condition (Active, not exhausted, not expired) at the DB level, so the increment and
|
|
542
|
+
* the guard are one atomic operation. Concurrent redemptions of a single-use link race on the row
|
|
543
|
+
* and exactly one gets the row back.
|
|
531
544
|
*
|
|
532
|
-
*
|
|
533
|
-
*
|
|
534
|
-
*
|
|
535
|
-
*
|
|
536
|
-
*
|
|
537
|
-
*
|
|
545
|
+
* The statement differs per platform because the grants do:
|
|
546
|
+
* - **SQL Server** calls {@link CONSUME_INVITE_PROC} (`EXEC … @ID=@p0`). Runtime roles have
|
|
547
|
+
* EXECUTE on procedures but no DML on base tables (#4753).
|
|
548
|
+
* - **PostgreSQL** runs {@link buildConsumeInvitePostgresSQL}'s `UPDATE … RETURNING` directly.
|
|
549
|
+
* Runtime roles hold table DML there, and no PG counterpart of the procedure exists.
|
|
550
|
+
* The ID is always a bound parameter.
|
|
538
551
|
*
|
|
539
|
-
*
|
|
552
|
+
* Returns `'won'` (this call consumed a use), `'lost'` (the guard matched nothing: consumed,
|
|
553
|
+
* revoked or expired concurrently) or `'failed'` (the statement never ran — permissions, a missing
|
|
554
|
+
* procedure, a connection error). `'failed'` is kept distinct from `'lost'` on purpose: collapsing
|
|
555
|
+
* them is what made #4753's permission error surface to users as "already redeemed".
|
|
540
556
|
*/
|
|
541
557
|
async consumeInvite(invite, provider, contextUser) {
|
|
558
|
+
const isPg = provider.PlatformKey === 'postgresql';
|
|
559
|
+
const statement = isPg ? `PostgreSQL guarded UPDATE on ${INVITE_TABLE}` : CONSUME_INVITE_PROC;
|
|
542
560
|
try {
|
|
543
|
-
const
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
// OUTPUT/RETURNING yields one row iff the WHERE matched — the atomic single-use gate.
|
|
553
|
-
const sql = buildConsumeInviteSQL(table, isPg ? 'postgresql' : 'sqlserver');
|
|
554
|
-
const rows = await provider.ExecuteSQL(sql, [invite.ID], { isMutation: true }, contextUser);
|
|
555
|
-
return Array.isArray(rows) && rows.length === 1;
|
|
561
|
+
const sql = isPg
|
|
562
|
+
? buildConsumeInvitePostgresSQL(`${provider.MJCoreSchemaName}.${INVITE_TABLE}`)
|
|
563
|
+
: provider.Dialect.ProcedureCallSyntax(provider.MJCoreSchemaName, CONSUME_INVITE_PROC, [`@ID=${provider.BuildParameterPlaceholder(0)}`]);
|
|
564
|
+
const rows = await provider.ExecuteSQL(sql, [invite.ID], { isMutation: true, description: `MagicLink ${statement}` }, contextUser);
|
|
565
|
+
if (!Array.isArray(rows)) {
|
|
566
|
+
LogError(`[MagicLink] ${statement} returned no result set for invite ${invite.ID}; treating the consume as failed.`);
|
|
567
|
+
return 'failed';
|
|
568
|
+
}
|
|
569
|
+
return rows.length === 1 ? 'won' : 'lost';
|
|
556
570
|
}
|
|
557
571
|
catch (e) {
|
|
558
|
-
LogError(`[MagicLink]
|
|
559
|
-
return
|
|
572
|
+
LogError(`[MagicLink] ${statement} FAILED for invite ${invite.ID} — the statement never ran, so this is NOT a lost race: ${e instanceof Error ? e.message : String(e)}`);
|
|
573
|
+
return 'failed';
|
|
560
574
|
}
|
|
561
575
|
}
|
|
562
576
|
/** Pushes a freshly created user into the UserCache with its single role. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MagicLinkService.js","sourceRoot":"","sources":["../../../src/auth/magicLink/MagicLinkService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MagicLinkService.js","sourceRoot":"","sources":["../../../src/auth/magicLink/MagicLinkService.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,44 +48,25 @@ export declare function evaluateInvite(invite: InviteEvaluationInput, nowMs: num
|
|
|
48
48
|
ok: boolean;
|
|
49
49
|
errorCode?: RedeemErrorCode;
|
|
50
50
|
};
|
|
51
|
-
/** SQL dialect for {@link buildConsumeInviteSQL}. */
|
|
52
|
-
export type ConsumeInviteDialect = 'sqlserver' | 'postgresql';
|
|
53
51
|
/**
|
|
54
|
-
* Builds the atomic compare-and-swap UPDATE that consumes one use of an invite
|
|
55
|
-
* in the given SQL dialect.
|
|
52
|
+
* Builds the PostgreSQL atomic compare-and-swap UPDATE that consumes one use of an invite.
|
|
56
53
|
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* Server, `RETURNING` on PostgreSQL) so it can detect a win (exactly one row).
|
|
54
|
+
* PostgreSQL only. SQL Server consumes through the granted `spConsumeMagicLinkInvite` procedure,
|
|
55
|
+
* because its runtime roles are never granted table DML (#4753). PostgreSQL needs neither: its
|
|
56
|
+
* runtime roles hold INSERT/UPDATE/DELETE on every `__mj` table
|
|
57
|
+
* (V202605040300__v5.33.x__Unblock_PostgreSQL_End_To_End.pg-only.sql), and no PG counterpart of
|
|
58
|
+
* the procedure exists — the release-time converter leaves `CREATE PROCEDURE` unhandled.
|
|
63
59
|
*
|
|
64
|
-
* The
|
|
65
|
-
*
|
|
66
|
-
*
|
|
60
|
+
* The WHERE re-checks every eligibility condition (the same predicate as the procedure), so the
|
|
61
|
+
* increment and the guard are one atomic statement: concurrent redemptions of a single-use link
|
|
62
|
+
* serialize on the row lock and exactly one matches. `RETURNING ID` yields the row iff the guard
|
|
63
|
+
* matched. The invite ID MUST be bound by the caller as `$1` — it is never interpolated.
|
|
67
64
|
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* SELECT returns the matched row(s) regardless of trigger behavior.
|
|
72
|
-
*
|
|
73
|
-
* **PostgreSQL** — the `UPDATE … WHERE` guard IS itself the atomic single-use
|
|
74
|
-
* gate: the row is locked for the UPDATE's duration, so concurrent redemptions
|
|
75
|
-
* serialize and only the first matching `Status='Active' AND UseCount < MaxUses`
|
|
76
|
-
* wins; `RETURNING` yields the row iff the guard matched (equivalent to the SS
|
|
77
|
-
* `OUTPUT`-into-table win-detect). PascalCase identifiers are auto-quoted by
|
|
78
|
-
* `PostgreSQLDataProvider.ExecuteSQL`, so the table is passed unquoted (`schema.table`).
|
|
79
|
-
*
|
|
80
|
-
* `qualifiedTable` is asserted to match the dialect's whitelist pattern before
|
|
81
|
-
* interpolation. The caller derives it from `EntityInfo` (never user input), so
|
|
82
|
-
* this is defense-in-depth: even a future careless caller cannot turn this into
|
|
83
|
-
* an injection vector — a non-conforming table throws.
|
|
84
|
-
*
|
|
85
|
-
* @param qualifiedTable `[schema].[table]` (sqlserver) or `schema.table` (postgresql) for MagicLinkInvite
|
|
86
|
-
* @param dialect target SQL dialect (defaults to `'sqlserver'`)
|
|
65
|
+
* `qualifiedTable` is `schema.table` unquoted (PostgreSQLDataProvider.ExecuteSQL auto-quotes the
|
|
66
|
+
* PascalCase identifiers) and is asserted against a whitelist before interpolation — the caller
|
|
67
|
+
* never passes user input, so this is defense-in-depth.
|
|
87
68
|
*/
|
|
88
|
-
export declare function
|
|
69
|
+
export declare function buildConsumeInvitePostgresSQL(qualifiedTable: string): string;
|
|
89
70
|
/**
|
|
90
71
|
* Pure scope-union: appends `next` to `prior` unless an entry from the same invite
|
|
91
72
|
* is already present (dedup by inviteId). This is how a session accumulates the union
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magicLinkCore.d.ts","sourceRoot":"","sources":["../../../src/auth/magicLink/magicLinkCore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3F,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,WAAW,CAAC;AAEhD,iEAAiE;AACjE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,OAAO,CAST;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,SAAS,MAAM,EAAE,GACpC,OAAO,CAOT;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,eAAe,CAAA;CAAE,CAezH;
|
|
1
|
+
{"version":3,"file":"magicLinkCore.d.ts","sourceRoot":"","sources":["../../../src/auth/magicLink/magicLinkCore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3F,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,WAAW,CAAC;AAEhD,iEAAiE;AACjE,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,OAAO,CAST;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,kBAAkB,EAAE,MAAM,EAC1B,kBAAkB,EAAE,SAAS,MAAM,EAAE,GACpC,OAAO,CAOT;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,eAAe,CAAA;CAAE,CAezH;AAKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,6BAA6B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAY5E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAM/H;AAED,8CAA8C;AAC9C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,kBAAkB,CA2BrB"}
|
|
@@ -79,68 +79,36 @@ export function evaluateInvite(invite, nowMs) {
|
|
|
79
79
|
}
|
|
80
80
|
return { ok: true };
|
|
81
81
|
}
|
|
82
|
-
/** SQL Server table identifier — bracket-quoted `[schema].[table]` (word chars only). */
|
|
83
|
-
const QUALIFIED_TABLE_PATTERN = /^\[\w+\]\.\[\w+\]$/;
|
|
84
82
|
/** PostgreSQL table identifier — `schema.table` (word chars only); auto-quoted downstream. */
|
|
85
83
|
const QUALIFIED_TABLE_PATTERN_PG = /^\w+\.\w+$/;
|
|
86
84
|
/**
|
|
87
|
-
* Builds the atomic compare-and-swap UPDATE that consumes one use of an invite
|
|
88
|
-
* in the given SQL dialect.
|
|
85
|
+
* Builds the PostgreSQL atomic compare-and-swap UPDATE that consumes one use of an invite.
|
|
89
86
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* Server, `RETURNING` on PostgreSQL) so it can detect a win (exactly one row).
|
|
87
|
+
* PostgreSQL only. SQL Server consumes through the granted `spConsumeMagicLinkInvite` procedure,
|
|
88
|
+
* because its runtime roles are never granted table DML (#4753). PostgreSQL needs neither: its
|
|
89
|
+
* runtime roles hold INSERT/UPDATE/DELETE on every `__mj` table
|
|
90
|
+
* (V202605040300__v5.33.x__Unblock_PostgreSQL_End_To_End.pg-only.sql), and no PG counterpart of
|
|
91
|
+
* the procedure exists — the release-time converter leaves `CREATE PROCEDURE` unhandled.
|
|
96
92
|
*
|
|
97
|
-
* The
|
|
98
|
-
*
|
|
99
|
-
*
|
|
93
|
+
* The WHERE re-checks every eligibility condition (the same predicate as the procedure), so the
|
|
94
|
+
* increment and the guard are one atomic statement: concurrent redemptions of a single-use link
|
|
95
|
+
* serialize on the row lock and exactly one matches. `RETURNING ID` yields the row iff the guard
|
|
96
|
+
* matched. The invite ID MUST be bound by the caller as `$1` — it is never interpolated.
|
|
100
97
|
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
* SELECT returns the matched row(s) regardless of trigger behavior.
|
|
105
|
-
*
|
|
106
|
-
* **PostgreSQL** — the `UPDATE … WHERE` guard IS itself the atomic single-use
|
|
107
|
-
* gate: the row is locked for the UPDATE's duration, so concurrent redemptions
|
|
108
|
-
* serialize and only the first matching `Status='Active' AND UseCount < MaxUses`
|
|
109
|
-
* wins; `RETURNING` yields the row iff the guard matched (equivalent to the SS
|
|
110
|
-
* `OUTPUT`-into-table win-detect). PascalCase identifiers are auto-quoted by
|
|
111
|
-
* `PostgreSQLDataProvider.ExecuteSQL`, so the table is passed unquoted (`schema.table`).
|
|
112
|
-
*
|
|
113
|
-
* `qualifiedTable` is asserted to match the dialect's whitelist pattern before
|
|
114
|
-
* interpolation. The caller derives it from `EntityInfo` (never user input), so
|
|
115
|
-
* this is defense-in-depth: even a future careless caller cannot turn this into
|
|
116
|
-
* an injection vector — a non-conforming table throws.
|
|
117
|
-
*
|
|
118
|
-
* @param qualifiedTable `[schema].[table]` (sqlserver) or `schema.table` (postgresql) for MagicLinkInvite
|
|
119
|
-
* @param dialect target SQL dialect (defaults to `'sqlserver'`)
|
|
98
|
+
* `qualifiedTable` is `schema.table` unquoted (PostgreSQLDataProvider.ExecuteSQL auto-quotes the
|
|
99
|
+
* PascalCase identifiers) and is asserted against a whitelist before interpolation — the caller
|
|
100
|
+
* never passes user input, so this is defense-in-depth.
|
|
120
101
|
*/
|
|
121
|
-
export function
|
|
122
|
-
if (
|
|
123
|
-
|
|
124
|
-
throw new Error(`buildConsumeInviteSQL: refusing to build SQL for non-whitelisted table identifier '${qualifiedTable}'.`);
|
|
125
|
-
}
|
|
126
|
-
return (`UPDATE ${qualifiedTable} ` +
|
|
127
|
-
`SET UseCount = UseCount + 1, ` +
|
|
128
|
-
`ConsumedAt = COALESCE(ConsumedAt, (now() AT TIME ZONE 'utc')), ` +
|
|
129
|
-
`Status = CASE WHEN UseCount + 1 >= MaxUses THEN 'Consumed' ELSE Status END ` +
|
|
130
|
-
`WHERE ID = $1 AND Status = 'Active' AND UseCount < MaxUses AND ExpiresAt > (now() AT TIME ZONE 'utc') ` +
|
|
131
|
-
`RETURNING ID;`);
|
|
132
|
-
}
|
|
133
|
-
if (!QUALIFIED_TABLE_PATTERN.test(qualifiedTable)) {
|
|
134
|
-
throw new Error(`buildConsumeInviteSQL: refusing to build SQL for non-whitelisted table identifier '${qualifiedTable}'.`);
|
|
102
|
+
export function buildConsumeInvitePostgresSQL(qualifiedTable) {
|
|
103
|
+
if (!QUALIFIED_TABLE_PATTERN_PG.test(qualifiedTable)) {
|
|
104
|
+
throw new Error(`buildConsumeInvitePostgresSQL: refusing to build SQL for non-whitelisted table identifier '${qualifiedTable}'.`);
|
|
135
105
|
}
|
|
136
|
-
return (`
|
|
137
|
-
`UPDATE ${qualifiedTable} ` +
|
|
106
|
+
return (`UPDATE ${qualifiedTable} ` +
|
|
138
107
|
`SET UseCount = UseCount + 1, ` +
|
|
139
|
-
`ConsumedAt = COALESCE(ConsumedAt,
|
|
108
|
+
`ConsumedAt = COALESCE(ConsumedAt, (now() AT TIME ZONE 'utc')), ` +
|
|
140
109
|
`Status = CASE WHEN UseCount + 1 >= MaxUses THEN 'Consumed' ELSE Status END ` +
|
|
141
|
-
`
|
|
142
|
-
`
|
|
143
|
-
`SELECT ID FROM @consumed;`);
|
|
110
|
+
`WHERE ID = $1 AND Status = 'Active' AND UseCount < MaxUses AND ExpiresAt > (now() AT TIME ZONE 'utc') ` +
|
|
111
|
+
`RETURNING ID;`);
|
|
144
112
|
}
|
|
145
113
|
/**
|
|
146
114
|
* Pure scope-union: appends `next` to `prior` unless an entry from the same invite
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magicLinkCore.js","sourceRoot":"","sources":["../../../src/auth/magicLink/magicLinkCore.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"magicLinkCore.js","sourceRoot":"","sources":["../../../src/auth/magicLink/magicLinkCore.ts"],"names":[],"mappings":"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"}
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAkB,MAAM,MAAM,CAAC;AAE/C,OAAO,GAAG,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAGvC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAkB,MAAM,MAAM,CAAC;AAE/C,OAAO,GAAG,MAAM,OAAO,CAAC;AAUxB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIzD,OAAO,KAAK,EAAE,cAAc,EAAmC,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAgH,MAAM,sBAAsB,CAAC;AAgV1K;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,GACzB,aAAa,MAAM,EACnB,iBAAqB,EACrB,aAAa,cAAc,EAAE,EAC7B,gBAAgB,MAAM,EACtB,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,iBAAiB,cAAc,EAC/B,MAAM,eAAe,KACpB,OAAO,CAAC,WAAW,CA6NrB,CAAC;AAwDF;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,cAAc,EAAE,GAC5B,cAAc,CA6DhB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GACzB,6CAA6C;IAAE,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC;IAAC,WAAW,EAAE,cAAc,EAAE,CAAA;CAAE,MAC1I,SAAS;IAAE,GAAG,EAAE,eAAe,CAAA;CAAE;;;;;kBA0Cb,oBAAoB;cAAQ,YAAY,GAAG,WAAW;;EAThF,CAAC"}
|
package/dist/context.js
CHANGED
|
@@ -8,7 +8,8 @@ import { CloneUserForSessionContext } from './auth/sessionUserClone.js';
|
|
|
8
8
|
import { GetAPIKeyActingContextResolver } from './auth/actingContextResolver.js';
|
|
9
9
|
import { TokenExpiredError, AuthProviderFactory } from '@memberjunction/auth-providers';
|
|
10
10
|
import { authCache } from './cache.js';
|
|
11
|
-
import { userEmailMap, apiKey, mj_core_schema } from './config.js';
|
|
11
|
+
import { userEmailMap, apiKey, mj_core_schema, configInfo } from './config.js';
|
|
12
|
+
import { BuildPostgreSQLConnectionConfig, PostgreSQLReadOnlyPool, ResolvePostgreSQLEndpoint, ResolvePostgreSQLReadOnlyCredentials } from './postgresqlPoolSettings.js';
|
|
12
13
|
import { buildBoundaryLogPayload } from './logging/boundaryLogPayload.js';
|
|
13
14
|
import { StartupLogger } from './logging/StartupLogger.js';
|
|
14
15
|
import { GetReadOnlyDataSource, GetReadWriteDataSource } from './util.js';
|
|
@@ -675,13 +676,8 @@ async function createPerRequestProviders(dataSource, dataSources) {
|
|
|
675
676
|
*/
|
|
676
677
|
async function createPostgresProvider() {
|
|
677
678
|
const { PostgreSQLDataProvider, PostgreSQLProviderConfigData } = await import('@memberjunction/postgresql-dataprovider');
|
|
678
|
-
const pgHost = process.env.PG_HOST || process.env.DB_HOST || 'localhost';
|
|
679
|
-
const pgPort = parseInt(process.env.PG_PORT || process.env.DB_PORT || '5432', 10);
|
|
680
|
-
const pgUser = process.env.PG_USERNAME || process.env.DB_USERNAME || 'postgres';
|
|
681
|
-
const pgPass = process.env.PG_PASSWORD || process.env.DB_PASSWORD || '';
|
|
682
|
-
const pgDatabase = process.env.PG_DATABASE || process.env.DB_DATABASE || '';
|
|
683
679
|
const pgProvider = new PostgreSQLDataProvider();
|
|
684
|
-
const pgConfig = new PostgreSQLProviderConfigData(
|
|
680
|
+
const pgConfig = new PostgreSQLProviderConfigData(BuildPostgreSQLConnectionConfig(ResolvePostgreSQLEndpoint(), configInfo.databaseSettings, 'api'), mj_core_schema, 0, undefined, undefined, false);
|
|
685
681
|
// Share the connection pool from the primary provider to avoid pool exhaustion
|
|
686
682
|
const primaryProvider = Metadata.Provider; // global-provider-ok: bootstrap (per-connection PG pool sharing)
|
|
687
683
|
if (primaryProvider?.DatabaseConnection) {
|
|
@@ -693,29 +689,21 @@ async function createPostgresProvider() {
|
|
|
693
689
|
return pgProvider;
|
|
694
690
|
}
|
|
695
691
|
/**
|
|
696
|
-
*
|
|
697
|
-
*
|
|
692
|
+
* Creates a read-only PostgreSQL per-request provider on the read-only pool MJAPI opened at
|
|
693
|
+
* startup with the read-only login. Returns null when no read-only login is configured, so the
|
|
694
|
+
* caller never falls back to the read-write pool.
|
|
698
695
|
*/
|
|
699
696
|
async function tryCreateReadOnlyPostgresProvider() {
|
|
700
|
-
const
|
|
701
|
-
const
|
|
702
|
-
if (!
|
|
697
|
+
const readOnlyPool = PostgreSQLReadOnlyPool.Instance.Pool;
|
|
698
|
+
const credentials = ResolvePostgreSQLReadOnlyCredentials(configInfo);
|
|
699
|
+
if (!readOnlyPool || !credentials) {
|
|
703
700
|
return null;
|
|
704
701
|
}
|
|
705
702
|
try {
|
|
706
703
|
const { PostgreSQLDataProvider, PostgreSQLProviderConfigData } = await import('@memberjunction/postgresql-dataprovider');
|
|
707
|
-
const pgHost = process.env.PG_HOST || process.env.DB_HOST || 'localhost';
|
|
708
|
-
const pgPort = parseInt(process.env.PG_PORT || process.env.DB_PORT || '5432', 10);
|
|
709
|
-
const pgDatabase = process.env.PG_DATABASE || process.env.DB_DATABASE || '';
|
|
710
704
|
const roProvider = new PostgreSQLDataProvider();
|
|
711
|
-
const roConfig = new PostgreSQLProviderConfigData({
|
|
712
|
-
|
|
713
|
-
if (primaryProvider?.DatabaseConnection) {
|
|
714
|
-
await roProvider.ConfigWithSharedPool(roConfig, primaryProvider.DatabaseConnection);
|
|
715
|
-
}
|
|
716
|
-
else {
|
|
717
|
-
await roProvider.Config(roConfig);
|
|
718
|
-
}
|
|
705
|
+
const roConfig = new PostgreSQLProviderConfigData(BuildPostgreSQLConnectionConfig({ ...ResolvePostgreSQLEndpoint(), ...credentials }, configInfo.databaseSettings, 'read-only'), mj_core_schema, 0, undefined, undefined, false);
|
|
706
|
+
await roProvider.ConfigWithSharedPool(roConfig, readOnlyPool);
|
|
719
707
|
return roProvider;
|
|
720
708
|
}
|
|
721
709
|
catch (_err) {
|