pipework 0.264.3 → 0.266.0

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/REFERENCE.md +23 -4
  3. package/dist/data/migrate/internal-definitions.d.ts.map +1 -1
  4. package/dist/data/migrate/internal-definitions.js +2 -1
  5. package/dist/data/migrate/internal-definitions.js.map +1 -1
  6. package/dist/index.d.ts +2 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/infra/alerts/sources.d.ts +1 -1
  11. package/dist/infra/alerts/sources.d.ts.map +1 -1
  12. package/dist/infra/alerts/sources.js +27 -10
  13. package/dist/infra/alerts/sources.js.map +1 -1
  14. package/dist/infra/quota/handle.d.ts +27 -3
  15. package/dist/infra/quota/handle.d.ts.map +1 -1
  16. package/dist/infra/quota/handle.js +128 -31
  17. package/dist/infra/quota/handle.js.map +1 -1
  18. package/dist/infra/quota/index.d.ts +1 -1
  19. package/dist/infra/quota/index.d.ts.map +1 -1
  20. package/dist/infra/quota/index.js.map +1 -1
  21. package/dist/infra/quota/schema.d.ts +20 -0
  22. package/dist/infra/quota/schema.d.ts.map +1 -1
  23. package/dist/infra/quota/schema.js +12 -0
  24. package/dist/infra/quota/schema.js.map +1 -1
  25. package/dist/request/context/types.d.ts +2 -0
  26. package/dist/request/context/types.d.ts.map +1 -1
  27. package/dist/request/di/resolve.d.ts +1 -1
  28. package/dist/request/di/resolve.d.ts.map +1 -1
  29. package/dist/request/http/aborted.d.ts +12 -0
  30. package/dist/request/http/aborted.d.ts.map +1 -0
  31. package/dist/request/http/aborted.js +14 -0
  32. package/dist/request/http/aborted.js.map +1 -0
  33. package/dist/request/http/namespace.d.ts +3 -1
  34. package/dist/request/http/namespace.d.ts.map +1 -1
  35. package/dist/request/http/namespace.js +3 -1
  36. package/dist/request/http/namespace.js.map +1 -1
  37. package/dist/request/http/server.d.ts.map +1 -1
  38. package/dist/request/http/server.js +23 -3
  39. package/dist/request/http/server.js.map +1 -1
  40. package/dist/request/http/types.d.ts +1 -0
  41. package/dist/request/http/types.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/src/data/migrate/internal-definitions.ts +2 -1
  44. package/src/index.ts +3 -1
  45. package/src/infra/alerts/sources.ts +27 -10
  46. package/src/infra/quota/handle.ts +157 -35
  47. package/src/infra/quota/index.ts +1 -0
  48. package/src/infra/quota/schema.ts +13 -0
  49. package/src/request/context/types.ts +2 -0
  50. package/src/request/di/resolve.ts +1 -1
  51. package/src/request/http/aborted.ts +15 -0
  52. package/src/request/http/namespace.ts +3 -1
  53. package/src/request/http/server.ts +21 -1
  54. package/src/request/http/types.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/request/http/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/request/http/server.ts"],"names":[],"mappings":"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"}
@@ -172,6 +172,7 @@ export interface ServerConfig {
172
172
  readyPath?: string;
173
173
  healthChecks?: readonly HealthCheck[];
174
174
  transactionPerRequest?: boolean | readonly string[];
175
+ /** Bounds only opening the request's transactions (multi-database setup); it does not time the handler or its statements. A client disconnect, not this, ends a request's running work. */
175
176
  transactionTimeoutMs?: number;
176
177
  /** Maximum request body size in bytes. Forwarded to Fastify (default 1 MiB). A per-route `.route(m, p, { bodyLimit })` overrides this for that route. */
177
178
  bodyLimit?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/request/http/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/request/http/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.264.3",
3
+ "version": "0.266.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -73,8 +73,9 @@ export async function loadInternalDefinitions(
73
73
  }
74
74
 
75
75
  if (blueprint.quota !== undefined) {
76
- const { outboundQuota } = await import('../../infra/quota/schema.js')
76
+ const { outboundQuota, outboundQuotaSpend } = await import('../../infra/quota/schema.js')
77
77
  result['__pipework_outbound_quota'] = outboundQuota
78
+ result['__pipework_outbound_quota_spend'] = outboundQuotaSpend
78
79
  }
79
80
 
