@dbos-inc/dbos-enterprise 5.3.1-preview → 5.4.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 (62) hide show
  1. package/README.md +4 -4
  2. package/dist/src/auto_upgrade.d.ts +39 -0
  3. package/dist/src/auto_upgrade.d.ts.map +1 -0
  4. package/dist/src/auto_upgrade.js +229 -0
  5. package/dist/src/auto_upgrade.js.map +1 -0
  6. package/dist/src/cockroach.d.ts +10 -0
  7. package/dist/src/cockroach.d.ts.map +1 -0
  8. package/dist/src/cockroach.js +28 -0
  9. package/dist/src/cockroach.js.map +1 -0
  10. package/dist/src/conductor/conductor.d.ts +42 -0
  11. package/dist/src/conductor/conductor.d.ts.map +1 -0
  12. package/dist/src/conductor/conductor.js +978 -0
  13. package/dist/src/conductor/conductor.js.map +1 -0
  14. package/dist/src/conductor/protocol.d.ts +618 -0
  15. package/dist/src/conductor/protocol.d.ts.map +1 -0
  16. package/dist/src/conductor/protocol.js +514 -0
  17. package/dist/src/conductor/protocol.js.map +1 -0
  18. package/dist/src/export.d.ts +19 -0
  19. package/dist/src/export.d.ts.map +1 -0
  20. package/dist/src/export.js +184 -0
  21. package/dist/src/export.js.map +1 -0
  22. package/dist/src/fork.d.ts +18 -0
  23. package/dist/src/fork.d.ts.map +1 -0
  24. package/dist/src/fork.js +71 -0
  25. package/dist/src/fork.js.map +1 -0
  26. package/dist/src/index.d.ts +10 -1
  27. package/dist/src/index.d.ts.map +1 -1
  28. package/dist/src/index.js +14 -3
  29. package/dist/src/index.js.map +1 -1
  30. package/dist/src/locks.d.ts +20 -0
  31. package/dist/src/locks.d.ts.map +1 -0
  32. package/dist/src/locks.js +47 -0
  33. package/dist/src/locks.js.map +1 -0
  34. package/dist/src/observability.d.ts +90 -0
  35. package/dist/src/observability.d.ts.map +1 -0
  36. package/dist/src/observability.js +398 -0
  37. package/dist/src/observability.js.map +1 -0
  38. package/dist/src/retention.d.ts +31 -0
  39. package/dist/src/retention.d.ts.map +1 -0
  40. package/dist/src/retention.js +408 -0
  41. package/dist/src/retention.js.map +1 -0
  42. package/dist/src/sharding/index.d.ts +9 -0
  43. package/dist/src/sharding/index.d.ts.map +1 -0
  44. package/dist/src/sharding/index.js +13 -0
  45. package/dist/src/sharding/index.js.map +1 -0
  46. package/dist/src/sharding/migrations.d.ts +20 -0
  47. package/dist/src/sharding/migrations.d.ts.map +1 -0
  48. package/dist/src/sharding/migrations.js +486 -0
  49. package/dist/src/sharding/migrations.js.map +1 -0
  50. package/dist/src/sharding/schema.d.ts +9 -0
  51. package/dist/src/sharding/schema.d.ts.map +1 -0
  52. package/dist/src/sharding/schema.js +12 -0
  53. package/dist/src/sharding/schema.js.map +1 -0
  54. package/dist/src/sharding/sys_db.d.ts +101 -0
  55. package/dist/src/sharding/sys_db.d.ts.map +1 -0
  56. package/dist/src/sharding/sys_db.js +717 -0
  57. package/dist/src/sharding/sys_db.js.map +1 -0
  58. package/package.json +14 -6
  59. package/dist/src/scratch.d.ts +0 -9
  60. package/dist/src/scratch.d.ts.map +0 -1
  61. package/dist/src/scratch.js +0 -15
  62. package/dist/src/scratch.js.map +0 -1
