@de-otio/trellis 0.10.7 → 0.10.8
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/lambda/post-confirmation.d.ts.map +1 -1
- package/dist/lambda/post-confirmation.js +7 -3
- package/dist/lambda/post-confirmation.js.map +1 -1
- package/dist/lambda/pre-token-generation.d.ts.map +1 -1
- package/dist/lambda/pre-token-generation.js +7 -2
- package/dist/lambda/pre-token-generation.js.map +1 -1
- package/dist/lib/lambda-prisma.d.ts +26 -2
- package/dist/lib/lambda-prisma.d.ts.map +1 -1
- package/dist/lib/lambda-prisma.js +76 -4
- package/dist/lib/lambda-prisma.js.map +1 -1
- package/package.json +1 -1
- package/src/lambda/post-confirmation.ts +25 -17
- package/src/lambda/pre-token-generation.ts +10 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-confirmation.d.ts","sourceRoot":"","sources":["../../src/lambda/post-confirmation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAEV,8BAA8B,EAC/B,MAAM,YAAY,CAAC;AA0GpB,eAAO,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"post-confirmation.d.ts","sourceRoot":"","sources":["../../src/lambda/post-confirmation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAEV,8BAA8B,EAC/B,MAAM,YAAY,CAAC;AA0GpB,eAAO,MAAM,OAAO,EAAE,8BAsHrB,CAAC"}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* No PII (email body, group claim contents, raw IdP attributes) is logged.
|
|
30
30
|
*/
|
|
31
31
|
import { Logger } from "@aws-lambda-powertools/logger";
|
|
32
|
-
import { getLambdaPrisma as getPrisma } from "../lib/lambda-prisma.js";
|
|
32
|
+
import { getLambdaPrisma as getPrisma, withLambdaDbBreaker } from "../lib/lambda-prisma.js";
|
|
33
33
|
import { Prisma, } from "@prisma/client";
|
|
34
34
|
import { createClaimsCacheFromEnv } from "../lib/auth/claims-cache.js";
|
|
35
35
|
import { deriveEmailDomain } from "../lib/tenant/derive-domain.js";
|
|
@@ -139,7 +139,11 @@ export const handler = async (event) => {
|
|
|
139
139
|
const invitationCode = event.request.clientMetadata?.invitationCode?.trim() || undefined;
|
|
140
140
|
const requestedMethod = parseSignupMethodHint(event.request.clientMetadata?.signupMethod);
|
|
141
141
|
const db = await getPrisma();
|
|
142
|
-
|
|
142
|
+
// The provisioning transaction is the longest-held connection in a signup
|
|
143
|
+
// burst (multi-statement, up to the 8s timeout). Run it under the Lambda
|
|
144
|
+
// circuit breaker so a saturated DB trips fast-fail instead of being retried
|
|
145
|
+
// into an already-exhausted instance.
|
|
146
|
+
const result = await withLambdaDbBreaker(() => withHandleConflictRetry(() => db.$transaction(async (tx) => provisionUserAndTenancy(tx, {
|
|
143
147
|
cognitoSub,
|
|
144
148
|
email,
|
|
145
149
|
emailVerified: attrs.email_verified,
|
|
@@ -150,7 +154,7 @@ export const handler = async (event) => {
|
|
|
150
154
|
providedHandle: attrs["custom:handle"],
|
|
151
155
|
invitationCode,
|
|
152
156
|
requestedMethod,
|
|
153
|
-
}), { timeout: 8000 }));
|
|
157
|
+
}), { timeout: 8000 })), "post_confirmation.provision");
|
|
154
158
|
if (ageTier === "CHILD") {
|
|
155
159
|
const guardianEmail = attrs["custom:guardianEmail"]?.toLowerCase();
|
|
156
160
|
if (guardianEmail) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-confirmation.js","sourceRoot":"","sources":["../../src/lambda/post-confirmation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"post-confirmation.js","sourceRoot":"","sources":["../../src/lambda/post-confirmation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-token-generation.d.ts","sourceRoot":"","sources":["../../src/lambda/pre-token-generation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAEV,kCAAkC,EACnC,MAAM,YAAY,CAAC;AAwJpB,eAAO,MAAM,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pre-token-generation.d.ts","sourceRoot":"","sources":["../../src/lambda/pre-token-generation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAEV,kCAAkC,EACnC,MAAM,YAAY,CAAC;AAwJpB,eAAO,MAAM,OAAO,EAAE,kCAyHrB,CAAC"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* "role_refreshed") and the opaque cognitoSub.
|
|
20
20
|
*/
|
|
21
21
|
import { Logger } from "@aws-lambda-powertools/logger";
|
|
22
|
-
import { getLambdaPrisma as getPrisma } from "../lib/lambda-prisma.js";
|
|
22
|
+
import { getLambdaPrisma as getPrisma, withLambdaDbBreaker } from "../lib/lambda-prisma.js";
|
|
23
23
|
import { createClaimsCacheFromEnv, DEFAULT_CACHE_TTL_SECONDS, } from "../lib/auth/claims-cache.js";
|
|
24
24
|
import { resolveTenantRole } from "../lib/tenant/resolve-role.js";
|
|
25
25
|
const logger = new Logger({ serviceName: "pre-token-generation" });
|
|
@@ -140,6 +140,11 @@ export const handler = async (event) => {
|
|
|
140
140
|
let claims = await claimsCache.get(cognitoSub);
|
|
141
141
|
let cacheHit = !!claims;
|
|
142
142
|
if (!claims) {
|
|
143
|
+
// RDS is consulted only on a genuine cache miss. Emit a filterable event so
|
|
144
|
+
// a miss-rate metric can be derived (a miss storm — post-deploy, correlated
|
|
145
|
+
// TTL expiry, or the first-login wave after a signup burst — is the path
|
|
146
|
+
// that can exhaust DB connections; the warm cache is the primary defence).
|
|
147
|
+
logger.info("pretoken.cache_miss", { cognitoSub, federated });
|
|
143
148
|
const db = await getPrisma();
|
|
144
149
|
// Read the user's last explicit tenant preference, even from an expired
|
|
145
150
|
// cache row, so an admin-side switch-tenant call survives cache TTL.
|
|
@@ -153,7 +158,7 @@ export const handler = async (event) => {
|
|
|
153
158
|
error: err?.code ?? "unknown",
|
|
154
159
|
});
|
|
155
160
|
}
|
|
156
|
-
const loaded = await loadFromRds(db, cognitoSub, federated, preferredTenantId);
|
|
161
|
+
const loaded = await withLambdaDbBreaker(() => loadFromRds(db, cognitoSub, federated, preferredTenantId), "pretoken.load_from_rds");
|
|
157
162
|
if (!loaded.user) {
|
|
158
163
|
logger.warn("pretoken.drift", { cognitoSub });
|
|
159
164
|
claims = { ...DRIFT_CLAIMS };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-token-generation.js","sourceRoot":"","sources":["../../src/lambda/pre-token-generation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEvD,OAAO,EAAE,eAAe,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"pre-token-generation.js","sourceRoot":"","sources":["../../src/lambda/pre-token-generation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import { PrismaClient } from "@prisma/client";
|
|
2
|
+
import { DatabaseCircuitBreaker } from "./database-circuit-breaker.js";
|
|
3
|
+
/**
|
|
4
|
+
* Per-execution-environment circuit breaker for the Lambda DB path.
|
|
5
|
+
*
|
|
6
|
+
* The request path (`DatabaseConnectionManager`) has a breaker; Lambda handlers
|
|
7
|
+
* did not — so under DB saturation they would keep retrying into a saturated
|
|
8
|
+
* instance and amplify the incident. Opening the breaker makes a saturated
|
|
9
|
+
* environment fail fast (no connect-timeout wait, no slot held) until a cooldown
|
|
10
|
+
* probe succeeds. Module scope = one warm Lambda environment, the right blast
|
|
11
|
+
* radius. Wrap every RDS access in a handler with `withLambdaDbBreaker`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const lambdaDbBreaker: DatabaseCircuitBreaker;
|
|
14
|
+
/**
|
|
15
|
+
* Run a unit of DB work under the Lambda circuit breaker. Use around every RDS
|
|
16
|
+
* access in a Lambda handler so connection-exhaustion failures trip the breaker
|
|
17
|
+
* instead of being retried into a saturated instance. When the breaker is OPEN
|
|
18
|
+
* the call throws immediately (message begins "Circuit breaker is OPEN").
|
|
19
|
+
*/
|
|
20
|
+
export declare function withLambdaDbBreaker<T>(fn: () => Promise<T>, operation?: string): Promise<T>;
|
|
2
21
|
/**
|
|
3
22
|
* Build (and cache) a PrismaClient for standalone Lambda handlers.
|
|
4
23
|
*
|
|
@@ -8,9 +27,14 @@ import { PrismaClient } from "@prisma/client";
|
|
|
8
27
|
* `DatabaseConnectionManager` (`ssl: { rejectUnauthorized: false }`); Lambda
|
|
9
28
|
* handlers must do the same. Prisma 7 supplies the connection through a pg
|
|
10
29
|
* driver adapter (the old `datasources` constructor option is gone), so the
|
|
11
|
-
* `ssl` option
|
|
30
|
+
* `ssl` option and the size cap go on the pool config.
|
|
31
|
+
*
|
|
32
|
+
* The pool is passed to `PrismaPg` as an explicit `pg.Pool` (NOT a
|
|
33
|
+
* connection-string config) because the pool is the only place `max` takes
|
|
34
|
+
* effect — see the knobs comment above.
|
|
12
35
|
*
|
|
13
|
-
* Cached at module scope so warm invocations reuse the client
|
|
36
|
+
* Cached at module scope so warm invocations reuse the client (and its single
|
|
37
|
+
* connection).
|
|
14
38
|
*/
|
|
15
39
|
export declare function getLambdaPrisma(): Promise<PrismaClient>;
|
|
16
40
|
//# sourceMappingURL=lambda-prisma.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda-prisma.d.ts","sourceRoot":"","sources":["../../src/lib/lambda-prisma.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lambda-prisma.d.ts","sourceRoot":"","sources":["../../src/lib/lambda-prisma.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAoCvE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,wBAO1B,CAAC;AAEH;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CA0B7D"}
|
|
@@ -1,7 +1,64 @@
|
|
|
1
|
+
import { Logger } from "@aws-lambda-powertools/logger";
|
|
1
2
|
import { getSecret } from "@aws-lambda-powertools/parameters/secrets";
|
|
2
3
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
3
4
|
import { PrismaClient } from "@prisma/client";
|
|
5
|
+
import { Pool } from "pg";
|
|
6
|
+
import { DatabaseCircuitBreaker } from "./database-circuit-breaker.js";
|
|
7
|
+
const logger = new Logger({ serviceName: "lambda-prisma" });
|
|
8
|
+
/**
|
|
9
|
+
* Operational knobs — env-configurable with safe defaults (threshold-secrecy
|
|
10
|
+
* rule: never compile operational limits into the public tarball).
|
|
11
|
+
*
|
|
12
|
+
* Why the pool MUST be capped here: each warm Lambda execution environment holds
|
|
13
|
+
* its OWN pg pool, and every concurrent environment shares the RDS
|
|
14
|
+
* `max_connections` budget (~107 usable on a t4g.micro). Under a signup burst —
|
|
15
|
+
* or a `pre-token` cache-miss storm — an unbounded pool lets a single function
|
|
16
|
+
* exhaust the instance, and Postgres then rejects connections from EVERY client
|
|
17
|
+
* (a global outage, not just failed signups). `?connection_limit=1` in the
|
|
18
|
+
* connection URL is a **no-op** under `@prisma/adapter-pg` (it is a Prisma-engine
|
|
19
|
+
* parameter the `pg` driver ignores), so the cap is set on the pool object — the
|
|
20
|
+
* only place it takes effect. See
|
|
21
|
+
* trellis-internal `analysis/db-connection-management/signup-burst-connection-exhaustion.md`.
|
|
22
|
+
*/
|
|
23
|
+
const DEFAULT_POOL_MAX = 1;
|
|
24
|
+
const DEFAULT_CONNECT_TIMEOUT_MS = 2000;
|
|
25
|
+
const DEFAULT_IDLE_TIMEOUT_MS = 10_000;
|
|
26
|
+
const DEFAULT_BREAKER_THRESHOLD = 5;
|
|
27
|
+
const DEFAULT_BREAKER_COOLDOWN_MS = 30_000;
|
|
4
28
|
let prisma = null;
|
|
29
|
+
let pool = null;
|
|
30
|
+
/**
|
|
31
|
+
* Per-execution-environment circuit breaker for the Lambda DB path.
|
|
32
|
+
*
|
|
33
|
+
* The request path (`DatabaseConnectionManager`) has a breaker; Lambda handlers
|
|
34
|
+
* did not — so under DB saturation they would keep retrying into a saturated
|
|
35
|
+
* instance and amplify the incident. Opening the breaker makes a saturated
|
|
36
|
+
* environment fail fast (no connect-timeout wait, no slot held) until a cooldown
|
|
37
|
+
* probe succeeds. Module scope = one warm Lambda environment, the right blast
|
|
38
|
+
* radius. Wrap every RDS access in a handler with `withLambdaDbBreaker`.
|
|
39
|
+
*/
|
|
40
|
+
export const lambdaDbBreaker = new DatabaseCircuitBreaker({
|
|
41
|
+
failureThreshold: Number(process.env.LAMBDA_DATABASE_BREAKER_THRESHOLD ?? DEFAULT_BREAKER_THRESHOLD),
|
|
42
|
+
cooldownMs: Number(process.env.LAMBDA_DATABASE_BREAKER_COOLDOWN_MS ?? DEFAULT_BREAKER_COOLDOWN_MS),
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* Run a unit of DB work under the Lambda circuit breaker. Use around every RDS
|
|
46
|
+
* access in a Lambda handler so connection-exhaustion failures trip the breaker
|
|
47
|
+
* instead of being retried into a saturated instance. When the breaker is OPEN
|
|
48
|
+
* the call throws immediately (message begins "Circuit breaker is OPEN").
|
|
49
|
+
*/
|
|
50
|
+
export async function withLambdaDbBreaker(fn, operation) {
|
|
51
|
+
try {
|
|
52
|
+
return await lambdaDbBreaker.execute(fn, { operation });
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
if (err instanceof Error &&
|
|
56
|
+
err.message.startsWith("Circuit breaker is OPEN")) {
|
|
57
|
+
logger.warn("lambda_db.breaker_open", { operation });
|
|
58
|
+
}
|
|
59
|
+
throw err;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
5
62
|
/**
|
|
6
63
|
* Build (and cache) a PrismaClient for standalone Lambda handlers.
|
|
7
64
|
*
|
|
@@ -11,18 +68,33 @@ let prisma = null;
|
|
|
11
68
|
* `DatabaseConnectionManager` (`ssl: { rejectUnauthorized: false }`); Lambda
|
|
12
69
|
* handlers must do the same. Prisma 7 supplies the connection through a pg
|
|
13
70
|
* driver adapter (the old `datasources` constructor option is gone), so the
|
|
14
|
-
* `ssl` option
|
|
71
|
+
* `ssl` option and the size cap go on the pool config.
|
|
72
|
+
*
|
|
73
|
+
* The pool is passed to `PrismaPg` as an explicit `pg.Pool` (NOT a
|
|
74
|
+
* connection-string config) because the pool is the only place `max` takes
|
|
75
|
+
* effect — see the knobs comment above.
|
|
15
76
|
*
|
|
16
|
-
* Cached at module scope so warm invocations reuse the client
|
|
77
|
+
* Cached at module scope so warm invocations reuse the client (and its single
|
|
78
|
+
* connection).
|
|
17
79
|
*/
|
|
18
80
|
export async function getLambdaPrisma() {
|
|
19
81
|
if (prisma)
|
|
20
82
|
return prisma;
|
|
21
83
|
const { username, password, host, port, dbname } = (await getSecret(process.env.DB_SECRET_ARN, { transform: "json" }));
|
|
22
|
-
|
|
23
|
-
|
|
84
|
+
// When an RDS Proxy is provisioned, the infra injects its endpoint here so the
|
|
85
|
+
// Lambda connects through the proxy (which multiplexes and caps the
|
|
86
|
+
// connections the DB ever sees); fall back to the direct instance endpoint
|
|
87
|
+
// when unset, so the default deployment is unchanged.
|
|
88
|
+
const dbHost = process.env.LAMBDA_DATABASE_PROXY_HOST || host;
|
|
89
|
+
pool = new Pool({
|
|
90
|
+
connectionString: `postgresql://${username}:${encodeURIComponent(password)}@${dbHost}:${port}/${dbname}`,
|
|
24
91
|
ssl: { rejectUnauthorized: false },
|
|
92
|
+
max: Number(process.env.LAMBDA_DATABASE_POOL_MAX ?? DEFAULT_POOL_MAX),
|
|
93
|
+
connectionTimeoutMillis: Number(process.env.LAMBDA_DATABASE_CONNECT_TIMEOUT_MS ?? DEFAULT_CONNECT_TIMEOUT_MS),
|
|
94
|
+
idleTimeoutMillis: DEFAULT_IDLE_TIMEOUT_MS,
|
|
95
|
+
allowExitOnIdle: false,
|
|
25
96
|
});
|
|
97
|
+
const adapter = new PrismaPg(pool);
|
|
26
98
|
prisma = new PrismaClient({ adapter });
|
|
27
99
|
return prisma;
|
|
28
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda-prisma.js","sourceRoot":"","sources":["../../src/lib/lambda-prisma.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"lambda-prisma.js","sourceRoot":"","sources":["../../src/lib/lambda-prisma.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -34,7 +34,7 @@ import type {
|
|
|
34
34
|
PostConfirmationTriggerHandler,
|
|
35
35
|
} from "aws-lambda";
|
|
36
36
|
import { Logger } from "@aws-lambda-powertools/logger";
|
|
37
|
-
import { getLambdaPrisma as getPrisma } from "../lib/lambda-prisma.js";
|
|
37
|
+
import { getLambdaPrisma as getPrisma, withLambdaDbBreaker } from "../lib/lambda-prisma.js";
|
|
38
38
|
import {
|
|
39
39
|
PrismaClient,
|
|
40
40
|
Prisma,
|
|
@@ -182,22 +182,30 @@ export const handler: PostConfirmationTriggerHandler = async (event) => {
|
|
|
182
182
|
|
|
183
183
|
const db = await getPrisma();
|
|
184
184
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
185
|
+
// The provisioning transaction is the longest-held connection in a signup
|
|
186
|
+
// burst (multi-statement, up to the 8s timeout). Run it under the Lambda
|
|
187
|
+
// circuit breaker so a saturated DB trips fast-fail instead of being retried
|
|
188
|
+
// into an already-exhausted instance.
|
|
189
|
+
const result = await withLambdaDbBreaker(
|
|
190
|
+
() =>
|
|
191
|
+
withHandleConflictRetry(() =>
|
|
192
|
+
db.$transaction(
|
|
193
|
+
async (tx) => provisionUserAndTenancy(tx, {
|
|
194
|
+
cognitoSub,
|
|
195
|
+
email,
|
|
196
|
+
emailVerified: attrs.email_verified,
|
|
197
|
+
federated,
|
|
198
|
+
idpGroups,
|
|
199
|
+
dateOfBirth,
|
|
200
|
+
ageTier,
|
|
201
|
+
providedHandle: attrs["custom:handle"],
|
|
202
|
+
invitationCode,
|
|
203
|
+
requestedMethod,
|
|
204
|
+
}),
|
|
205
|
+
{ timeout: 8000 },
|
|
206
|
+
),
|
|
207
|
+
),
|
|
208
|
+
"post_confirmation.provision",
|
|
201
209
|
);
|
|
202
210
|
|
|
203
211
|
if (ageTier === "CHILD") {
|
|
@@ -25,7 +25,7 @@ import type {
|
|
|
25
25
|
} from "aws-lambda";
|
|
26
26
|
import { Logger } from "@aws-lambda-powertools/logger";
|
|
27
27
|
import { PrismaClient, type TenantRole } from "@prisma/client";
|
|
28
|
-
import { getLambdaPrisma as getPrisma } from "../lib/lambda-prisma.js";
|
|
28
|
+
import { getLambdaPrisma as getPrisma, withLambdaDbBreaker } from "../lib/lambda-prisma.js";
|
|
29
29
|
import {
|
|
30
30
|
ClaimsCache,
|
|
31
31
|
createClaimsCacheFromEnv,
|
|
@@ -194,6 +194,11 @@ export const handler: PreTokenGenerationV2TriggerHandler = async (event) => {
|
|
|
194
194
|
let cacheHit = !!claims;
|
|
195
195
|
|
|
196
196
|
if (!claims) {
|
|
197
|
+
// RDS is consulted only on a genuine cache miss. Emit a filterable event so
|
|
198
|
+
// a miss-rate metric can be derived (a miss storm — post-deploy, correlated
|
|
199
|
+
// TTL expiry, or the first-login wave after a signup burst — is the path
|
|
200
|
+
// that can exhaust DB connections; the warm cache is the primary defence).
|
|
201
|
+
logger.info("pretoken.cache_miss", { cognitoSub, federated });
|
|
197
202
|
const db = await getPrisma();
|
|
198
203
|
// Read the user's last explicit tenant preference, even from an expired
|
|
199
204
|
// cache row, so an admin-side switch-tenant call survives cache TTL.
|
|
@@ -206,7 +211,10 @@ export const handler: PreTokenGenerationV2TriggerHandler = async (event) => {
|
|
|
206
211
|
error: (err as { code?: string })?.code ?? "unknown",
|
|
207
212
|
});
|
|
208
213
|
}
|
|
209
|
-
const loaded = await
|
|
214
|
+
const loaded = await withLambdaDbBreaker(
|
|
215
|
+
() => loadFromRds(db, cognitoSub, federated, preferredTenantId),
|
|
216
|
+
"pretoken.load_from_rds",
|
|
217
|
+
);
|
|
210
218
|
|
|
211
219
|
if (!loaded.user) {
|
|
212
220
|
logger.warn("pretoken.drift", { cognitoSub });
|