80
81
  if (blueprint.storage !== undefined) {
package/src/index.ts CHANGED
@@ -42,6 +42,7 @@ export type { RouteScreen, ScreenedRequest, ScreenRefusal } from './request/di/t
42
42
 
43
43
  export { http } from './request/http/namespace.js'
44
44
  export { createServer } from './request/http/server.js'
45
+ export { RequestAbortedError } from './request/http/aborted.js'
45
46
  export { detectMediaType, resolveMediaType, SNIFF_BYTES } from './request/http/sniff.js'
46
47
  export type { ServerConfig, CorsConfig, SecurityConfig, RateLimitConfig,
47
48
  RateLimitClassesConfig, RateLimitClass, RateLimitWindow, RateLimitRefusal, InternalErrorFault,
@@ -165,7 +166,8 @@ export type { CreditLine, CreditLineConfig, CreditLineCap, CapWindow, LineCrossi
165
166
  Authorization, AuthorizationStatus, Statement, OpenLineOptions, AuthorizeOptions } from './infra/credit-line/index.js'
166
167
  export { quota } from './infra/quota/namespace.js'
167
168
  export { QuotaExhaustedError } from './infra/quota/index.js'
168
- export type { Quota, QuotaConfig, QuotaHeaders, QuotaHeaderInput, QuotaBudget, QuotaState, QuotaCallOptions } from './infra/quota/index.js'
169
+ export type { Quota, QuotaConfig, QuotaHeaders, QuotaHeaderInput, QuotaBudget, QuotaState, QuotaCallOptions,
170
+ QuotaSpend, QuotaWindowSpend, QuotaCallerSpend } from './infra/quota/index.js'
169
171
  export { alerts } from './infra/alerts/namespace.js'
170
172
  export type { Alerts, AlertsConfig, Alert, AlertSeverity, AlertSubject, RaiseOptions as AlertRaiseOptions, DeliveryRow as AlertDeliveryRow,
171
173
  TickResult as AlertsTickResult, AlertSink, AlertDelivery, AlertPayload, AlertEventPayload, AlertDigestPayload, AlertWebhookConfig, MemoryAlertSink, AlertSource,
@@ -387,11 +387,17 @@ function untilText(reset: Date, now: Date): string {
387
387
  return day === now.toISOString().slice(0, 10) ? hhmm : `${day} ${hhmm}`
388
388
  }
389
389
 
390
+ function topCallers(r: Record<string, unknown>): { caller: string; sent: number; refused: number }[] {
391
+ const raw = typeof r['top_callers'] === 'string' ? JSON.parse(r['top_callers']) as unknown : r['top_callers']
392
+ if (!Array.isArray(raw)) return []
393
+ return raw.map((c: { caller: unknown; sent: unknown; refused: unknown }) => ({ caller: String(c.caller), sent: Number(c.sent), refused: Number(c.refused) }))
394
+ }
395
+
390
396
  /**
391
397
  * Raises `quota-exhausted:<key>` while an upstream quota row (needs `quota` configured) has remaining at or
392
398
  * under `floor` (default 0) before its reset, or refused a call since it was last recorded; resolves when the
393
399
  * row recovers or its reset passes. `keys` limits it to those keys (a non-empty array or a RegExp). Conditions
394
- * carry `owner`, `runbook` and a context of `key`, `remaining`, `limit`, `resetAt` and `refused`.
400
+ * carry `owner`, `runbook` and a context of `key`, `remaining`, `limit`, `resetAt`, `refused` and `topCallers` (the three callers that spent the most in the window, from `quota` spend counts).
395
401
  */
396
402
  export function quotaExhaustedSource(options: { owner?: string; runbook?: string; keys?: readonly string[] | RegExp; floor?: number; severity?: AlertSeverity; database?: string } = {}): AlertSource {
397
403
  const floor = options.floor ?? 0
@@ -403,7 +409,7 @@ export function quotaExhaustedSource(options: { owner?: string; runbook?: string
403
409
  throw new Error('[pipework] alerts.source.quotaExhausted keys must not be empty; omit it to watch every key.')
404
410
  }
405
411
  const keyFilter = Array.isArray(keys)
406
- ? sql`AND key IN (SELECT jsonb_array_elements_text(${JSON.stringify([...new Set(keys as readonly string[])])}::jsonb))`
412
+ ? sql`AND q.key IN (SELECT jsonb_array_elements_text(${JSON.stringify([...new Set(keys as readonly string[])])}::jsonb))`
407
413
  : sql``
408
414
  const base = querySource({
409
415
  name: 'quota-exhausted',
@@ -411,19 +417,29 @@ export function quotaExhaustedSource(options: { owner?: string; runbook?: string
411
417
  ...(options.database !== undefined ? { database: options.database } : {}),
412
418
  ...ownerFields(options),
413
419
  query: sql`
414
- SELECT key, remaining, "limit", reset_at,
415
- (remaining > ${floor} AND refused_at IS NOT NULL AND refused_at >= updated_at) AS refused_only,
416
- (refused_at IS NOT NULL AND refused_at >= updated_at) AS refused
417
- FROM outbound_quota
418
- WHERE reset_at > now() ${keyFilter}
419
- AND (remaining <= ${floor} OR (refused_at IS NOT NULL AND refused_at >= updated_at))
420
- ORDER BY key`,
420
+ SELECT q.key, q.remaining, q."limit", q.reset_at,
421
+ (q.remaining > ${floor} AND q.refused_at IS NOT NULL AND q.refused_at >= q.updated_at) AS refused_only,
422
+ (q.refused_at IS NOT NULL AND q.refused_at >= q.updated_at) AS refused,
423
+ COALESCE(top.callers, '[]'::jsonb) AS top_callers
424
+ FROM outbound_quota q
425
+ LEFT JOIN LATERAL (
426
+ SELECT jsonb_agg(jsonb_build_object('caller', caller, 'sent', sent, 'refused', refused)
427
+ ORDER BY sent + refused DESC, caller) AS callers
428
+ FROM (SELECT caller, sent, refused FROM outbound_quota_spend s
429
+ WHERE s.key = q.key AND s.window_end = q.reset_at
430
+ ORDER BY sent + refused DESC, caller LIMIT 3) t
431
+ ) top ON true
432
+ WHERE q.reset_at > now() ${keyFilter}
433
+ AND (q.remaining <= ${floor} OR (q.refused_at IS NOT NULL AND q.refused_at >= q.updated_at))
434
+ ORDER BY q.key`,
421
435
  id: r => String(r['key']),
422
436
  message: r => {
423
437
  const remaining = Number(r['remaining'])
424
438
  const limit = r['limit'] === null ? null : Number(r['limit'])
425
439
  const head = limit === null ? `${String(r['key'])} ${String(remaining)} remaining` : `${String(r['key'])} ${String(remaining)}/${String(limit)}`
426
- return `${head} until ${untilText(new Date(r['reset_at'] as string | Date), new Date())}${r['refused_only'] === true ? '; a call was refused' : ''}`
440
+ const top = topCallers(r)
441
+ const spenders = top.length === 0 ? '' : `; top: ${top.map(c => `${c.caller} ${String(c.sent + c.refused)}`).join(', ')}`
442
+ return `${head} until ${untilText(new Date(r['reset_at'] as string | Date), new Date())}${r['refused_only'] === true ? '; a call was refused' : ''}${spenders}`
427
443
  },
428
444
  subject: r => ({ entity: 'quota', entityId: String(r['key']) }),
429
445
  context: r => ({
@@ -432,6 +448,7 @@ export function quotaExhaustedSource(options: { owner?: string; runbook?: string
432
448
  limit: r['limit'] === null ? null : Number(r['limit']),
433
449
  resetAt: new Date(r['reset_at'] as string | Date).toISOString(),
434
450
  refused: r['refused'] === true,
451
+ topCallers: topCallers(r),
435
452
  }),
436
453
  })
437
454
  if (!(keys instanceof RegExp)) return base
@@ -19,6 +19,8 @@ export interface QuotaBudget {
19
19
  }
20
20
 
21
21
  export interface QuotaConfig<C extends string> {
22
+ /** How many of a key's newest windows keep their per-caller counts; older ones are deleted when a new window starts. Default 48. */
23
+ readonly retainWindows?: number
22
24
  /** Remaining count each class keeps in reserve for others: a call of class c is refused while remaining <= reserve[c]. Classes absent here have reserve 0 (refused only at zero). */
23
25
  readonly reserve?: Partial<Record<C, number>>
24
26
  /** Reads the budget from a response's headers; default reads GitHub-style headers. Return null when the response carries none. */
@@ -45,13 +47,37 @@ export interface QuotaCallOptions<R> {
45
47
  readonly retryUnsent?: true | ConnectRetryOptions
46
48
  }
47
49
 
48
- export interface Quota<C extends string> {
49
- /** Takes one unit of the upstream's budget for this class, sends, and records the budget from the response headers. */
50
- call<R>(target: { key: string; class: C }, send: () => Promise<R>, opts?: QuotaCallOptions<R>): Promise<R>
50
+ /** Calls of one caller in one window: `sent` took a unit, `refused` was refused at the reserve. */
51
+ export interface QuotaCallerSpend<K extends string = string> {
52
+ readonly caller: K | 'unlabelled'
53
+ readonly sent: number
54
+ readonly refused: number
55
+ }
56
+
57
+ export interface QuotaWindowSpend<K extends string = string> {
58
+ readonly resetAt: Date
59
+ /** Sorted by sent + refused descending, then caller. */
60
+ readonly callers: QuotaCallerSpend<K>[]
61
+ }
62
+
63
+ export interface QuotaSpend<K extends string = string> {
64
+ /** The window the key's live budget row is in; null when none is live. */
65
+ readonly current: QuotaWindowSpend<K> | null
66
+ /** The newest window before `current` (the newest recorded one when none is live). */
67
+ readonly previous: QuotaWindowSpend<K> | null
68
+ /** Calls made before any window was recorded; they move into the first window a response records. */
69
+ readonly unplaced: QuotaCallerSpend<K>[]
70
+ }
71
+
72
+ export interface Quota<C extends string, K extends string = string> {
73
+ /** Takes one unit of the upstream's budget for this class, sends, and records the budget from the response headers. `caller` labels the call in `spend`; without it the call counts as 'unlabelled'. */
74
+ call<R>(target: { key: string; class: C; caller?: K }, send: () => Promise<R>, opts?: QuotaCallOptions<R>): Promise<R>
51
75
  /** Records the budget from headers of a call sent through the caller's own client. */
52
76
  record(key: string, headers: QuotaHeaderInput): Promise<void>
53
77
  /** The recorded budget; null when there is none or its window has passed. */
54
78
  state(key: string): Promise<QuotaState | null>
79
+ /** Calls counted per caller for the key's current and previous window. A response recorded with `record` instead of `call` is not counted. */
80
+ spend(key: string): Promise<QuotaSpend<K>>
55
81
  }
56
82
 
57
83
  function intHeader(headers: QuotaHeaders, name: string): number | null {
@@ -105,13 +131,44 @@ function logRecordFailure(key: string, err: unknown): void {
105
131
  void recordFault('quota-record', faultMessage(err), { key })
106
132
  }
107
133
 
108
- export function createQuota<C extends string>(config: QuotaConfig<C> = {}): Quota<C> {
134
+ const DEFAULT_RETAIN_WINDOWS = 48
135
+ const UNLABELLED = 'unlabelled'
136
+
137
+ const toDate = (v: unknown): Date => new Date(v as string | Date)
138
+
139
+ export function createQuota<C extends string, K extends string = string>(config: QuotaConfig<C> = {}): Quota<C, K> {
140
+ const retain = config.retainWindows ?? DEFAULT_RETAIN_WINDOWS
141
+ if (!Number.isInteger(retain) || retain < 1) {
142
+ throw new Error(`[pipework] quota.create retainWindows must be a positive integer, got ${String(config.retainWindows)}.`)
143
+ }
109
144
  if (config.connection !== undefined && config.database !== undefined) {
110
145
  throw new Error('[pipework] quota.create takes connection or database, not both.')
111
146
  }
112
147
  const read = config.read ?? defaultRead
113
148
  const db = (): DB => config.connection !== undefined ? config.connection.drizzle : resolveDb(config.database)
114
149
 
150
+ /** A new live window began: calls counted before any window was known move into it, and windows past the retention are deleted. */
151
+ async function startWindow(tx: DB, key: string): Promise<void> {
152
+ await tx.execute(sql`
153
+ WITH moved AS (
154
+ DELETE FROM outbound_quota_spend WHERE key = ${key} AND window_end = 'infinity'::timestamptz
155
+ RETURNING caller, sent, refused)
156
+ INSERT INTO outbound_quota_spend (key, caller, window_end, sent, refused)
157
+ SELECT ${key}, caller, (SELECT reset_at FROM outbound_quota WHERE key = ${key}), sent, refused FROM moved
158
+ ON CONFLICT (key, caller, window_end) DO UPDATE SET
159
+ sent = outbound_quota_spend.sent + EXCLUDED.sent,
160
+ refused = outbound_quota_spend.refused + EXCLUDED.refused,
161
+ updated_at = clock_timestamp()`)
162
+ await tx.execute(sql`
163
+ DELETE FROM outbound_quota_spend
164
+ WHERE key = ${key} AND window_end <> ALL (
165
+ SELECT window_end FROM (
166
+ SELECT window_end FROM outbound_quota_spend WHERE key = ${key} AND window_end <> 'infinity'::timestamptz
167
+ UNION SELECT reset_at FROM outbound_quota WHERE key = ${key}
168
+ ORDER BY window_end DESC LIMIT ${retain}) kept)
169
+ AND window_end <> 'infinity'::timestamptz`)
170
+ }
171
+
115
172
  async function record(key: string, input: QuotaHeaderInput): Promise<void> {
116
173
  const headers = toHeaders(input)
117
174
  const budget = read(headers)
@@ -121,26 +178,36 @@ export function createQuota<C extends string>(config: QuotaConfig<C> = {}): Quot
121
178
  if (budget !== null) {
122
179
  // Same window: lowest remaining. Different window: a live response (reset in the future) replaces the row; a past reset is ignored.
123
180
  const limit = budget.limit ?? null
124
- await conn.execute(sql`
125
- INSERT INTO outbound_quota (key, remaining, "limit", reset_at, updated_at)
126
- VALUES (${key}, ${budget.remaining}, ${limit}, ${iso(budget.resetAt)}::timestamptz, clock_timestamp())
127
- ON CONFLICT (key) DO UPDATE SET
128
- remaining = CASE
129
- WHEN date_trunc('second', outbound_quota.reset_at) = date_trunc('second', EXCLUDED.reset_at)
130
- THEN LEAST(outbound_quota.remaining, EXCLUDED.remaining)
131
- WHEN EXCLUDED.reset_at > now() THEN EXCLUDED.remaining
132
- ELSE outbound_quota.remaining END,
133
- "limit" = CASE
134
- WHEN date_trunc('second', outbound_quota.reset_at) = date_trunc('second', EXCLUDED.reset_at)
135
- OR EXCLUDED.reset_at > now()
136
- THEN COALESCE(EXCLUDED."limit", outbound_quota."limit")
137
- ELSE outbound_quota."limit" END,
138
- reset_at = CASE
139
- WHEN date_trunc('second', outbound_quota.reset_at) = date_trunc('second', EXCLUDED.reset_at)
140
- THEN outbound_quota.reset_at
141
- WHEN EXCLUDED.reset_at > now() THEN EXCLUDED.reset_at
142
- ELSE outbound_quota.reset_at END,
143
- updated_at = clock_timestamp()`)
181
+ await conn.transaction(async (tx: DB) => {
182
+ const before = await tx.execute(sql`SELECT reset_at FROM outbound_quota WHERE key = ${key} FOR UPDATE`)
183
+ const prior = before[0] === undefined ? null : toDate(before[0]['reset_at'])
184
+ const after = await tx.execute(sql`
185
+ INSERT INTO outbound_quota (key, remaining, "limit", reset_at, updated_at)
186
+ VALUES (${key}, ${budget.remaining}, ${limit}, ${iso(budget.resetAt)}::timestamptz, clock_timestamp())
187
+ ON CONFLICT (key) DO UPDATE SET
188
+ remaining = CASE
189
+ WHEN date_trunc('second', outbound_quota.reset_at) = date_trunc('second', EXCLUDED.reset_at)
190
+ THEN LEAST(outbound_quota.remaining, EXCLUDED.remaining)
191
+ WHEN EXCLUDED.reset_at > now() THEN EXCLUDED.remaining
192
+ ELSE outbound_quota.remaining END,
193
+ "limit" = CASE
194
+ WHEN date_trunc('second', outbound_quota.reset_at) = date_trunc('second', EXCLUDED.reset_at)
195
+ OR EXCLUDED.reset_at > now()
196
+ THEN COALESCE(EXCLUDED."limit", outbound_quota."limit")
197
+ ELSE outbound_quota."limit" END,
198
+ reset_at = CASE
199
+ WHEN date_trunc('second', outbound_quota.reset_at) = date_trunc('second', EXCLUDED.reset_at)
200
+ THEN outbound_quota.reset_at
201
+ WHEN EXCLUDED.reset_at > now() THEN EXCLUDED.reset_at
202
+ ELSE outbound_quota.reset_at END,
203
+ updated_at = clock_timestamp()
204
+ RETURNING reset_at, reset_at > now() AS live`)
205
+ const row = after[0]
206
+ if (row === undefined || row['live'] !== true) return
207
+ const reset = toDate(row['reset_at'])
208
+ if (prior !== null && Math.floor(prior.getTime() / 1000) === Math.floor(reset.getTime() / 1000)) return
209
+ await startWindow(tx, key)
210
+ })
144
211
  }
145
212
  if (retryAfter !== null) {
146
213
  await conn.execute(sql`
@@ -165,32 +232,87 @@ export function createQuota<C extends string>(config: QuotaConfig<C> = {}): Quot
165
232
  }
166
233
  }
167
234
 
168
- async function take(key: string, cls: string): Promise<void> {
235
+ async function take(key: string, cls: string, caller: string): Promise<void> {
169
236
  const conn = db()
170
237
  const reserve = config.reserve?.[cls as C] ?? 0
238
+ // The unit and its count are one statement, so a count and a spend cannot disagree.
171
239
  const taken = await conn.execute(sql`
172
- UPDATE outbound_quota SET remaining = remaining - 1, updated_at = clock_timestamp()
173
- WHERE key = ${key} AND reset_at > now() AND remaining > ${reserve}
174
- RETURNING remaining`)
240
+ WITH taken AS (
241
+ UPDATE outbound_quota SET remaining = remaining - 1, updated_at = clock_timestamp()
242
+ WHERE key = ${key} AND reset_at > now() AND remaining > ${reserve}
243
+ RETURNING key, reset_at)
244
+ INSERT INTO outbound_quota_spend (key, caller, window_end, sent)
245
+ SELECT key, ${caller}, reset_at, 1 FROM taken
246
+ ON CONFLICT (key, caller, window_end) DO UPDATE SET
247
+ sent = outbound_quota_spend.sent + 1, updated_at = clock_timestamp()
248
+ RETURNING 1 AS counted`)
175
249
  if (taken.length > 0) return
176
250
  const rows = await conn.execute(sql`
177
- UPDATE outbound_quota SET refused_at = clock_timestamp()
178
- WHERE key = ${key} AND reset_at > now()
179
- RETURNING remaining, reset_at`)
251
+ WITH asked AS (
252
+ UPDATE outbound_quota SET refused_at = clock_timestamp()
253
+ WHERE key = ${key} AND reset_at > now()
254
+ RETURNING key, remaining, reset_at),
255
+ counted AS (
256
+ INSERT INTO outbound_quota_spend (key, caller, window_end, refused)
257
+ SELECT key, ${caller}, reset_at, 1 FROM asked
258
+ ON CONFLICT (key, caller, window_end) DO UPDATE SET
259
+ refused = outbound_quota_spend.refused + 1, updated_at = clock_timestamp()
260
+ RETURNING 1)
261
+ SELECT remaining, reset_at FROM asked`)
180
262
  const row = rows[0]
181
- if (row === undefined) return // unknown budget: send optimistically
263
+ if (row === undefined) {
264
+ // unknown budget: send optimistically, counted until a response places the window
265
+ await conn.execute(sql`
266
+ INSERT INTO outbound_quota_spend (key, caller, window_end, sent)
267
+ VALUES (${key}, ${caller}, 'infinity'::timestamptz, 1)
268
+ ON CONFLICT (key, caller, window_end) DO UPDATE SET
269
+ sent = outbound_quota_spend.sent + 1, updated_at = clock_timestamp()`)
270
+ return
271
+ }
182
272
  throw new QuotaExhaustedError({
183
273
  key, class: cls, reserve,
184
274
  remaining: Number(row['remaining']),
185
- resetAt: new Date(row['reset_at'] as string | Date),
275
+ resetAt: toDate(row['reset_at']),
186
276
  })
187
277
  }
188
278
 
279
+ async function spend(key: string): Promise<QuotaSpend<K>> {
280
+ const conn = db()
281
+ const live = await conn.execute(sql`SELECT reset_at FROM outbound_quota WHERE key = ${key} AND reset_at > now()`)
282
+ const liveAt = live[0] === undefined ? null : toDate(live[0]['reset_at']).getTime()
283
+ const rows = await conn.execute(sql`
284
+ SELECT caller, sent, refused,
285
+ CASE WHEN window_end = 'infinity'::timestamptz THEN NULL ELSE window_end END AS window_end
286
+ FROM outbound_quota_spend WHERE key = ${key}`)
287
+ const byWindow = new Map<number, QuotaCallerSpend<K>[]>()
288
+ const unplaced: QuotaCallerSpend<K>[] = []
289
+ for (const r of rows) {
290
+ const entry: QuotaCallerSpend<K> = { caller: String(r['caller']) as K | 'unlabelled', sent: Number(r['sent']), refused: Number(r['refused']) }
291
+ if (r['window_end'] === null) { unplaced.push(entry); continue }
292
+ const at = toDate(r['window_end']).getTime()
293
+ const list = byWindow.get(at)
294
+ if (list === undefined) byWindow.set(at, [entry]); else list.push(entry)
295
+ }
296
+ const order = (list: QuotaCallerSpend<K>[]): QuotaCallerSpend<K>[] => list.sort((a, b) =>
297
+ (b.sent + b.refused) - (a.sent + a.refused) || (a.caller < b.caller ? -1 : a.caller > b.caller ? 1 : 0))
298
+ const windowOf = (at: number | null): QuotaWindowSpend<K> | null =>
299
+ at === null ? null : { resetAt: new Date(at), callers: order(byWindow.get(at) ?? []) }
300
+ const finite = [...byWindow.keys()].sort((a, b) => b - a)
301
+ const currentAt = liveAt
302
+ const previousAt = finite.find(at => currentAt === null || at < currentAt) ?? null
303
+ return {
304
+ current: currentAt === null ? null : windowOf(currentAt),
305
+ previous: windowOf(previousAt),
306
+ unplaced: order(unplaced),
307
+ }
308
+ }
309
+
189
310
  return {
190
311
  record,
191
312
  state,
192
- async call<R>(target: { key: string; class: C }, send: () => Promise<R>, opts: QuotaCallOptions<R> = {}): Promise<R> {
193
- await take(target.key, target.class)
313
+ spend,
314
+ async call<R>(target: { key: string; class: C; caller?: K }, send: () => Promise<R>, opts: QuotaCallOptions<R> = {}): Promise<R> {
315
+ await take(target.key, target.class, target.caller ?? UNLABELLED)
194
316
  let result: R
195
317
  try {
196
318
  const o = opts.retryUnsent
@@ -1,5 +1,6 @@
1
1
  export { createQuota } from './handle.js'
2
2
  export type {
3
3
  Quota, QuotaConfig, QuotaHeaders, QuotaHeaderInput, QuotaBudget, QuotaState, QuotaCallOptions,
4
+ QuotaSpend, QuotaWindowSpend, QuotaCallerSpend,
4
5
  } from './handle.js'
5
6
  export { QuotaExhaustedError } from './errors.js'
@@ -13,3 +13,16 @@ export const outboundQuota = define('outbound_quota', {
13
13
  /** When a call was last refused against this row; it counts while it is not older than `updatedAt`. */
14
14
  refusedAt: field.timestamp().nullable(),
15
15
  })
16
+
17
+ // Calls per (key, caller, window): `window_end` is the budget row's reset_at; 'infinity' holds calls made
18
+ // before any window was known, moved into the first window a response records.
19
+ export const outboundQuotaSpend = define('outbound_quota_spend', {
20
+ key: field.text(),
21
+ caller: field.text(),
22
+ windowEnd: field.timestamp(),
23
+ sent: field.integer().default(0),
24
+ refused: field.integer().default(0),
25
+ updatedAt: field.timestamp().default('now'),
26
+ }, {
27
+ primaryKey: ['key', 'caller', 'windowEnd'],
28
+ })
@@ -40,6 +40,8 @@ export interface Flow<TAuth = unknown> {
40
40
  readonly transactions: Map<string, BoundTransaction>
41
41
  /** The trace opened at this entry, or `null` when the entry ran untraced. */
42
42
  readonly trace: TraceContext | null
43
+ /** Aborted when the HTTP client closes the connection before the response is finished; pass it to outbound calls. Unset outside an HTTP request. */
44
+ readonly signal?: AbortSignal
43
45
  }
44
46
 
45
47
  /** HTTP request metadata stored in a Flow — method, path, trace ID, session ID. */