@dbos-inc/dbos-sdk 5.4.9-preview → 5.4.11-preview
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/src/cli/cli.js +56 -13
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/client.d.ts +20 -10
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +76 -44
- package/dist/src/client.js.map +1 -1
- package/dist/src/config.d.ts +1 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +1 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/context.d.ts +6 -0
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +15 -1
- package/dist/src/context.js.map +1 -1
- package/dist/src/datasource.d.ts +2 -0
- package/dist/src/datasource.d.ts.map +1 -1
- package/dist/src/datasource.js +7 -1
- package/dist/src/datasource.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +13 -4
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +64 -31
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos.d.ts +60 -11
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +192 -65
- package/dist/src/dbos.js.map +1 -1
- package/dist/src/enqueue_options.d.ts +2 -0
- package/dist/src/enqueue_options.d.ts.map +1 -1
- package/dist/src/enqueue_options.js +3 -0
- package/dist/src/enqueue_options.js.map +1 -1
- package/dist/src/enqueue_workflow.d.ts.map +1 -1
- package/dist/src/enqueue_workflow.js +11 -5
- package/dist/src/enqueue_workflow.js.map +1 -1
- package/dist/src/enterprise.d.ts +23 -3
- package/dist/src/enterprise.d.ts.map +1 -1
- package/dist/src/enterprise.js +81 -44
- package/dist/src/enterprise.js.map +1 -1
- package/dist/src/eventreceiver.d.ts +2 -0
- package/dist/src/eventreceiver.d.ts.map +1 -1
- package/dist/src/eventreceiver.js +7 -1
- package/dist/src/eventreceiver.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/scheduler/scheduler.d.ts +5 -0
- package/dist/src/scheduler/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler/scheduler.js +14 -4
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/shard_keys.d.ts +13 -0
- package/dist/src/shard_keys.d.ts.map +1 -0
- package/dist/src/shard_keys.js +55 -0
- package/dist/src/shard_keys.js.map +1 -0
- package/dist/src/streams.d.ts +2 -0
- package/dist/src/streams.d.ts.map +1 -1
- package/dist/src/streams.js +5 -2
- package/dist/src/streams.js.map +1 -1
- package/dist/src/system_database.d.ts +143 -9
- package/dist/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js +1095 -503
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/wfqueue.d.ts +1 -2
- package/dist/src/wfqueue.d.ts.map +1 -1
- package/dist/src/wfqueue.js +83 -63
- package/dist/src/wfqueue.js.map +1 -1
- package/dist/src/workflow.d.ts +12 -2
- package/dist/src/workflow.d.ts.map +1 -1
- package/dist/src/workflow.js +14 -9
- package/dist/src/workflow.js.map +1 -1
- package/dist/src/workflow_management.d.ts +5 -3
- package/dist/src/workflow_management.d.ts.map +1 -1
- package/dist/src/workflow_management.js +45 -14
- package/dist/src/workflow_management.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/enterprise.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// What core uses from @dbos-inc/dbos-enterprise, which checks it satisfies these types; loaded only when needed.
|
|
3
3
|
// Also the entitlement check every enterprise feature goes through before the package is loaded.
|
|
4
|
+
//
|
|
5
|
+
// Transact Enterprise (the @dbos-inc/dbos-enterprise package) is proprietary, not MIT-licensed like this
|
|
6
|
+
// project. Its license (https://www.dbos.dev/conductor-license) forbids modifying it, and makes disabling
|
|
7
|
+
// or circumventing the entitlement checks here a material breach.
|
|
4
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.load = exports.requireEnterprise = exports.entitlementURL = exports.defaultConductorURL = exports.HOSTED_CONDUCTOR_URL = exports.ENTITLEMENT_TIMEOUT_MS = exports.ENTITLEMENTS_PATH = exports.enabledFeatures = exports.FEATURES = exports.AUTO_UPGRADE = exports.CONDUCTOR = exports.enterpriseLoader = exports.ENTERPRISE_PACKAGE = void 0;
|
|
9
|
+
exports.load = exports.requireEnterprise = exports.entitlementURL = exports.defaultConductorURL = exports.HOSTED_CONDUCTOR_URL = exports.ENTITLEMENT_TIMEOUT_MS = exports.ENTITLEMENTS_PATH = exports.enabledFeatures = exports.FEATURES = exports.SHARDING = exports.AUTO_UPGRADE = exports.CONDUCTOR = exports.enterpriseLoader = exports.ENTERPRISE_PACKAGE = void 0;
|
|
6
10
|
const error_1 = require("./error");
|
|
11
|
+
const logs_1 = require("./telemetry/logs");
|
|
7
12
|
const utils_1 = require("./utils");
|
|
8
13
|
exports.ENTERPRISE_PACKAGE = '@dbos-inc/dbos-enterprise';
|
|
9
14
|
// Tests substitute the loaded module here.
|
|
@@ -16,7 +21,13 @@ exports.AUTO_UPGRADE = {
|
|
|
16
21
|
description: 'Auto-upgrading workflows',
|
|
17
22
|
configKey: 'autoUpgrade',
|
|
18
23
|
};
|
|
19
|
-
exports.
|
|
24
|
+
exports.SHARDING = {
|
|
25
|
+
entitlement: 'sharding',
|
|
26
|
+
description: 'Using a sharded system database',
|
|
27
|
+
configKey: 'sharding',
|
|
28
|
+
};
|
|
29
|
+
// Every entitled feature; a new one is a Feature here, named by Conductor's camelCase key.
|
|
30
|
+
exports.FEATURES = [exports.AUTO_UPGRADE, exports.SHARDING];
|
|
20
31
|
/** The enterprise features a config turns on. */
|
|
21
32
|
function enabledFeatures(config) {
|
|
22
33
|
return exports.FEATURES.filter((f) => f.configKey !== undefined && config[f.configKey] === true);
|
|
@@ -26,6 +37,14 @@ exports.ENTITLEMENTS_PATH = '/v2/entitlements';
|
|
|
26
37
|
exports.ENTITLEMENT_TIMEOUT_MS = 10_000;
|
|
27
38
|
const ERROR_CODE_HEADER = 'X-DBOS-Error';
|
|
28
39
|
const PAST_LIMIT = 'past_limit';
|
|
40
|
+
// From the hosted Conductor, these mean it could not answer, not that it refused the key.
|
|
41
|
+
const HOSTED_UNAVAILABLE = new Set([403, 407, 408, 425, 429]);
|
|
42
|
+
const LICENSE_URL = 'https://www.dbos.dev/conductor-license';
|
|
43
|
+
const LICENSE_NOTICE = `Transact Enterprise is licensed under the DBOS Conductor Software License (${LICENSE_URL}), ` +
|
|
44
|
+
'which makes disabling or circumventing this check a material breach.';
|
|
45
|
+
function refusal(message) {
|
|
46
|
+
return new error_1.DBOSInitializationError(`${message} ${LICENSE_NOTICE}`);
|
|
47
|
+
}
|
|
29
48
|
exports.HOSTED_CONDUCTOR_URL = 'wss://cloud.dbos.dev/conductor/v1alpha1';
|
|
30
49
|
function defaultConductorURL() {
|
|
31
50
|
return `wss://${process.env.DBOS_DOMAIN || 'cloud.dbos.dev'}/conductor/v1alpha1`;
|
|
@@ -75,8 +94,7 @@ function parseEntitlements(body) {
|
|
|
75
94
|
* Enterprise features use Conductor to report the org entitled to each of them. A
|
|
76
95
|
* self-hosted Conductor may answer without a key; DBOS Cloud passes without a check.
|
|
77
96
|
*
|
|
78
|
-
*
|
|
79
|
-
* in for an entitlement.
|
|
97
|
+
* A license control: the Transact Enterprise license makes disabling or circumventing it a material breach.
|
|
80
98
|
*/
|
|
81
99
|
async function requireEnterprise(features, options) {
|
|
82
100
|
if (features.length === 0 || utils_1.globalParams.dbosCloud) {
|
|
@@ -96,63 +114,82 @@ async function requireEnterprise(features, options) {
|
|
|
96
114
|
if (key) {
|
|
97
115
|
headers.Authorization = `Bearer ${key}`;
|
|
98
116
|
}
|
|
99
|
-
let
|
|
100
|
-
let body;
|
|
117
|
+
let failure;
|
|
101
118
|
try {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const cause = e instanceof Error ? (e.cause instanceof Error ? e.cause.message : e.message) : String(e);
|
|
109
|
-
throw new error_1.DBOSInitializationError(`${names} requires an entitled DBOS key, but checking it with Conductor at ${url} failed (${cause}). Please retry later.`);
|
|
110
|
-
}
|
|
111
|
-
if (!response.ok) {
|
|
112
|
-
const status = response.status;
|
|
113
|
-
const detail = problemDetail(body);
|
|
114
|
-
if (status === 403 && response.headers.get(ERROR_CODE_HEADER) === PAST_LIMIT) {
|
|
115
|
-
throw new error_1.DBOSInitializationError(`Your DBOS organization is past its plan limit, so it is not entitled to ${entitlements} (${names}). Upgrade its plan to continue.`);
|
|
119
|
+
let response;
|
|
120
|
+
let body;
|
|
121
|
+
try {
|
|
122
|
+
// Never follow a redirect: it would carry the key to whatever host it names.
|
|
123
|
+
response = await fetch(url, { headers, redirect: 'manual', signal: AbortSignal.timeout(exports.ENTITLEMENT_TIMEOUT_MS) });
|
|
124
|
+
body = await response.text();
|
|
116
125
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
// A bare 404 is a missing route: a Conductor predating per-feature entitlements.
|
|
120
|
-
throw new error_1.DBOSInitializationError(`${names} requires an entitled DBOS key, but Conductor at ${url} has no entitlements route (HTTP 404). Upgrade Conductor, or check its URL.`);
|
|
126
|
+
catch (e) {
|
|
127
|
+
throw new EntitlementFailure(e instanceof Error ? (e.cause instanceof Error ? e.cause.message : e.message) : String(e));
|
|
121
128
|
}
|
|
122
|
-
if (
|
|
123
|
-
|
|
129
|
+
if (!response.ok) {
|
|
130
|
+
const status = response.status;
|
|
131
|
+
const detail = problemDetail(body);
|
|
132
|
+
if (status === 403 && response.headers.get(ERROR_CODE_HEADER) === PAST_LIMIT) {
|
|
133
|
+
throw refusal(`Your DBOS organization is past its plan limit, so it is not entitled to ${entitlements} (${names}). Upgrade its plan to continue.`);
|
|
134
|
+
}
|
|
135
|
+
const reason = detail ?? response.statusText;
|
|
136
|
+
if (target === exports.HOSTED_CONDUCTOR_URL && HOSTED_UNAVAILABLE.has(status)) {
|
|
137
|
+
// An outage, handled below.
|
|
138
|
+
}
|
|
139
|
+
else if (status === 404 && detail === undefined) {
|
|
140
|
+
// A bare 404 is a missing route: a Conductor predating per-feature entitlements.
|
|
141
|
+
throw refusal(`${names} requires an entitled DBOS key, but Conductor at ${url} has no entitlements route (HTTP 404). Upgrade Conductor, or check its URL.`);
|
|
142
|
+
}
|
|
143
|
+
else if (status === 401 && !key) {
|
|
144
|
+
throw new error_1.DBOSInitializationError(`${names} requires a DBOS key: Conductor at ${url} refused to check without one (HTTP 401): ${reason}. ${keyHint}`);
|
|
145
|
+
}
|
|
146
|
+
else if (status === 401) {
|
|
147
|
+
// An unknown key, or a user credential instead of an API key.
|
|
148
|
+
throw refusal(`${names} requires a valid DBOS key. Conductor at ${url} rejected the key (HTTP 401): ${reason}`);
|
|
149
|
+
}
|
|
150
|
+
else if (status < 500) {
|
|
151
|
+
// Any other refusal, such as the key's organization being gone, or a redirect.
|
|
152
|
+
throw refusal(`${names} requires an entitled DBOS key, but Conductor at ${url} refused the check (HTTP ${status}): ${reason}`);
|
|
153
|
+
}
|
|
154
|
+
throw new EntitlementFailure(detail ? `HTTP ${status}: ${detail}` : `HTTP ${status}`);
|
|
124
155
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
156
|
+
let granted;
|
|
157
|
+
try {
|
|
158
|
+
granted = parseEntitlements(body);
|
|
128
159
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
throw new error_1.DBOSInitializationError(`${names} requires an entitled DBOS key, but Conductor at ${url} refused the check (HTTP ${status}): ${reason}`);
|
|
160
|
+
catch (e) {
|
|
161
|
+
throw new EntitlementFailure(e.message);
|
|
132
162
|
}
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
163
|
+
const missing = features.filter((f) => granted[f.entitlement] !== true);
|
|
164
|
+
if (missing.length > 0) {
|
|
165
|
+
throw refusal(`Your DBOS organization is not entitled to ${missing.map((f) => f.entitlement).join(' and ')} ` +
|
|
166
|
+
`(${missing.map((f) => f.description).join(' and ')}): its plan does not include it. Contact DBOS to enable it.`);
|
|
167
|
+
}
|
|
168
|
+
return;
|
|
139
169
|
}
|
|
140
170
|
catch (e) {
|
|
141
|
-
|
|
171
|
+
if (!(e instanceof EntitlementFailure))
|
|
172
|
+
throw e;
|
|
173
|
+
failure = e.message;
|
|
142
174
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
`(${missing.map((f) => f.description).join(' and ')}): its plan does not include it. Contact DBOS to enable it.`);
|
|
175
|
+
if (target === exports.HOSTED_CONDUCTOR_URL) {
|
|
176
|
+
new logs_1.GlobalLogger().warn(`Could not verify the DBOS key's entitlements with Conductor at ${url} (${failure}); starting anyway.`);
|
|
177
|
+
return;
|
|
147
178
|
}
|
|
179
|
+
// Any other Conductor fails closed, so an unreachable URL cannot stand in for a key.
|
|
180
|
+
throw refusal(`${names} requires an entitled DBOS key, but checking it with Conductor at ${url} failed (${failure}). Retry once Conductor is reachable.`);
|
|
148
181
|
}
|
|
149
182
|
exports.requireEnterprise = requireEnterprise;
|
|
183
|
+
/** A check that got no answer from Conductor, as opposed to a refusal. */
|
|
184
|
+
class EntitlementFailure extends Error {
|
|
185
|
+
}
|
|
150
186
|
function unavailable(feature, cause) {
|
|
151
187
|
return new error_1.DBOSInitializationError(`${feature} requires ${exports.ENTERPRISE_PACKAGE}, at the same minor version as @dbos-inc/dbos-sdk ` +
|
|
152
188
|
`(${utils_1.globalParams.dbosVersion}). Install or upgrade it with \`npm install ${exports.ENTERPRISE_PACKAGE}\`. Cause: ${cause}`);
|
|
153
189
|
}
|
|
154
190
|
/** Load @dbos-inc/dbos-enterprise, for `feature`, which the error names when it cannot be loaded. */
|
|
155
191
|
function load(feature = exports.CONDUCTOR) {
|
|
192
|
+
// @dbos-inc/dbos-enterprise is proprietary: its license forbids modifying it or copying it beyond authorized use.
|
|
156
193
|
let loaded;
|
|
157
194
|
try {
|
|
158
195
|
// A literal specifier inside try: bundlers include the package when it is installed and tolerate its absence.
|
|
@@ -164,7 +201,7 @@ function load(feature = exports.CONDUCTOR) {
|
|
|
164
201
|
catch (e) {
|
|
165
202
|
throw unavailable(feature, e instanceof Error ? e.message.split('\n')[0] : String(e));
|
|
166
203
|
}
|
|
167
|
-
for (const name of ['ConductorWebsocket', 'AutoUpgradePass']) {
|
|
204
|
+
for (const name of ['ConductorWebsocket', 'AutoUpgradePass', 'ShardedSystemDatabase']) {
|
|
168
205
|
if (typeof loaded?.[name] !== 'function') {
|
|
169
206
|
throw unavailable(feature, `it does not export ${name}`);
|
|
170
207
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enterprise.js","sourceRoot":"","sources":["../../src/enterprise.ts"],"names":[],"mappings":";AAAA,iHAAiH;AACjH,iGAAiG;;;
|
|
1
|
+
{"version":3,"file":"enterprise.js","sourceRoot":"","sources":["../../src/enterprise.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,4 +48,6 @@ export { registerInternalQueue, isPartitionedQueue } from './wfqueue';
|
|
|
48
48
|
* name, otherwise a database-backed queue. Returns `null` if neither exists.
|
|
49
49
|
*/
|
|
50
50
|
export declare function getQueue(name: string): Promise<WorkflowQueue | null>;
|
|
51
|
+
/** Whether the system database is sharded, which a receiver enqueueing in batches does not support. */
|
|
52
|
+
export declare function isShardedSystemDatabase(): boolean;
|
|
51
53
|
//# sourceMappingURL=eventreceiver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventreceiver.d.ts","sourceRoot":"","sources":["../../src/eventreceiver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAgB,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAwB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAiB,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,YAAY,EAAE,8BAA8B,EAAE,CAAC;AAE/C;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAClE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAClC,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAG1F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,yEAAyE;AACzE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEtE;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAM1E"}
|
|
1
|
+
{"version":3,"file":"eventreceiver.d.ts","sourceRoot":"","sources":["../../src/eventreceiver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAgB,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAwB,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAiB,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD,YAAY,EAAE,8BAA8B,EAAE,CAAC;AAE/C;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAClE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAClC,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAG1F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,yEAAyE;AACzE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEtE;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAM1E;AAED,uGAAuG;AACvG,wBAAgB,uBAAuB,IAAI,OAAO,CAGjD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getQueue = exports.isPartitionedQueue = exports.registerInternalQueue = exports.registerPollerQueue = exports.enqueueWorkflows = exports.prepareEnqueuedWorkflow = void 0;
|
|
3
|
+
exports.isShardedSystemDatabase = exports.getQueue = exports.isPartitionedQueue = exports.registerInternalQueue = exports.registerPollerQueue = exports.enqueueWorkflows = exports.prepareEnqueuedWorkflow = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Entry point for event receivers (Kafka, SQS, ...) that live in their own packages.
|
|
6
6
|
*
|
|
@@ -65,4 +65,10 @@ async function getQueue(name) {
|
|
|
65
65
|
return record === null ? null : new wfqueue_1.WorkflowQueue(record);
|
|
66
66
|
}
|
|
67
67
|
exports.getQueue = getQueue;
|
|
68
|
+
/** Whether the system database is sharded, which a receiver enqueueing in batches does not support. */
|
|
69
|
+
function isShardedSystemDatabase() {
|
|
70
|
+
(0, decorators_1.ensureDBOSIsLaunched)('isShardedSystemDatabase');
|
|
71
|
+
return dbos_executor_1.DBOSExecutor.globalInstance.systemDatabase.sharded;
|
|
72
|
+
}
|
|
73
|
+
exports.isShardedSystemDatabase = isShardedSystemDatabase;
|
|
68
74
|
//# sourceMappingURL=eventreceiver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventreceiver.js","sourceRoot":"","sources":["../../src/eventreceiver.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,mDAA+E;AAC/E,6CAAwE;AAExE,uCAAyD;AAUzD;;;;;;GAMG;AACI,KAAK,UAAU,uBAAuB,CAC3C,QAAkC,EAClC,IAAO,EACP,OAAuC;IAEvC,IAAA,iCAAoB,EAAC,yBAAyB,CAAC,CAAC;IAChD,OAAO,MAAM,4BAAY,CAAC,cAAe,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7F,CAAC;AAPD,0DAOC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,gBAAgB,CAAC,SAA6B;IAClE,IAAA,iCAAoB,EAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,MAAM,4BAAY,CAAC,cAAe,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACvF,CAAC;AAHD,4CAGC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,uBAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAFD,kDAEC;AAED,yEAAyE;AACzE,qCAAsE;AAA7D,gHAAA,qBAAqB,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAElD;;;GAGG;AACI,KAAK,UAAU,QAAQ,CAAC,IAAY;IACzC,MAAM,QAAQ,GAAG,uBAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAA,iCAAoB,EAAC,UAAU,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,4BAAY,CAAC,cAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,uBAAa,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAND,4BAMC"}
|
|
1
|
+
{"version":3,"file":"eventreceiver.js","sourceRoot":"","sources":["../../src/eventreceiver.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,mDAA+E;AAC/E,6CAAwE;AAExE,uCAAyD;AAUzD;;;;;;GAMG;AACI,KAAK,UAAU,uBAAuB,CAC3C,QAAkC,EAClC,IAAO,EACP,OAAuC;IAEvC,IAAA,iCAAoB,EAAC,yBAAyB,CAAC,CAAC;IAChD,OAAO,MAAM,4BAAY,CAAC,cAAe,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7F,CAAC;AAPD,0DAOC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,gBAAgB,CAAC,SAA6B;IAClE,IAAA,iCAAoB,EAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,MAAM,4BAAY,CAAC,cAAe,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACvF,CAAC;AAHD,4CAGC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,uBAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAFD,kDAEC;AAED,yEAAyE;AACzE,qCAAsE;AAA7D,gHAAA,qBAAqB,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAElD;;;GAGG;AACI,KAAK,UAAU,QAAQ,CAAC,IAAY;IACzC,MAAM,QAAQ,GAAG,uBAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAA,iCAAoB,EAAC,UAAU,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,4BAAY,CAAC,cAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,uBAAa,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAND,4BAMC;AAED,uGAAuG;AACvG,SAAgB,uBAAuB;IACrC,IAAA,iCAAoB,EAAC,yBAAyB,CAAC,CAAC;IAChD,OAAO,4BAAY,CAAC,cAAe,CAAC,cAAc,CAAC,OAAO,CAAC;AAC7D,CAAC;AAHD,0DAGC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { DBOS, RecvOptions, GetEventOptions, GetResultOptions, PollingOptions, WaitFirstOptions, WaitAllOptions, SetWorkflowDelayOptions, ReadStreamOptions, ReadStreamOffsetOptions, } from './dbos';
|
|
1
|
+
export { DBOS, RecvOptions, GetEventOptions, GetResultOptions, PollingOptions, WaitFirstOptions, WaitAllOptions, SetWorkflowDelayOptions, ReadStreamOptions, ReadStreamOffsetOptions, ShardKeyOptions, } from './dbos';
|
|
2
|
+
export type { StepReservation } from './dbos';
|
|
2
3
|
export { DBOSClient } from './client';
|
|
3
4
|
export { WorkflowSchedule, ScheduledWorkflowFn, ScheduleOptions } from './scheduler/scheduler';
|
|
4
5
|
export { AlertHandler, DBOSLifecycleCallback, ExternalRegistration, MethodRegistrationBase } from './decorators';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,QAAQ,CAAC;AAEhB,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEjH,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAEjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EACL,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAYgB;AAXd,4FAAA,IAAI,OAAA;AAeN,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AAQnB,iDAAiC;AAEjC,iCAAiF;AAAxE,kHAAA,yBAAyB,OAAA;AAAE,oHAAA,2BAA2B,OAAA;AAE/D,gEAAoE;AAA3D,yHAAA,qBAAqB,OAAA;AAE9B,uCAUoB;AANlB,wGAAA,YAAY,OAAA;AAQd,yCAAyD;AAAhD,sGAAA,SAAS,OAAA;AAAE,4GAAA,eAAe,OAAA;AAMnC,2CAAgE;AAAzC,gHAAA,kBAAkB,OAAA"}
|
|
@@ -6,6 +6,7 @@ export interface ScheduleOptions {
|
|
|
6
6
|
automaticBackfill?: boolean;
|
|
7
7
|
cronTimezone?: string;
|
|
8
8
|
queueName?: string;
|
|
9
|
+
shardKey?: string;
|
|
9
10
|
}
|
|
10
11
|
export interface WorkflowSchedule {
|
|
11
12
|
scheduleId: string;
|
|
@@ -20,9 +21,11 @@ export interface WorkflowSchedule {
|
|
|
20
21
|
cronTimezone: string | null;
|
|
21
22
|
queueName: string | null;
|
|
22
23
|
applicationName?: string;
|
|
24
|
+
shardKey?: string;
|
|
23
25
|
}
|
|
24
26
|
export declare function toWorkflowSchedule(internal: WorkflowScheduleInternal, serializer: DBOSSerializer): Promise<WorkflowSchedule>;
|
|
25
27
|
export declare function createScheduleId(): string;
|
|
28
|
+
export declare function scheduleSignature(sched: WorkflowScheduleInternal): string;
|
|
26
29
|
export declare class DynamicSchedulerLoop implements DBOSLifecycleCallback {
|
|
27
30
|
#private;
|
|
28
31
|
constructor(pollingIntervalMs?: number);
|
|
@@ -31,4 +34,6 @@ export declare class DynamicSchedulerLoop implements DBOSLifecycleCallback {
|
|
|
31
34
|
}
|
|
32
35
|
export declare function triggerSchedule(systemDatabase: SystemDatabase, serializer: DBOSSerializer, name: string): Promise<string>;
|
|
33
36
|
export declare function backfillSchedule(systemDatabase: SystemDatabase, serializer: DBOSSerializer, name: string, start: Date, end: Date): Promise<string[]>;
|
|
37
|
+
/** The shard key a schedule's workflows run under. */
|
|
38
|
+
export declare function scheduleShardKey(systemDatabase: SystemDatabase, name: string): Promise<string | undefined>;
|
|
34
39
|
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/scheduler/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,wBAAwB,EAA+B,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAWtD,MAAM,MAAM,mBAAmB,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/scheduler/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,wBAAwB,EAA+B,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAWtD,MAAM,MAAM,mBAAmB,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAkB3B;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AASD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,wBAAwB,GAAG,MAAM,CAUzE;AAUD,qBAAa,oBAAqB,YAAW,qBAAqB;;gBAMpD,iBAAiB,CAAC,EAAE,MAAM;IAKhC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA6M/B;AA4CD,wBAAsB,eAAe,CACnC,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,cAAc,EAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,IAAI,EACX,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,MAAM,EAAE,CAAC,CA6BnB;AAED,sDAAsD;AACtD,wBAAsB,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEhH"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.backfillSchedule = exports.triggerSchedule = exports.DynamicSchedulerLoop = exports.createScheduleId = exports.toWorkflowSchedule = void 0;
|
|
3
|
+
exports.scheduleShardKey = exports.backfillSchedule = exports.triggerSchedule = exports.DynamicSchedulerLoop = exports.scheduleSignature = exports.createScheduleId = exports.toWorkflowSchedule = void 0;
|
|
4
4
|
const serialization_1 = require("../serialization");
|
|
5
5
|
const crypto_1 = require("crypto");
|
|
6
6
|
const __1 = require("..");
|
|
@@ -25,6 +25,7 @@ async function toWorkflowSchedule(internal, serializer) {
|
|
|
25
25
|
cronTimezone: internal.cronTimezone,
|
|
26
26
|
queueName: internal.queueName,
|
|
27
27
|
applicationName: internal.applicationName,
|
|
28
|
+
shardKey: internal.shardKey,
|
|
28
29
|
};
|
|
29
30
|
}
|
|
30
31
|
exports.toWorkflowSchedule = toWorkflowSchedule;
|
|
@@ -41,8 +42,10 @@ function scheduleSignature(sched) {
|
|
|
41
42
|
sched.context,
|
|
42
43
|
sched.cronTimezone ?? null,
|
|
43
44
|
sched.queueName ?? null,
|
|
45
|
+
sched.shardKey ?? null,
|
|
44
46
|
]);
|
|
45
47
|
}
|
|
48
|
+
exports.scheduleSignature = scheduleSignature;
|
|
46
49
|
// During the first minute after startup, poll for schedules every second so schedules
|
|
47
50
|
// registered around launch are picked up promptly rather than after a full polling interval.
|
|
48
51
|
const STARTUP_FAST_POLL_DURATION_MS = 60_000;
|
|
@@ -144,7 +147,7 @@ class DynamicSchedulerLoop {
|
|
|
144
147
|
const controller = new AbortController();
|
|
145
148
|
const executor = dbos_executor_1.DBOSExecutor.globalInstance;
|
|
146
149
|
// Only enqueues, never runs the workflow, so its retries may be abandoned when the loop stops.
|
|
147
|
-
const promise = (0, context_1.runWithAbortableDbRetries)(controller.signal, () => DynamicSchedulerLoop.#scheduleLoop(sched.scheduleName, sched.workflowName, sched.workflowClassName, sched.schedule, sched.context, executor.serializer, controller.signal, sched.cronTimezone ?? undefined, sched.queueName ?? undefined, sched.applicationName));
|
|
150
|
+
const promise = (0, context_1.runWithAbortableDbRetries)(controller.signal, () => DynamicSchedulerLoop.#scheduleLoop(sched.scheduleName, sched.workflowName, sched.workflowClassName, sched.schedule, sched.context, executor.serializer, controller.signal, sched.cronTimezone ?? undefined, sched.queueName ?? undefined, sched.applicationName, sched.shardKey));
|
|
148
151
|
this.#scheduleLoops.set(sched.scheduleName, { controller, promise, signature });
|
|
149
152
|
}
|
|
150
153
|
}
|
|
@@ -152,7 +155,7 @@ class DynamicSchedulerLoop {
|
|
|
152
155
|
await (0, utils_1.interruptibleSleep)(pollTimeout(), signal);
|
|
153
156
|
}
|
|
154
157
|
}
|
|
155
|
-
static async #scheduleLoop(scheduleName, workflowName, workflowClassName, cronExpression, serializedContext, serializer, signal, cronTimezone, queueName, applicationName) {
|
|
158
|
+
static async #scheduleLoop(scheduleName, workflowName, workflowClassName, cronExpression, serializedContext, serializer, signal, cronTimezone, queueName, applicationName, shardKey) {
|
|
156
159
|
let timeMatcher;
|
|
157
160
|
try {
|
|
158
161
|
timeMatcher = new crontab_1.TimeMatcher(cronExpression, cronTimezone);
|
|
@@ -174,6 +177,7 @@ class DynamicSchedulerLoop {
|
|
|
174
177
|
cronTimezone: cronTimezone ?? null,
|
|
175
178
|
queueName: queueName ?? null,
|
|
176
179
|
applicationName,
|
|
180
|
+
shardKey,
|
|
177
181
|
};
|
|
178
182
|
let lastExec = new Date().setMilliseconds(0);
|
|
179
183
|
while (!signal.aborted) {
|
|
@@ -197,7 +201,7 @@ class DynamicSchedulerLoop {
|
|
|
197
201
|
const workflowID = `sched-${scheduleName}-${date.toISOString()}`;
|
|
198
202
|
try {
|
|
199
203
|
// Idempotency check -- for performance only, not needed for correctness
|
|
200
|
-
const existing = await __1.DBOS.getWorkflowStatus(workflowID);
|
|
204
|
+
const existing = await __1.DBOS.getWorkflowStatus(workflowID, { shardKey });
|
|
201
205
|
if (existing) {
|
|
202
206
|
lastExec = nextExec;
|
|
203
207
|
continue;
|
|
@@ -244,6 +248,7 @@ async function enqueueScheduledWorkflow(systemDatabase, serializer, sched, workf
|
|
|
244
248
|
scheduleName: sched.scheduleName,
|
|
245
249
|
// Owned where possible: the internal queue's shared name cannot route an unclaimed row.
|
|
246
250
|
applicationName: owner,
|
|
251
|
+
shardKey: sched.shardKey,
|
|
247
252
|
};
|
|
248
253
|
await systemDatabase.initWorkflowStatus(internalStatus, null);
|
|
249
254
|
return;
|
|
@@ -287,4 +292,9 @@ async function backfillSchedule(systemDatabase, serializer, name, start, end) {
|
|
|
287
292
|
return workflowIDs;
|
|
288
293
|
}
|
|
289
294
|
exports.backfillSchedule = backfillSchedule;
|
|
295
|
+
/** The shard key a schedule's workflows run under. */
|
|
296
|
+
async function scheduleShardKey(systemDatabase, name) {
|
|
297
|
+
return (await systemDatabase.getSchedule(name))?.shardKey;
|
|
298
|
+
}
|
|
299
|
+
exports.scheduleShardKey = scheduleShardKey;
|
|
290
300
|
//# sourceMappingURL=scheduler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/scheduler/scheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/scheduler/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Throw unless `shardKey` is undefined, null, or a non-empty string. */
|
|
2
|
+
export declare function validateShardKey(shardKey: unknown): void;
|
|
3
|
+
/** Run `callback` with each workflow ID in `keys` living under its shard key. Undefined and null keys are ignored. */
|
|
4
|
+
export declare function bindShardKeys<R>(keys: Iterable<readonly [string, string | null | undefined]> | Record<string, string | null | undefined>, callback: () => R): R;
|
|
5
|
+
/** The shard key bound for this workflow ID, if any. */
|
|
6
|
+
export declare function boundShardKey(workflowID: string): string | undefined;
|
|
7
|
+
/** Run `callback` with statements not addressing a specific workflow running under `key`. */
|
|
8
|
+
export declare function shardKeyScope<R>(key: string | null | undefined, callback: () => R): R;
|
|
9
|
+
/** The shard key of the enclosing scope, if any. */
|
|
10
|
+
export declare function scopedShardKey(): string | undefined;
|
|
11
|
+
/** Run `callback` with every binding and scope emptied, so a workflow body inherits none from its caller. */
|
|
12
|
+
export declare function withClearedShardKeyState<R>(callback: () => R): R;
|
|
13
|
+
//# sourceMappingURL=shard_keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard_keys.d.ts","sourceRoot":"","sources":["../../src/shard_keys.ts"],"names":[],"mappings":"AAeA,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAIxD;AAED,sHAAsH;AACtH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EACxG,QAAQ,EAAE,MAAM,CAAC,GAChB,CAAC,CAeH;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAGrF;AAED,oDAAoD;AACpD,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD;AAED,6GAA6G;AAC7G,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAEhE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Shard keys a caller supplies for the workflows it addresses, read only by a sharded system database.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.withClearedShardKeyState = exports.scopedShardKey = exports.shardKeyScope = exports.boundShardKey = exports.bindShardKeys = exports.validateShardKey = void 0;
|
|
5
|
+
const async_hooks_1 = require("async_hooks");
|
|
6
|
+
const util_1 = require("util");
|
|
7
|
+
const error_1 = require("./error");
|
|
8
|
+
const shardKeyState = new async_hooks_1.AsyncLocalStorage();
|
|
9
|
+
/** Throw unless `shardKey` is undefined, null, or a non-empty string. */
|
|
10
|
+
function validateShardKey(shardKey) {
|
|
11
|
+
if (shardKey !== undefined && shardKey !== null && (typeof shardKey !== 'string' || shardKey === '')) {
|
|
12
|
+
throw new error_1.DBOSError(`Invalid shard key ${(0, util_1.inspect)(shardKey)}: a shard key must be a non-empty string`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.validateShardKey = validateShardKey;
|
|
16
|
+
/** Run `callback` with each workflow ID in `keys` living under its shard key. Undefined and null keys are ignored. */
|
|
17
|
+
function bindShardKeys(keys, callback) {
|
|
18
|
+
const entries = Symbol.iterator in keys ? Array.from(keys) : Object.entries(keys);
|
|
19
|
+
const given = entries.filter((entry) => entry[1] !== undefined && entry[1] !== null);
|
|
20
|
+
for (const [, key] of given) {
|
|
21
|
+
validateShardKey(key);
|
|
22
|
+
}
|
|
23
|
+
if (given.length === 0) {
|
|
24
|
+
return callback();
|
|
25
|
+
}
|
|
26
|
+
const current = shardKeyState.getStore();
|
|
27
|
+
const bindings = new Map(current?.bindings);
|
|
28
|
+
for (const [workflowID, key] of given) {
|
|
29
|
+
bindings.set(workflowID, key);
|
|
30
|
+
}
|
|
31
|
+
return shardKeyState.run({ ...current, bindings }, callback);
|
|
32
|
+
}
|
|
33
|
+
exports.bindShardKeys = bindShardKeys;
|
|
34
|
+
/** The shard key bound for this workflow ID, if any. */
|
|
35
|
+
function boundShardKey(workflowID) {
|
|
36
|
+
return shardKeyState.getStore()?.bindings?.get(workflowID);
|
|
37
|
+
}
|
|
38
|
+
exports.boundShardKey = boundShardKey;
|
|
39
|
+
/** Run `callback` with statements not addressing a specific workflow running under `key`. */
|
|
40
|
+
function shardKeyScope(key, callback) {
|
|
41
|
+
validateShardKey(key);
|
|
42
|
+
return shardKeyState.run({ ...shardKeyState.getStore(), scope: key ?? undefined }, callback);
|
|
43
|
+
}
|
|
44
|
+
exports.shardKeyScope = shardKeyScope;
|
|
45
|
+
/** The shard key of the enclosing scope, if any. */
|
|
46
|
+
function scopedShardKey() {
|
|
47
|
+
return shardKeyState.getStore()?.scope;
|
|
48
|
+
}
|
|
49
|
+
exports.scopedShardKey = scopedShardKey;
|
|
50
|
+
/** Run `callback` with every binding and scope emptied, so a workflow body inherits none from its caller. */
|
|
51
|
+
function withClearedShardKeyState(callback) {
|
|
52
|
+
return shardKeyState.run({}, callback);
|
|
53
|
+
}
|
|
54
|
+
exports.withClearedShardKeyState = withClearedShardKeyState;
|
|
55
|
+
//# sourceMappingURL=shard_keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard_keys.js","sourceRoot":"","sources":["../../src/shard_keys.ts"],"names":[],"mappings":";AAAA,uGAAuG;;;AAEvG,6CAAgD;AAChD,+BAA+B;AAC/B,mCAAoC;AASpC,MAAM,aAAa,GAAG,IAAI,+BAAiB,EAAiB,CAAC;AAE7D,yEAAyE;AACzE,SAAgB,gBAAgB,CAAC,QAAiB;IAChD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,CAAC,EAAE,CAAC;QACrG,MAAM,IAAI,iBAAS,CAAC,qBAAqB,IAAA,cAAO,EAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAJD,4CAIC;AAED,sHAAsH;AACtH,SAAgB,aAAa,CAC3B,IAAwG,EACxG,QAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAChH,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;QAC5B,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5C,KAAK,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;QACtC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAlBD,sCAkBC;AAED,wDAAwD;AACxD,SAAgB,aAAa,CAAC,UAAkB;IAC9C,OAAO,aAAa,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AAC7D,CAAC;AAFD,sCAEC;AAED,6FAA6F;AAC7F,SAAgB,aAAa,CAAI,GAA8B,EAAE,QAAiB;IAChF,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC/F,CAAC;AAHD,sCAGC;AAED,oDAAoD;AACpD,SAAgB,cAAc;IAC5B,OAAO,aAAa,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC;AACzC,CAAC;AAFD,wCAEC;AAED,6GAA6G;AAC7G,SAAgB,wBAAwB,CAAI,QAAiB;IAC3D,OAAO,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAFD,4DAEC"}
|
package/dist/src/streams.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export interface StreamReadParams {
|
|
|
9
9
|
functionName: string;
|
|
10
10
|
/** Whether a read from a workflow is recorded as a step. Client reads never are. */
|
|
11
11
|
checkpoint: boolean;
|
|
12
|
+
/** The shard key of the workflow whose stream is read; required on a sharded system database. */
|
|
13
|
+
shardKey?: string;
|
|
12
14
|
}
|
|
13
15
|
/** Yield a stream's values in order, checkpointing each one when read from a workflow. */
|
|
14
16
|
export declare function readStreamCore<T>(sysdb: SystemDatabase, serializer: DBOSSerializer, workflowID: string, key: string, params: StreamReadParams): AsyncGenerator<T, void, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/streams.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,cAAc,EAGf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIL,cAAc,EACf,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/streams.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,cAAc,EAGf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIL,cAAc,EACf,MAAM,mBAAmB,CAAC;AAK3B,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,UAAU,EAAE,OAAO,CAAC;IACpB,iGAAiG;IACjG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkJD,0FAA0F;AAC1F,wBAAuB,cAAc,CAAC,CAAC,EACrC,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,GACvB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAmGlC;AAED,uFAAuF;AACvF,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,CAAC,CAAC,CAOZ"}
|
package/dist/src/streams.js
CHANGED
|
@@ -6,6 +6,7 @@ const error_1 = require("./error");
|
|
|
6
6
|
const serialization_1 = require("./serialization");
|
|
7
7
|
const system_database_1 = require("./system_database");
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
|
+
const shard_keys_1 = require("./shard_keys");
|
|
9
10
|
const workflow_1 = require("./workflow");
|
|
10
11
|
// Returned by StreamReadCheckpointer.replay when a step has no recorded result and must be read live.
|
|
11
12
|
const noRecordedValue = Symbol('noRecordedValue');
|
|
@@ -139,7 +140,9 @@ async function* readStreamCore(sysdb, serializer, workflowID, key, params) {
|
|
|
139
140
|
const { pollingIntervalMs, timeoutMS, functionName } = params;
|
|
140
141
|
let offset = params.offset;
|
|
141
142
|
const checkpointer = params.checkpoint ? new StreamReadCheckpointer(sysdb, serializer, key, functionName) : undefined;
|
|
142
|
-
|
|
143
|
+
// Bound per call, never across a yield, which would leak into the consumer's context.
|
|
144
|
+
const targetKey = [[workflowID, params.shardKey]];
|
|
145
|
+
const payload = (0, shard_keys_1.bindShardKeys)(targetKey, () => sysdb.waiter(workflowID, key));
|
|
143
146
|
let finalRead = false;
|
|
144
147
|
try {
|
|
145
148
|
while (true) {
|
|
@@ -171,7 +174,7 @@ async function* readStreamCore(sysdb, serializer, workflowID, key, params) {
|
|
|
171
174
|
const cbr = sysdb.streamsMap.registerCallback(payload, resolveNotification);
|
|
172
175
|
try {
|
|
173
176
|
// One round trip for both the value and the workflow's status.
|
|
174
|
-
const read = await sysdb.readStreamValue(workflowID, key, offset);
|
|
177
|
+
const read = await (0, shard_keys_1.bindShardKeys)(targetKey, () => sysdb.readStreamValue(workflowID, key, offset));
|
|
175
178
|
if (read.status === null) {
|
|
176
179
|
throw new error_1.DBOSNonExistentWorkflowError(`Workflow ${workflowID} does not exist`);
|
|
177
180
|
}
|