@@ -0,0 +1,398 @@
1
+ // Copyright (c) 2026 DBOS, Inc. All rights reserved.
2
+ //
3
+ // This file is part of Transact Enterprise, proprietary software licensed under the
4
+ // DBOS Conductor Software License: https://www.dbos.dev/conductor-license
5
+ // You may not use, copy, modify, or distribute this file except as that license permits.
6
+ // Disabling or circumventing the entitlement checks in @dbos-inc/dbos-sdk's src/enterprise.ts
7
+ // that gate it is a material breach of that license.
8
+ "use strict";
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getMetrics = exports.getStepAggregates = exports.getWorkflowAggregates = exports.getAllStreamEntries = exports.getAllNotifications = exports.getAllEvents = exports.getPendingWorkflows = void 0;
11
+ const serialization_1 = require("@dbos-inc/dbos-sdk/internal/serialization");
12
+ const system_database_1 = require("@dbos-inc/dbos-sdk/internal/system_database");
13
+ const workflow_1 = require("@dbos-inc/dbos-sdk/internal/workflow");
14
+ function combine(a, b, pick) {
15
+ return a === null ? b : b === null ? a : pick(a, b);
16
+ }
17
+ function mergeGroups(rows, combineRows) {
18
+ const merged = new Map();
19
+ for (const row of rows) {
20
+ const key = JSON.stringify(Object.entries(row.group).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0)));
21
+ const existing = merged.get(key);
22
+ if (existing !== undefined) {
23
+ combineRows(existing, row);
24
+ }
25
+ else {
26
+ merged.set(key, row);
27
+ }
28
+ }
29
+ return Array.from(merged.values());
30
+ }
31
+ function combineWorkflowRows(into, row) {
32
+ into.count = combine(into.count, row.count, (a, b) => a + b);
33
+ into.minCreatedAt = combine(into.minCreatedAt, row.minCreatedAt, Math.min);
34
+ into.maxQueueWaitMs = combine(into.maxQueueWaitMs, row.maxQueueWaitMs, Math.max);
35
+ into.maxTotalLatencyMs = combine(into.maxTotalLatencyMs, row.maxTotalLatencyMs, Math.max);
36
+ }
37
+ function combineStepRows(into, row) {
38
+ into.count = combine(into.count, row.count, (a, b) => a + b);
39
+ into.maxDurationMs = combine(into.maxDurationMs, row.maxDurationMs, Math.max);
40
+ }
41
+ async function getPendingWorkflows(sysdb, executorID, appVersion) {
42
+ const params = [workflow_1.StatusString.PENDING, executorID, appVersion];
43
+ const scope = sysdb.appNameFilter('application_name', sysdb.appName, params);
44
+ const key = sysdb.keyColumn(undefined);
45
+ const getWorkflows = await sysdb.pool.query(`SELECT workflow_uuid${key !== undefined ? `, ${key} AS shard_key` : ''}
46
+ FROM "${sysdb.schemaName}".workflow_status
47
+ WHERE status=$1 AND executor_id=$2 AND application_version=$3 AND ${scope}`, params);
48
+ return getWorkflows.rows.map((i) => ({
49
+ workflowUUID: i.workflow_uuid,
50
+ shardKey: i.shard_key ?? undefined,
51
+ }));
52
+ }
53
+ exports.getPendingWorkflows = getPendingWorkflows;
54
+ async function getAllEvents(sysdb, workflowID) {
55
+ const params = [];
56
+ const target = sysdb.wf(undefined, workflowID, params);
57
+ const { rows } = await sysdb.observabilityQuery((client) => client.query(`SELECT key, value, serialization FROM "${sysdb.schemaName}".workflow_events
58
+ WHERE ${target}`, params));
59
+ const events = {};
60
+ for (const row of rows) {
61
+ events[row.key] = await (0, serialization_1.safeParse)(sysdb.serializer, row.value, row.serialization);
62
+ }
63
+ return events;
64
+ }
65
+ exports.getAllEvents = getAllEvents;
66
+ async function getAllNotifications(sysdb, workflowID) {
67
+ const params = [];
68
+ const target = sysdb.wf(undefined, workflowID, params, 'destination_uuid');
69
+ const { rows } = await sysdb.observabilityQuery((client) => client.query(`SELECT topic, message, serialization, created_at_epoch_ms, consumed
70
+ FROM "${sysdb.schemaName}".notifications
71
+ WHERE ${target}
72
+ ORDER BY created_at_epoch_ms`, params));
73
+ return await Promise.all(rows.map(async (row) => ({
74
+ topic: row.topic === sysdb.nullTopic ? null : row.topic,
75
+ message: await (0, serialization_1.safeParse)(sysdb.serializer, row.message, row.serialization),
76
+ createdAtEpochMs: Number(row.created_at_epoch_ms),
77
+ consumed: row.consumed,
78
+ })));
79
+ }
80
+ exports.getAllNotifications = getAllNotifications;
81
+ async function getAllStreamEntries(sysdb, workflowID) {
82
+ const params = [];
83
+ const target = sysdb.wf(undefined, workflowID, params);
84
+ const { rows } = await sysdb.observabilityQuery((client) => client.query(`SELECT key, value, serialization FROM "${sysdb.schemaName}".streams
85
+ WHERE ${target}
86
+ ORDER BY key, "offset"`, params));
87
+ const streams = {};
88
+ const closed = new Set();
89
+ for (const row of rows) {
90
+ if (closed.has(row.key)) {
91
+ continue;
92
+ }
93
+ const value = await (0, serialization_1.safeParse)(sysdb.serializer, row.value, row.serialization);
94
+ if ((0, system_database_1.isStreamClosedSentinel)(value)) {
95
+ closed.add(row.key);
96
+ streams[row.key] ??= [];
97
+ continue;
98
+ }
99
+ (streams[row.key] ??= []).push(value);
100
+ }
101
+ return streams;
102
+ }
103
+ exports.getAllStreamEntries = getAllStreamEntries;
104
+ async function getWorkflowAggregates(sysdb, input) {
105
+ if (input.timeBucketSizeMs !== undefined && input.timeBucketSizeMs <= 0) {
106
+ throw new Error('time_bucket_size_ms must be > 0');
107
+ }
108
+ const groupByFlags = [
109
+ ['status', input.groupByStatus ?? false, 'status'],
110
+ ['name', input.groupByName ?? false, 'name'],
111
+ ['queue_name', input.groupByQueueName ?? false, 'queue_name'],
112
+ ['executor_id', input.groupByExecutorId ?? false, 'executor_id'],
113
+ ['application_version', input.groupByApplicationVersion ?? false, 'application_version'],
114
+ ['application_name', input.groupByApplicationName ?? false, 'application_name'],
115
+ ];
116
+ const groupNames = [];
117
+ const groupColumns = [];
118
+ const groupSelectColumns = [];
119
+ for (const [colName, enabled, col] of groupByFlags) {
120
+ if (enabled) {
121
+ groupNames.push(colName);
122
+ groupColumns.push(col);
123
+ groupSelectColumns.push(col);
124
+ }
125
+ }
126
+ const params = [];
127
+ if (input.timeBucketSizeMs !== undefined) {
128
+ params.push(input.timeBucketSizeMs);
129
+ const bucket = `$${params.length}::bigint`;
130
+ const bucketExpr = `(CAST(FLOOR(created_at / ${bucket}) AS BIGINT) * ${bucket})`;
131
+ groupNames.push('time_bucket');
132
+ groupColumns.push(bucketExpr);
133
+ groupSelectColumns.push(`${bucketExpr} AS time_bucket`);
134
+ }
135
+ if (groupColumns.length === 0) {
136
+ throw new Error('At least one group_by flag must be set to True');
137
+ }
138
+ const selectFlags = [
139
+ ['count', input.selectCount ?? false, 'COUNT(*)'],
140
+ ['min_created_at', input.selectMinCreatedAt ?? false, 'MIN(created_at)'],
141
+ ['max_queue_wait_ms', input.selectMaxQueueWaitMs ?? false, 'MAX(started_at_epoch_ms - created_at)'],
142
+ ['max_total_latency_ms', input.selectMaxTotalLatencyMs ?? false, 'MAX(completed_at - created_at)'],
143
+ ];
144
+ const selectNames = [];
145
+ const selectColumns = [];
146
+ for (const [name, enabled, expr] of selectFlags) {
147
+ if (enabled) {
148
+ selectNames.push(name);
149
+ selectColumns.push(`${expr} AS ${name}`);
150
+ }
151
+ }
152
+ if (selectColumns.length === 0) {
153
+ throw new Error('At least one select_ flag must be set to True');
154
+ }
155
+ const whereClauses = [];
156
+ let paramIdx = params.length + 1;
157
+ const addFilter = (column, values) => {
158
+ if (!values || values.length === 0)
159
+ return;
160
+ const placeholders = values.map((_, i) => `$${paramIdx + i}`).join(', ');
161
+ whereClauses.push(`${column} IN (${placeholders})`);
162
+ params.push(...values);
163
+ paramIdx += values.length;
164
+ };
165
+ addFilter('status', input.status);
166
+ addFilter('name', input.name);
167
+ addFilter('application_version', input.appVersion);
168
+ addFilter('executor_id', input.executorId);
169
+ addFilter('queue_name', input.queueName);
170
+ if (input.workflowIdPrefix && input.workflowIdPrefix.length > 0) {
171
+ const likeClauses = input.workflowIdPrefix.map((p) => {
172
+ params.push(`${p}%`);
173
+ return `workflow_uuid LIKE $${paramIdx++}`;
174
+ });
175
+ whereClauses.push(`(${likeClauses.join(' OR ')})`);
176
+ }
177
+ addFilter('workflow_uuid', input.workflowIDs);
178
+ addFilter('authenticated_user', input.authenticatedUser);
179
+ addFilter('forked_from', input.forkedFrom);
180
+ addFilter('parent_workflow_id', input.parentWorkflowID);
181
+ addFilter('schedule_name', input.scheduleName);
182
+ whereClauses.push(sysdb.observabilityFilter('application_name', input.applicationName, params));
183
+ paramIdx = params.length + 1;
184
+ if (input.wasForkedFrom !== undefined) {
185
+ whereClauses.push(`was_forked_from = $${paramIdx}`);
186
+ params.push(input.wasForkedFrom);
187
+ paramIdx++;
188
+ }
189
+ if (input.isFork !== undefined) {
190
+ whereClauses.push(input.isFork ? `forked_from IS NOT NULL` : `forked_from IS NULL`);
191
+ }
192
+ if (input.hasParent !== undefined) {
193
+ whereClauses.push(input.hasParent ? `parent_workflow_id IS NOT NULL` : `parent_workflow_id IS NULL`);
194
+ }
195
+ if (input.attributes && Object.keys(input.attributes).length > 0) {
196
+ whereClauses.push(`attributes @> $${paramIdx}::jsonb`);
197
+ params.push(JSON.stringify(input.attributes));
198
+ paramIdx++;
199
+ }
200
+ if (input.startTime) {
201
+ whereClauses.push(`created_at >= $${paramIdx}`);
202
+ params.push(new Date(input.startTime).getTime());
203
+ paramIdx++;
204
+ }
205
+ if (input.endTime) {
206
+ whereClauses.push(`created_at <= $${paramIdx}`);
207
+ params.push(new Date(input.endTime).getTime());
208
+ paramIdx++;
209
+ }
210
+ if (input.completedAfter) {
211
+ whereClauses.push(`completed_at >= $${paramIdx}`);
212
+ params.push(new Date(input.completedAfter).getTime());
213
+ paramIdx++;
214
+ }
215
+ if (input.completedBefore) {
216
+ whereClauses.push(`completed_at <= $${paramIdx}`);
217
+ params.push(new Date(input.completedBefore).getTime());
218
+ paramIdx++;
219
+ }
220
+ if (input.dequeuedAfter) {
221
+ whereClauses.push(`started_at_epoch_ms >= $${paramIdx}`);
222
+ params.push(new Date(input.dequeuedAfter).getTime());
223
+ paramIdx++;
224
+ }
225
+ if (input.dequeuedBefore) {
226
+ whereClauses.push(`started_at_epoch_ms <= $${paramIdx}`);
227
+ params.push(new Date(input.dequeuedBefore).getTime());
228
+ paramIdx++;
229
+ }
230
+ const whereClause = whereClauses.length > 0 ? `WHERE ${whereClauses.join(' AND ')}` : '';
231
+ const groupByClause = groupColumns.join(', ');
232
+ const selectClause = [...groupSelectColumns, ...selectColumns].join(', ');
233
+ const query = `
234
+ SELECT ${selectClause}
235
+ FROM "${sysdb.schemaName}".workflow_status
236
+ ${whereClause}
237
+ GROUP BY ${groupByClause}
238
+ `;
239
+ const result = await sysdb.observabilityQuery((client) => client.query(query, params));
240
+ const toIntOrNull = (v) => (v === null || v === undefined ? null : Number(v));
241
+ const rows = result.rows.map((row) => {
242
+ const group = {};
243
+ for (const name of groupNames) {
244
+ const v = row[name];
245
+ group[name] = v === null || v === undefined ? null : String(v);
246
+ }
247
+ return {
248
+ group,
249
+ count: selectNames.includes('count') ? toIntOrNull(row.count) : null,
250
+ minCreatedAt: selectNames.includes('min_created_at') ? toIntOrNull(row.min_created_at) : null,
251
+ maxQueueWaitMs: selectNames.includes('max_queue_wait_ms') ? toIntOrNull(row.max_queue_wait_ms) : null,
252
+ maxTotalLatencyMs: selectNames.includes('max_total_latency_ms') ? toIntOrNull(row.max_total_latency_ms) : null,
253
+ };
254
+ });
255
+ return mergeGroups(rows, combineWorkflowRows);
256
+ }
257
+ exports.getWorkflowAggregates = getWorkflowAggregates;
258
+ async function getStepAggregates(sysdb, input) {
259
+ if (input.timeBucketSizeMs !== undefined && input.timeBucketSizeMs <= 0) {
260
+ throw new Error('time_bucket_size_ms must be > 0');
261
+ }
262
+ const statusExpr = `CASE WHEN error IS NULL THEN 'SUCCESS' ELSE 'ERROR' END`;
263
+ const groupByFlags = [
264
+ ['function_name', input.groupByFunctionName ?? false, 'function_name'],
265
+ ['status', input.groupByStatus ?? false, statusExpr],
266
+ ];
267
+ const groupNames = [];
268
+ const groupColumns = [];
269
+ const groupSelectColumns = [];
270
+ for (const [colName, enabled, expr] of groupByFlags) {
271
+ if (enabled) {
272
+ groupNames.push(colName);
273
+ groupColumns.push(expr);
274
+ groupSelectColumns.push(`${expr} AS ${colName}`);
275
+ }
276
+ }
277
+ const params = [];
278
+ if (input.timeBucketSizeMs !== undefined) {
279
+ params.push(input.timeBucketSizeMs);
280
+ const bucket = `$${params.length}::bigint`;
281
+ const bucketExpr = `(CAST(FLOOR(completed_at_epoch_ms / ${bucket}) AS BIGINT) * ${bucket})`;
282
+ groupNames.push('time_bucket');
283
+ groupColumns.push(bucketExpr);
284
+ groupSelectColumns.push(`${bucketExpr} AS time_bucket`);
285
+ }
286
+ if (groupColumns.length === 0) {
287
+ throw new Error('At least one group_by flag must be set to True');
288
+ }
289
+ const selectFlags = [
290
+ ['count', input.selectCount ?? false, 'COUNT(*)'],
291
+ ['max_duration_ms', input.selectMaxDurationMs ?? false, 'MAX(completed_at_epoch_ms - started_at_epoch_ms)'],
292
+ ];
293
+ const selectNames = [];
294
+ const selectColumns = [];
295
+ for (const [name, enabled, expr] of selectFlags) {
296
+ if (enabled) {
297
+ selectNames.push(name);
298
+ selectColumns.push(`${expr} AS ${name}`);
299
+ }
300
+ }
301
+ if (selectColumns.length === 0) {
302
+ throw new Error('At least one select_ flag must be set to True');
303
+ }
304
+ const whereClauses = [];
305
+ let paramIdx = params.length + 1;
306
+ if (input.status && input.status.length > 0) {
307
+ const placeholders = input.status.map((_, i) => `$${paramIdx + i}`).join(', ');
308
+ whereClauses.push(`(${statusExpr}) IN (${placeholders})`);
309
+ params.push(...input.status);
310
+ paramIdx += input.status.length;
311
+ }
312
+ if (input.functionName && input.functionName.length > 0) {
313
+ const placeholders = input.functionName.map((_, i) => `$${paramIdx + i}`).join(', ');
314
+ whereClauses.push(`function_name IN (${placeholders})`);
315
+ params.push(...input.functionName);
316
+ paramIdx += input.functionName.length;
317
+ }
318
+ if (input.workflowIdPrefix && input.workflowIdPrefix.length > 0) {
319
+ const likeClauses = input.workflowIdPrefix.map((p) => {
320
+ params.push(`${p}%`);
321
+ return `workflow_uuid LIKE $${paramIdx++}`;
322
+ });
323
+ whereClauses.push(`(${likeClauses.join(' OR ')})`);
324
+ }
325
+ if (input.completedAfter) {
326
+ whereClauses.push(`completed_at_epoch_ms >= $${paramIdx}`);
327
+ params.push(new Date(input.completedAfter).getTime());
328
+ paramIdx++;
329
+ }
330
+ if (input.completedBefore) {
331
+ whereClauses.push(`completed_at_epoch_ms <= $${paramIdx}`);
332
+ params.push(new Date(input.completedBefore).getTime());
333
+ paramIdx++;
334
+ }
335
+ whereClauses.push(sysdb.observabilityFilter('application_name', input.applicationName, params));
336
+ paramIdx = params.length + 1;
337
+ const whereClause = whereClauses.length > 0 ? `WHERE ${whereClauses.join(' AND ')}` : '';
338
+ const groupByClause = groupColumns.join(', ');
339
+ const selectClause = [...groupSelectColumns, ...selectColumns].join(', ');
340
+ const query = `
341
+ SELECT ${selectClause}
342
+ FROM "${sysdb.schemaName}".operation_outputs
343
+ ${whereClause}
344
+ GROUP BY ${groupByClause}
345
+ `;
346
+ const result = await sysdb.observabilityQuery((client) => client.query(query, params));
347
+ const toIntOrNull = (v) => (v === null || v === undefined ? null : Number(v));
348
+ const rows = result.rows.map((row) => {
349
+ const group = {};
350
+ for (const name of groupNames) {
351
+ const v = row[name];
352
+ group[name] = v === null || v === undefined ? null : String(v);
353
+ }
354
+ return {
355
+ group,
356
+ count: selectNames.includes('count') ? toIntOrNull(row.count) : null,
357
+ maxDurationMs: selectNames.includes('max_duration_ms') ? toIntOrNull(row.max_duration_ms) : null,
358
+ };
359
+ });
360
+ return mergeGroups(rows, combineStepRows);
361
+ }
362
+ exports.getStepAggregates = getStepAggregates;
363
+ async function getMetrics(sysdb, startTime, endTime, applicationName) {
364
+ return (0, system_database_1.withDbRetry)(async () => {
365
+ const startEpochMs = new Date(startTime).getTime();
366
+ const endEpochMs = new Date(endTime).getTime();
367
+ const workflowParams = [startEpochMs, endEpochMs];
368
+ const workflowScope = sysdb.observabilityFilter('application_name', applicationName, workflowParams);
369
+ const stepParams = [startEpochMs, endEpochMs];
370
+ const stepScope = sysdb.observabilityFilter('application_name', applicationName, stepParams);
371
+ const [workflowResult, stepResult] = await sysdb.observabilityQuery(async (client) => [
372
+ await client.query(`SELECT name, COUNT(workflow_uuid) as count
373
+ FROM "${sysdb.schemaName}".workflow_status
374
+ WHERE created_at >= $1 AND created_at < $2 AND ${workflowScope}
375
+ GROUP BY name`, workflowParams),
376
+ await client.query(`SELECT function_name, COUNT(*) as count
377
+ FROM "${sysdb.schemaName}".operation_outputs
378
+ WHERE completed_at_epoch_ms >= $1 AND completed_at_epoch_ms < $2 AND ${stepScope}
379
+ GROUP BY function_name`, stepParams),
380
+ ]);
381
+ const metrics = [];
382
+ for (const [metricType, rows] of [
383
+ ['workflow_count', workflowResult.rows.map((row) => [row.name, row.count])],
384
+ ['step_count', stepResult.rows.map((row) => [row.function_name, row.count])],
385
+ ]) {
386
+ const counts = new Map();
387
+ for (const [name, count] of rows) {
388
+ counts.set(name, (counts.get(name) ?? 0) + Number(count));
389
+ }
390
+ for (const [metricName, value] of counts) {
391
+ metrics.push({ metricType, metricName, value });
392
+ }
393
+ }
394
+ return metrics;
395
+ });
396
+ }
397
+ exports.getMetrics = getMetrics;
398
+ //# sourceMappingURL=observability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../src/observability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ // Copyright (c) 2026 DBOS, Inc. All rights reserved.
2
+ //
3
+ // This file is part of Transact Enterprise, proprietary software licensed under the
4
+ // DBOS Conductor Software License: https://www.dbos.dev/conductor-license
5
+ // You may not use, copy, modify, or distribute this file except as that license permits.
6
+ // Disabling or circumventing the entitlement checks in @dbos-inc/dbos-sdk's src/enterprise.ts
7
+ // that gate it is a material breach of that license.
8
+ import type { ClientBase, Pool } from 'pg';
9
+ import { type SystemDatabase } from '@dbos-inc/dbos-sdk/internal/system_database';
10
+ export declare function retryOnSerializationError<T>(operation: () => Promise<T>, sysdb: SystemDatabase): Promise<T>;
11
+ export declare function retentionLockKey(schemaName: string): bigint;
12
+ export declare const DEFAULT_GC_BATCH_SIZE = 50000;
13
+ export declare class WindowBatches {
14
+ readonly batchSize: number;
15
+ width: number;
16
+ constructor(batchSize: number);
17
+ bound(client: ClientBase | Pool, column: string, from: string, eligible: (params: unknown[]) => string, watermark: number, cutoff: number): Promise<number | undefined>;
18
+ }
19
+ export declare function acquireRetentionLock(sysdb: SystemDatabase): Promise<{
20
+ release: () => Promise<void>;
21
+ } | undefined>;
22
+ export declare function collectPayloads(sysdb: SystemDatabase, cutoff: number, batchSize?: number): Promise<number[]>;
23
+ export declare function collectStatuses(sysdb: SystemDatabase, cutoffEpochTimestampMs?: number | null, rowsThreshold?: number | null, options?: {
24
+ batchSize?: number | null;
25
+ }): Promise<number | undefined>;
26
+ export declare function listTimedOutWorkflowIds(sysdb: SystemDatabase, cutoffEpochTimestampMs: number): Promise<[string, string | undefined][]>;
27
+ export declare function garbageCollect(sysdb: SystemDatabase, cutoffEpochTimestampMs?: number | null, rowsThreshold?: number | null, options?: {
28
+ batchSize?: number | null;
29
+ }): Promise<void>;
30
+ export declare function globalTimeout(sysdb: SystemDatabase, cutoffEpochTimestampMs: number): Promise<void>;
31
+ //# sourceMappingURL=retention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/retention.ts"],"names":[],"mappings":";;;;;;;AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;AAGvD,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,6CAA6C,CAAC;AAgDrD,wBAAsB,yBAAyB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CA0BjH;AAQD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAGD,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAsC5C,qBAAa,aAAa;IAGZ,QAAQ,CAAC,SAAS,EAAE,MAAM;IAFtC,KAAK,SAA2B;gBAEX,SAAS,EAAE,MAAM;IAGhC,KAAK,CACT,MAAM,EAAE,UAAU,GAAG,IAAI,EACzB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,MAAM,EACvC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CA+D/B;AAQD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAAG,SAAS,CAAC,CA+BvD;AAoHD,wBAAsB,eAAe,CACnC,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAA8B,GACxC,OAAO,CAAC,MAAM,EAAE,CAAC,CA0CnB;AA8ED,wBAAsB,eAAe,CACnC,KAAK,EAAE,cAAc,EACrB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,EACtC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC1C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA+D7B;AAMD,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,cAAc,EACrB,sBAAsB,EAAE,MAAM,GAC7B,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAoBzC;AAGD,wBAAsB,cAAc,CAClC,KAAK,EAAE,cAAc,EACrB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,EACtC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC1C,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxG"}