@xemahq/temporal-runtime 0.5.2 → 0.7.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.
- package/README.md +154 -11
- package/dist/bin/controller-token-publisher.d.ts +3 -0
- package/dist/bin/controller-token-publisher.d.ts.map +1 -0
- package/dist/bin/controller-token-publisher.js +18 -0
- package/dist/bin/controller-token-publisher.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/access-token.d.ts +11 -0
- package/dist/lib/access-token.d.ts.map +1 -0
- package/dist/lib/access-token.js +30 -0
- package/dist/lib/access-token.js.map +1 -0
- package/dist/lib/base-temporal-client.service.d.ts +3 -2
- package/dist/lib/base-temporal-client.service.d.ts.map +1 -1
- package/dist/lib/base-temporal-client.service.js +5 -5
- package/dist/lib/base-temporal-client.service.js.map +1 -1
- package/dist/lib/biome-worker.d.ts +83 -0
- package/dist/lib/biome-worker.d.ts.map +1 -0
- package/dist/lib/biome-worker.js +253 -0
- package/dist/lib/biome-worker.js.map +1 -0
- package/dist/lib/bounded-retry.d.ts +22 -0
- package/dist/lib/bounded-retry.d.ts.map +1 -0
- package/dist/lib/bounded-retry.js +67 -0
- package/dist/lib/bounded-retry.js.map +1 -0
- package/dist/lib/client-credentials-token-source.d.ts +23 -0
- package/dist/lib/client-credentials-token-source.d.ts.map +1 -0
- package/dist/lib/client-credentials-token-source.js +108 -0
- package/dist/lib/client-credentials-token-source.js.map +1 -0
- package/dist/lib/connection.d.ts +48 -9
- package/dist/lib/connection.d.ts.map +1 -1
- package/dist/lib/connection.js +153 -41
- package/dist/lib/connection.js.map +1 -1
- package/dist/lib/controller-token-publisher.d.ts +51 -0
- package/dist/lib/controller-token-publisher.d.ts.map +1 -0
- package/dist/lib/controller-token-publisher.js +116 -0
- package/dist/lib/controller-token-publisher.js.map +1 -0
- package/dist/lib/fairness-constants.d.ts +3 -0
- package/dist/lib/fairness-constants.d.ts.map +1 -0
- package/dist/lib/fairness-constants.js +6 -0
- package/dist/lib/fairness-constants.js.map +1 -0
- package/dist/lib/fairness.d.ts +13 -0
- package/dist/lib/fairness.d.ts.map +1 -0
- package/dist/lib/fairness.js +56 -0
- package/dist/lib/fairness.js.map +1 -0
- package/dist/lib/namespace.d.ts +4 -0
- package/dist/lib/namespace.d.ts.map +1 -0
- package/dist/lib/namespace.js +18 -0
- package/dist/lib/namespace.js.map +1 -0
- package/dist/lib/org-erasure.d.ts +13 -0
- package/dist/lib/org-erasure.d.ts.map +1 -0
- package/dist/lib/org-erasure.js +68 -0
- package/dist/lib/org-erasure.js.map +1 -0
- package/dist/lib/proactive-token-refresher.d.ts +47 -0
- package/dist/lib/proactive-token-refresher.d.ts.map +1 -0
- package/dist/lib/proactive-token-refresher.js +147 -0
- package/dist/lib/proactive-token-refresher.js.map +1 -0
- package/dist/lib/search-attribute-constants.d.ts +3 -0
- package/dist/lib/search-attribute-constants.d.ts.map +1 -0
- package/dist/lib/search-attribute-constants.js +6 -0
- package/dist/lib/search-attribute-constants.js.map +1 -0
- package/dist/lib/search-attributes.d.ts +4 -18
- package/dist/lib/search-attributes.d.ts.map +1 -1
- package/dist/lib/search-attributes.js +33 -40
- package/dist/lib/search-attributes.js.map +1 -1
- package/dist/lib/standalone-activity.d.ts +23 -0
- package/dist/lib/standalone-activity.d.ts.map +1 -0
- package/dist/lib/standalone-activity.js +48 -0
- package/dist/lib/standalone-activity.js.map +1 -0
- package/dist/lib/versioned-worker.d.ts +26 -0
- package/dist/lib/versioned-worker.d.ts.map +1 -0
- package/dist/lib/versioned-worker.js +60 -0
- package/dist/lib/versioned-worker.js.map +1 -0
- package/dist/lib/worker-deployment-version.d.ts +8 -0
- package/dist/lib/worker-deployment-version.d.ts.map +1 -0
- package/dist/lib/worker-deployment-version.js +45 -0
- package/dist/lib/worker-deployment-version.js.map +1 -0
- package/dist/lib/worker.d.ts +7 -7
- package/dist/lib/worker.d.ts.map +1 -1
- package/dist/lib/worker.js +33 -37
- package/dist/lib/worker.js.map +1 -1
- package/dist/lib/workflow-interceptors/fairness-guard.d.ts +4 -0
- package/dist/lib/workflow-interceptors/fairness-guard.d.ts.map +1 -0
- package/dist/lib/workflow-interceptors/fairness-guard.js +65 -0
- package/dist/lib/workflow-interceptors/fairness-guard.js.map +1 -0
- package/dist/lib/workflow-interceptors/fairness-propagation.d.ts +3 -0
- package/dist/lib/workflow-interceptors/fairness-propagation.d.ts.map +1 -0
- package/dist/lib/workflow-interceptors/fairness-propagation.js +6 -0
- package/dist/lib/workflow-interceptors/fairness-propagation.js.map +1 -0
- package/dist/lib/workflow-interceptors/org-fairness-required.d.ts +3 -0
- package/dist/lib/workflow-interceptors/org-fairness-required.d.ts.map +1 -0
- package/dist/lib/workflow-interceptors/org-fairness-required.js +6 -0
- package/dist/lib/workflow-interceptors/org-fairness-required.js.map +1 -0
- package/dist/lib/workflow-interceptors/org-search-attribute.d.ts +3 -0
- package/dist/lib/workflow-interceptors/org-search-attribute.d.ts.map +1 -0
- package/dist/lib/workflow-interceptors/org-search-attribute.js +49 -0
- package/dist/lib/workflow-interceptors/org-search-attribute.js.map +1 -0
- package/dist/lib/workflow-purity.d.ts +27 -0
- package/dist/lib/workflow-purity.d.ts.map +1 -0
- package/dist/lib/workflow-purity.js +115 -0
- package/dist/lib/workflow-purity.js.map +1 -0
- package/package.json +21 -10
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.orgWorkflowExecutionsQuery = orgWorkflowExecutionsQuery;
|
|
4
|
+
exports.eraseOrgWorkflowExecutions = eraseOrgWorkflowExecutions;
|
|
5
|
+
const client_1 = require("@temporalio/client");
|
|
6
|
+
const fairness_1 = require("./fairness");
|
|
7
|
+
const search_attribute_constants_1 = require("./search-attribute-constants");
|
|
8
|
+
const DEFAULT_DEADLINE_MS = 5 * 60_000;
|
|
9
|
+
const DEFAULT_PASS_INTERVAL_MS = 1_000;
|
|
10
|
+
const GRPC_NOT_FOUND = 5;
|
|
11
|
+
function orgWorkflowExecutionsQuery(orgId) {
|
|
12
|
+
const id = (0, fairness_1.orgFairnessKey)(orgId);
|
|
13
|
+
if (/['"\\]/.test(id)) {
|
|
14
|
+
throw new Error(`orgWorkflowExecutionsQuery: org id ${JSON.stringify(orgId)} contains a quote or backslash.`);
|
|
15
|
+
}
|
|
16
|
+
return `${search_attribute_constants_1.SEARCH_ATTR_ORG_ID} = '${id}'`;
|
|
17
|
+
}
|
|
18
|
+
function isNotFound(error) {
|
|
19
|
+
if (error instanceof client_1.WorkflowNotFoundError)
|
|
20
|
+
return true;
|
|
21
|
+
const code = error?.code;
|
|
22
|
+
return code === GRPC_NOT_FOUND;
|
|
23
|
+
}
|
|
24
|
+
async function eraseOrgWorkflowExecutions(client, options) {
|
|
25
|
+
const query = orgWorkflowExecutionsQuery(options.orgId);
|
|
26
|
+
const namespace = client.options.namespace;
|
|
27
|
+
const deadline = Date.now() + (options.deadlineMs ?? DEFAULT_DEADLINE_MS);
|
|
28
|
+
const interval = options.passIntervalMs ?? DEFAULT_PASS_INTERVAL_MS;
|
|
29
|
+
const erased = new Set();
|
|
30
|
+
for (;;) {
|
|
31
|
+
let found = 0;
|
|
32
|
+
for await (const execution of client.workflow.list({ query })) {
|
|
33
|
+
found += 1;
|
|
34
|
+
const { workflowId, runId } = execution;
|
|
35
|
+
if (execution.status.name === 'RUNNING') {
|
|
36
|
+
try {
|
|
37
|
+
await client.workflow
|
|
38
|
+
.getHandle(workflowId, runId)
|
|
39
|
+
.terminate(options.reason);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
if (!isNotFound(error))
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
await client.workflowService.deleteWorkflowExecution({
|
|
48
|
+
namespace,
|
|
49
|
+
workflowExecution: { workflowId, runId },
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (!isNotFound(error))
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
erased.add(`${workflowId}/${runId}`);
|
|
57
|
+
}
|
|
58
|
+
if (found === 0) {
|
|
59
|
+
return { erased: erased.size };
|
|
60
|
+
}
|
|
61
|
+
if (Date.now() > deadline) {
|
|
62
|
+
throw new Error(`eraseOrgWorkflowExecutions: org ${options.orgId} still has executions in ` +
|
|
63
|
+
`namespace '${namespace}' after the erasure deadline; the erasure did not complete.`);
|
|
64
|
+
}
|
|
65
|
+
await new Promise((resolve) => setTimeout(resolve, interval));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=org-erasure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-erasure.js","sourceRoot":"","sources":["../../src/lib/org-erasure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { AccessToken, AccessTokenSource } from './access-token';
|
|
2
|
+
import { type BoundedRetryPolicy, type RetryClock } from './bounded-retry';
|
|
3
|
+
export type AccessTokenListener = (token: AccessToken) => void | Promise<void>;
|
|
4
|
+
export interface TokenRefresherLogger {
|
|
5
|
+
log(message: string): void;
|
|
6
|
+
warn(message: string): void;
|
|
7
|
+
error(message: string): void;
|
|
8
|
+
}
|
|
9
|
+
export interface ProactiveTokenRefresherOptions {
|
|
10
|
+
readonly source: AccessTokenSource;
|
|
11
|
+
readonly description: string;
|
|
12
|
+
readonly refreshAtFraction?: number;
|
|
13
|
+
readonly startupRetry?: BoundedRetryPolicy;
|
|
14
|
+
readonly refreshRetryInitialDelayMs?: number;
|
|
15
|
+
readonly refreshRetryMaxDelayMs?: number;
|
|
16
|
+
readonly onFatal?: (error: Error) => void;
|
|
17
|
+
readonly logger?: TokenRefresherLogger;
|
|
18
|
+
readonly clock?: RetryClock;
|
|
19
|
+
}
|
|
20
|
+
export declare class TokenRefreshFatalError extends Error {
|
|
21
|
+
constructor(message: string, cause?: unknown);
|
|
22
|
+
}
|
|
23
|
+
export declare class ProactiveTokenRefresher {
|
|
24
|
+
private readonly options;
|
|
25
|
+
private current;
|
|
26
|
+
private obtainedAt;
|
|
27
|
+
private timer;
|
|
28
|
+
private stopped;
|
|
29
|
+
private readonly listeners;
|
|
30
|
+
private readonly clock;
|
|
31
|
+
private readonly logger;
|
|
32
|
+
private readonly fraction;
|
|
33
|
+
private readonly retryInitialMs;
|
|
34
|
+
private readonly retryMaxMs;
|
|
35
|
+
private readonly onFatal;
|
|
36
|
+
private constructor();
|
|
37
|
+
static start(options: ProactiveTokenRefresherOptions): Promise<ProactiveTokenRefresher>;
|
|
38
|
+
token(): string;
|
|
39
|
+
currentToken(): AccessToken;
|
|
40
|
+
subscribe(listener: AccessTokenListener): Promise<() => void>;
|
|
41
|
+
stop(): void;
|
|
42
|
+
private scheduleNext;
|
|
43
|
+
private arm;
|
|
44
|
+
private refresh;
|
|
45
|
+
private fail;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=proactive-token-refresher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proactive-token-refresher.d.ts","sourceRoot":"","sources":["../../src/lib/proactive-token-refresher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAG/E,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,8BAA8B;IAE7C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAM7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAEpC,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAE3C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IASzC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;CAC7B;AAOD,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAI7C;AA+BD,qBAAa,uBAAuB;IAchC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAb1B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD,OAAO;WAmBM,KAAK,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAwB7F,KAAK,IAAI,MAAM;IAKf,YAAY,IAAI,WAAW;IAerB,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IASnE,IAAI,IAAI,IAAI;IASZ,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,GAAG;YAQG,OAAO;IAgDrB,OAAO,CAAC,IAAI;CAMb"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProactiveTokenRefresher = exports.TokenRefreshFatalError = void 0;
|
|
4
|
+
const bounded_retry_1 = require("./bounded-retry");
|
|
5
|
+
const DEFAULT_REFRESH_AT_FRACTION = 0.75;
|
|
6
|
+
const DEFAULT_REFRESH_RETRY_INITIAL_MS = 1_000;
|
|
7
|
+
const DEFAULT_REFRESH_RETRY_MAX_MS = 30_000;
|
|
8
|
+
class TokenRefreshFatalError extends Error {
|
|
9
|
+
constructor(message, cause) {
|
|
10
|
+
super(message, cause === undefined ? undefined : { cause });
|
|
11
|
+
this.name = 'TokenRefreshFatalError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.TokenRefreshFatalError = TokenRefreshFatalError;
|
|
15
|
+
function throwUncaught(error) {
|
|
16
|
+
setImmediate(() => {
|
|
17
|
+
throw error;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
const SILENT_LOGGER = { log: () => { }, warn: () => { }, error: () => { } };
|
|
21
|
+
class ProactiveTokenRefresher {
|
|
22
|
+
options;
|
|
23
|
+
current;
|
|
24
|
+
obtainedAt;
|
|
25
|
+
timer = null;
|
|
26
|
+
stopped = false;
|
|
27
|
+
listeners = new Set();
|
|
28
|
+
clock;
|
|
29
|
+
logger;
|
|
30
|
+
fraction;
|
|
31
|
+
retryInitialMs;
|
|
32
|
+
retryMaxMs;
|
|
33
|
+
onFatal;
|
|
34
|
+
constructor(options, first) {
|
|
35
|
+
this.options = options;
|
|
36
|
+
this.clock = options.clock ?? bounded_retry_1.SYSTEM_CLOCK;
|
|
37
|
+
this.logger = options.logger ?? SILENT_LOGGER;
|
|
38
|
+
this.fraction = options.refreshAtFraction ?? DEFAULT_REFRESH_AT_FRACTION;
|
|
39
|
+
this.retryInitialMs = options.refreshRetryInitialDelayMs ?? DEFAULT_REFRESH_RETRY_INITIAL_MS;
|
|
40
|
+
this.retryMaxMs = options.refreshRetryMaxDelayMs ?? DEFAULT_REFRESH_RETRY_MAX_MS;
|
|
41
|
+
this.onFatal = options.onFatal ?? throwUncaught;
|
|
42
|
+
this.current = first;
|
|
43
|
+
this.obtainedAt = this.clock.now();
|
|
44
|
+
}
|
|
45
|
+
static async start(options) {
|
|
46
|
+
const fraction = options.refreshAtFraction ?? DEFAULT_REFRESH_AT_FRACTION;
|
|
47
|
+
if (!(fraction > 0 && fraction < 1)) {
|
|
48
|
+
throw new Error(`refreshAtFraction must be in (0, 1) (got ${fraction}).`);
|
|
49
|
+
}
|
|
50
|
+
const clock = options.clock ?? bounded_retry_1.SYSTEM_CLOCK;
|
|
51
|
+
const logger = options.logger ?? SILENT_LOGGER;
|
|
52
|
+
const first = await (0, bounded_retry_1.withBoundedRetry)(`Obtaining the Temporal access token for ${options.description}`, options.source, options.startupRetry ?? bounded_retry_1.DEFAULT_BOUNDED_RETRY_POLICY, clock, (attempt, error, delay) => logger.warn(`Temporal access token for ${options.description}: attempt ${attempt} failed ` +
|
|
53
|
+
`(${describe(error)}); retrying in ${delay}ms.`));
|
|
54
|
+
const refresher = new ProactiveTokenRefresher(options, first);
|
|
55
|
+
refresher.scheduleNext();
|
|
56
|
+
return refresher;
|
|
57
|
+
}
|
|
58
|
+
token() {
|
|
59
|
+
return this.currentToken().value;
|
|
60
|
+
}
|
|
61
|
+
currentToken() {
|
|
62
|
+
if (this.stopped) {
|
|
63
|
+
throw new TokenRefreshFatalError(`The Temporal access token refresher for ${this.options.description} is stopped.`);
|
|
64
|
+
}
|
|
65
|
+
return this.current;
|
|
66
|
+
}
|
|
67
|
+
async subscribe(listener) {
|
|
68
|
+
await listener(this.currentToken());
|
|
69
|
+
this.listeners.add(listener);
|
|
70
|
+
return () => {
|
|
71
|
+
this.listeners.delete(listener);
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
stop() {
|
|
75
|
+
this.stopped = true;
|
|
76
|
+
if (this.timer !== null) {
|
|
77
|
+
this.clock.clearTimeout(this.timer);
|
|
78
|
+
this.timer = null;
|
|
79
|
+
}
|
|
80
|
+
this.listeners.clear();
|
|
81
|
+
}
|
|
82
|
+
scheduleNext() {
|
|
83
|
+
const lifetime = this.current.expiresAt - this.obtainedAt;
|
|
84
|
+
const refreshAt = this.obtainedAt + Math.max(0, lifetime) * this.fraction;
|
|
85
|
+
this.arm(Math.max(0, refreshAt - this.clock.now()), 1);
|
|
86
|
+
}
|
|
87
|
+
arm(delayMs, attempt) {
|
|
88
|
+
if (this.stopped)
|
|
89
|
+
return;
|
|
90
|
+
this.timer = this.clock.setTimeout(() => {
|
|
91
|
+
this.timer = null;
|
|
92
|
+
void this.refresh(attempt);
|
|
93
|
+
}, delayMs);
|
|
94
|
+
}
|
|
95
|
+
async refresh(attempt) {
|
|
96
|
+
let next;
|
|
97
|
+
try {
|
|
98
|
+
next = await this.options.source();
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
if (this.stopped)
|
|
102
|
+
return;
|
|
103
|
+
const now = this.clock.now();
|
|
104
|
+
const delay = Math.min(this.retryMaxMs, this.retryInitialMs * 2 ** (attempt - 1));
|
|
105
|
+
if (now + delay >= this.current.expiresAt) {
|
|
106
|
+
this.fail(new TokenRefreshFatalError(`The Temporal access token for ${this.options.description} expires before ` +
|
|
107
|
+
`another refresh attempt could complete (attempt ${attempt} failed: ` +
|
|
108
|
+
`${describe(error)}). Refusing to continue without a valid credential.`, error));
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.logger.warn(`Temporal access token refresh for ${this.options.description}: attempt ${attempt} ` +
|
|
112
|
+
`failed (${describe(error)}); retrying in ${delay}ms ` +
|
|
113
|
+
`(${this.current.expiresAt - now}ms of validity left).`);
|
|
114
|
+
this.arm(delay, attempt + 1);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (this.stopped)
|
|
118
|
+
return;
|
|
119
|
+
this.current = next;
|
|
120
|
+
this.obtainedAt = this.clock.now();
|
|
121
|
+
for (const listener of [...this.listeners]) {
|
|
122
|
+
try {
|
|
123
|
+
await listener(next);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
this.fail(new TokenRefreshFatalError(`A holder of the Temporal access token for ${this.options.description} could ` +
|
|
127
|
+
`not apply the refreshed token: ${describe(error)}`, error));
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (this.stopped)
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
this.scheduleNext();
|
|
134
|
+
}
|
|
135
|
+
fail(error) {
|
|
136
|
+
if (this.stopped)
|
|
137
|
+
return;
|
|
138
|
+
this.logger.error(error.message);
|
|
139
|
+
this.stop();
|
|
140
|
+
this.onFatal(error);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.ProactiveTokenRefresher = ProactiveTokenRefresher;
|
|
144
|
+
function describe(error) {
|
|
145
|
+
return error instanceof Error ? error.message : String(error);
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=proactive-token-refresher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proactive-token-refresher.js","sourceRoot":"","sources":["../../src/lib/proactive-token-refresher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-attribute-constants.d.ts","sourceRoot":"","sources":["../../src/lib/search-attribute-constants.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAO1C,eAAO,MAAM,+BAA+B,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ORG_SEARCH_ATTRIBUTE_OVERRIDDEN = exports.SEARCH_ATTR_ORG_ID = void 0;
|
|
4
|
+
exports.SEARCH_ATTR_ORG_ID = 'OrgId';
|
|
5
|
+
exports.ORG_SEARCH_ATTRIBUTE_OVERRIDDEN = 'ORG_SEARCH_ATTRIBUTE_OVERRIDDEN';
|
|
6
|
+
//# sourceMappingURL=search-attribute-constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-attribute-constants.js","sourceRoot":"","sources":["../../src/lib/search-attribute-constants.ts"],"names":[],"mappings":";;;AAOa,QAAA,kBAAkB,GAAG,OAAO,CAAC;AAO7B,QAAA,+BAA+B,GAAG,iCAAiC,CAAC"}
|
|
@@ -1,28 +1,14 @@
|
|
|
1
1
|
import { temporal } from '@temporalio/proto';
|
|
2
2
|
import type { Connection } from '@temporalio/client';
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export declare const SEARCH_ATTR_PROJECT_ID = "ProjectId";
|
|
6
|
-
export declare const SEARCH_ATTR_WORKFLOW_DOMAIN = "WorkflowDomain";
|
|
7
|
-
export declare const SEARCH_ATTR_SUBJECT_ID = "SubjectId";
|
|
8
|
-
export declare const SEARCH_ATTR_INTEGRATION_PROVIDER_ID = "IntegrationProviderId";
|
|
9
|
-
export declare const SEARCH_ATTR_REGISTRY_KIND = "RegistryKind";
|
|
10
|
-
export declare const SEARCH_ATTR_IMAGE_DIGEST = "ImageDigest";
|
|
11
|
-
interface PlatformSearchAttribute {
|
|
3
|
+
export { SEARCH_ATTR_ORG_ID, ORG_SEARCH_ATTRIBUTE_OVERRIDDEN, } from './search-attribute-constants';
|
|
4
|
+
export interface PlatformSearchAttribute {
|
|
12
5
|
readonly name: string;
|
|
13
6
|
readonly type: temporal.api.enums.v1.IndexedValueType;
|
|
14
7
|
}
|
|
15
8
|
export declare const PLATFORM_SEARCH_ATTRIBUTES: readonly PlatformSearchAttribute[];
|
|
16
9
|
export interface PlatformSearchAttributeInput {
|
|
17
|
-
readonly
|
|
18
|
-
readonly orgId?: string;
|
|
19
|
-
readonly projectId?: string;
|
|
20
|
-
readonly subjectId?: string;
|
|
10
|
+
readonly orgId: string | null;
|
|
21
11
|
}
|
|
22
12
|
export declare function buildPlatformSearchAttributes(input: PlatformSearchAttributeInput): Record<string, string[]>;
|
|
23
|
-
export
|
|
24
|
-
readonly registered: readonly string[];
|
|
25
|
-
}
|
|
26
|
-
export declare function registerPlatformSearchAttributes(connection: Connection, namespace: string): Promise<RegisterSearchAttributesResult>;
|
|
27
|
-
export {};
|
|
13
|
+
export declare function verifyPlatformSearchAttributes(connection: Pick<Connection, 'operatorService'>, namespace: string): Promise<void>;
|
|
28
14
|
//# sourceMappingURL=search-attributes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-attributes.d.ts","sourceRoot":"","sources":["../../src/lib/search-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"search-attributes.d.ts","sourceRoot":"","sources":["../../src/lib/search-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAqBrD,OAAO,EACL,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC;CACvD;AAMD,eAAO,MAAM,0BAA0B,EAAE,SAAS,uBAAuB,EAExE,CAAC;AAGF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAOD,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,4BAA4B,GAClC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAW1B;AAaD,wBAAsB,8BAA8B,CAClD,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAC/C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
|
@@ -1,58 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PLATFORM_SEARCH_ATTRIBUTES = exports.
|
|
3
|
+
exports.PLATFORM_SEARCH_ATTRIBUTES = exports.ORG_SEARCH_ATTRIBUTE_OVERRIDDEN = exports.SEARCH_ATTR_ORG_ID = void 0;
|
|
4
4
|
exports.buildPlatformSearchAttributes = buildPlatformSearchAttributes;
|
|
5
|
-
exports.
|
|
5
|
+
exports.verifyPlatformSearchAttributes = verifyPlatformSearchAttributes;
|
|
6
6
|
const proto_1 = require("@temporalio/proto");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.SEARCH_ATTR_INTEGRATION_PROVIDER_ID = 'IntegrationProviderId';
|
|
12
|
-
exports.SEARCH_ATTR_REGISTRY_KIND = 'RegistryKind';
|
|
13
|
-
exports.SEARCH_ATTR_IMAGE_DIGEST = 'ImageDigest';
|
|
7
|
+
const search_attribute_constants_1 = require("./search-attribute-constants");
|
|
8
|
+
var search_attribute_constants_2 = require("./search-attribute-constants");
|
|
9
|
+
Object.defineProperty(exports, "SEARCH_ATTR_ORG_ID", { enumerable: true, get: function () { return search_attribute_constants_2.SEARCH_ATTR_ORG_ID; } });
|
|
10
|
+
Object.defineProperty(exports, "ORG_SEARCH_ATTRIBUTE_OVERRIDDEN", { enumerable: true, get: function () { return search_attribute_constants_2.ORG_SEARCH_ATTRIBUTE_OVERRIDDEN; } });
|
|
14
11
|
const KEYWORD = proto_1.temporal.api.enums.v1.IndexedValueType.INDEXED_VALUE_TYPE_KEYWORD;
|
|
15
12
|
exports.PLATFORM_SEARCH_ATTRIBUTES = [
|
|
16
|
-
{ name:
|
|
17
|
-
{ name: exports.SEARCH_ATTR_PROJECT_ID, type: KEYWORD },
|
|
18
|
-
{ name: exports.SEARCH_ATTR_WORKFLOW_DOMAIN, type: KEYWORD },
|
|
19
|
-
{ name: exports.SEARCH_ATTR_SUBJECT_ID, type: KEYWORD },
|
|
20
|
-
{ name: exports.SEARCH_ATTR_INTEGRATION_PROVIDER_ID, type: KEYWORD },
|
|
21
|
-
{ name: exports.SEARCH_ATTR_REGISTRY_KIND, type: KEYWORD },
|
|
22
|
-
{ name: exports.SEARCH_ATTR_IMAGE_DIGEST, type: KEYWORD },
|
|
13
|
+
{ name: search_attribute_constants_1.SEARCH_ATTR_ORG_ID, type: KEYWORD },
|
|
23
14
|
];
|
|
24
15
|
function buildPlatformSearchAttributes(input) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
28
|
-
if (input.orgId) {
|
|
29
|
-
attrs[exports.SEARCH_ATTR_ORG_ID] = [input.orgId];
|
|
16
|
+
if (input.orgId === null) {
|
|
17
|
+
return {};
|
|
30
18
|
}
|
|
31
|
-
if (input.
|
|
32
|
-
|
|
19
|
+
if (input.orgId.trim().length === 0 || input.orgId.trim() !== input.orgId) {
|
|
20
|
+
throw new Error(`buildPlatformSearchAttributes: orgId must be a non-empty string without ` +
|
|
21
|
+
`surrounding whitespace, or null for a cluster-wide run; got ${JSON.stringify(input.orgId)}.`);
|
|
33
22
|
}
|
|
34
|
-
|
|
35
|
-
attrs[exports.SEARCH_ATTR_SUBJECT_ID] = [input.subjectId];
|
|
36
|
-
}
|
|
37
|
-
return attrs;
|
|
23
|
+
return { [search_attribute_constants_1.SEARCH_ATTR_ORG_ID]: [input.orgId] };
|
|
38
24
|
}
|
|
39
|
-
async function
|
|
25
|
+
async function verifyPlatformSearchAttributes(connection, namespace) {
|
|
40
26
|
const listResponse = await connection.operatorService.listSearchAttributes({
|
|
41
27
|
namespace,
|
|
42
28
|
});
|
|
43
|
-
const existing =
|
|
44
|
-
const missing =
|
|
45
|
-
|
|
46
|
-
|
|
29
|
+
const existing = listResponse.customAttributes ?? {};
|
|
30
|
+
const missing = [];
|
|
31
|
+
const mistyped = [];
|
|
32
|
+
for (const attr of exports.PLATFORM_SEARCH_ATTRIBUTES) {
|
|
33
|
+
const declared = existing[attr.name];
|
|
34
|
+
if (declared === undefined || declared === null) {
|
|
35
|
+
missing.push(attr.name);
|
|
36
|
+
}
|
|
37
|
+
else if (declared !== attr.type) {
|
|
38
|
+
mistyped.push(`${attr.name} (declared ${proto_1.temporal.api.enums.v1.IndexedValueType[declared]}, ` +
|
|
39
|
+
`required ${proto_1.temporal.api.enums.v1.IndexedValueType[attr.type]})`);
|
|
40
|
+
}
|
|
47
41
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
if (missing.length > 0 || mistyped.length > 0) {
|
|
43
|
+
throw new Error(`Temporal namespace '${namespace}' does not declare the platform search ` +
|
|
44
|
+
`attributes: ${[
|
|
45
|
+
...(missing.length > 0 ? [`missing ${missing.join(', ')}`] : []),
|
|
46
|
+
...(mistyped.length > 0 ? [`mistyped ${mistyped.join(', ')}`] : []),
|
|
47
|
+
].join('; ')}. The shared-infra provisioning Job owns them; a workload ` +
|
|
48
|
+
'cannot register search attributes.');
|
|
51
49
|
}
|
|
52
|
-
await connection.operatorService.addSearchAttributes({
|
|
53
|
-
namespace,
|
|
54
|
-
searchAttributes,
|
|
55
|
-
});
|
|
56
|
-
return { registered: missing.map((attr) => attr.name) };
|
|
57
50
|
}
|
|
58
51
|
//# sourceMappingURL=search-attributes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-attributes.js","sourceRoot":"","sources":["../../src/lib/search-attributes.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"search-attributes.js","sourceRoot":"","sources":["../../src/lib/search-attributes.ts"],"names":[],"mappings":";;;AAqDA,sEAaC;AAaD,wEA+BC;AA9GD,6CAA6C;AAE7C,6EAAkE;AAuBlE,2EAGsC;AAFpC,gIAAA,kBAAkB,OAAA;AAClB,6IAAA,+BAA+B,OAAA;AAQjC,MAAM,OAAO,GACX,gBAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,0BAA0B,CAAC;AAGvD,QAAA,0BAA0B,GAAuC;IAC5E,EAAE,IAAI,EAAE,+CAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;CAC5C,CAAC;AAYF,SAAgB,6BAA6B,CAC3C,KAAmC;IAEnC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CACb,0EAA0E;YACxE,+DAA+D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC,+CAAkB,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AACjD,CAAC;AAaM,KAAK,UAAU,8BAA8B,CAClD,UAA+C,EAC/C,SAAiB;IAEjB,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,oBAAoB,CAAC;QACzE,SAAS;KACV,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,YAAY,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACrD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,kCAA0B,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CACX,GAAG,IAAI,CAAC,IAAI,cAAc,gBAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI;gBAC5E,YAAY,gBAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,uBAAuB,SAAS,yCAAyC;YACvE,eAAe;gBACb,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACpE,CAAC,IAAI,CAAC,IAAI,CAAC,4DAA4D;YACxE,oCAAoC,CACvC,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ActivityHandle, Client } from '@temporalio/client';
|
|
2
|
+
import type { Duration, RetryPolicy } from '@temporalio/common';
|
|
3
|
+
export declare enum StandaloneActivityIdConflict {
|
|
4
|
+
UseExisting = "use-existing",
|
|
5
|
+
Fail = "fail"
|
|
6
|
+
}
|
|
7
|
+
export interface StartStandaloneActivityOptions {
|
|
8
|
+
readonly id: string;
|
|
9
|
+
readonly type: string;
|
|
10
|
+
readonly taskQueue: string;
|
|
11
|
+
readonly orgId: string | null;
|
|
12
|
+
readonly idConflict: StandaloneActivityIdConflict;
|
|
13
|
+
readonly args?: readonly unknown[];
|
|
14
|
+
readonly startToCloseTimeout?: Duration;
|
|
15
|
+
readonly scheduleToCloseTimeout?: Duration;
|
|
16
|
+
readonly scheduleToStartTimeout?: Duration;
|
|
17
|
+
readonly heartbeatTimeout?: Duration;
|
|
18
|
+
readonly retry?: RetryPolicy;
|
|
19
|
+
readonly startDelay?: Duration;
|
|
20
|
+
readonly summary?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function startStandaloneActivity<R = unknown>(client: Pick<Client, 'activity'>, options: StartStandaloneActivityOptions): Promise<ActivityHandle<R>>;
|
|
23
|
+
//# sourceMappingURL=standalone-activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standalone-activity.d.ts","sourceRoot":"","sources":["../../src/lib/standalone-activity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAEd,MAAM,EACP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOhE,oBAAY,4BAA4B;IAEtC,WAAW,iBAAiB;IAE5B,IAAI,SAAS;CACd;AAYD,MAAM,WAAW,8BAA8B;IAE7C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAO3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAEnC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC;IACxC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,QAAQ,CAAC;IAC3C,QAAQ,CAAC,sBAAsB,CAAC,EAAE,QAAQ,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AASD,wBAAsB,uBAAuB,CAAC,CAAC,GAAG,OAAO,EACvD,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,EAChC,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAoC5B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandaloneActivityIdConflict = void 0;
|
|
4
|
+
exports.startStandaloneActivity = startStandaloneActivity;
|
|
5
|
+
const fairness_1 = require("./fairness");
|
|
6
|
+
var StandaloneActivityIdConflict;
|
|
7
|
+
(function (StandaloneActivityIdConflict) {
|
|
8
|
+
StandaloneActivityIdConflict["UseExisting"] = "use-existing";
|
|
9
|
+
StandaloneActivityIdConflict["Fail"] = "fail";
|
|
10
|
+
})(StandaloneActivityIdConflict || (exports.StandaloneActivityIdConflict = StandaloneActivityIdConflict = {}));
|
|
11
|
+
const ID_CONFLICT_POLICY = {
|
|
12
|
+
[StandaloneActivityIdConflict.UseExisting]: 'USE_EXISTING',
|
|
13
|
+
[StandaloneActivityIdConflict.Fail]: 'FAIL',
|
|
14
|
+
};
|
|
15
|
+
async function startStandaloneActivity(client, options) {
|
|
16
|
+
if (options.startToCloseTimeout === undefined &&
|
|
17
|
+
options.scheduleToCloseTimeout === undefined) {
|
|
18
|
+
throw new Error(`startStandaloneActivity(${options.type}): set startToCloseTimeout or ` +
|
|
19
|
+
'scheduleToCloseTimeout; an unbounded activity is never retried to a stop.');
|
|
20
|
+
}
|
|
21
|
+
return client.activity.start(options.type, {
|
|
22
|
+
id: options.id,
|
|
23
|
+
taskQueue: options.taskQueue,
|
|
24
|
+
idConflictPolicy: ID_CONFLICT_POLICY[options.idConflict],
|
|
25
|
+
...(options.orgId !== null
|
|
26
|
+
? { priority: { fairnessKey: (0, fairness_1.orgFairnessKey)(options.orgId) } }
|
|
27
|
+
: {}),
|
|
28
|
+
...(options.args !== undefined ? { args: [...options.args] } : {}),
|
|
29
|
+
...(options.startToCloseTimeout !== undefined
|
|
30
|
+
? { startToCloseTimeout: options.startToCloseTimeout }
|
|
31
|
+
: {}),
|
|
32
|
+
...(options.scheduleToCloseTimeout !== undefined
|
|
33
|
+
? { scheduleToCloseTimeout: options.scheduleToCloseTimeout }
|
|
34
|
+
: {}),
|
|
35
|
+
...(options.scheduleToStartTimeout !== undefined
|
|
36
|
+
? { scheduleToStartTimeout: options.scheduleToStartTimeout }
|
|
37
|
+
: {}),
|
|
38
|
+
...(options.heartbeatTimeout !== undefined
|
|
39
|
+
? { heartbeatTimeout: options.heartbeatTimeout }
|
|
40
|
+
: {}),
|
|
41
|
+
...(options.retry !== undefined ? { retry: options.retry } : {}),
|
|
42
|
+
...(options.startDelay !== undefined
|
|
43
|
+
? { startDelay: options.startDelay }
|
|
44
|
+
: {}),
|
|
45
|
+
...(options.summary !== undefined ? { summary: options.summary } : {}),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=standalone-activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standalone-activity.js","sourceRoot":"","sources":["../../src/lib/standalone-activity.ts"],"names":[],"mappings":";;;AAgEA,0DAuCC;AAvGD,yCAA4C;AAc5C,IAAY,4BAKX;AALD,WAAY,4BAA4B;IAEtC,4DAA4B,CAAA;IAE5B,6CAAa,CAAA;AACf,CAAC,EALW,4BAA4B,4CAA5B,4BAA4B,QAKvC;AAED,MAAM,kBAAkB,GAKpB;IACF,CAAC,4BAA4B,CAAC,WAAW,CAAC,EAAE,cAAc;IAC1D,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,MAAM;CAC5C,CAAC;AAmCK,KAAK,UAAU,uBAAuB,CAC3C,MAAgC,EAChC,OAAuC;IAEvC,IACE,OAAO,CAAC,mBAAmB,KAAK,SAAS;QACzC,OAAO,CAAC,sBAAsB,KAAK,SAAS,EAC5C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,2BAA2B,OAAO,CAAC,IAAI,gCAAgC;YACrE,2EAA2E,CAC9E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAI,OAAO,CAAC,IAAI,EAAE;QAC5C,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gBAAgB,EAAE,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC;QACxD,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI;YACxB,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAA,yBAAc,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE;YAC9D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS;YAC3C,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE;YACtD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,sBAAsB,KAAK,SAAS;YAC9C,CAAC,CAAC,EAAE,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,sBAAsB,KAAK,SAAS;YAC9C,CAAC,CAAC,EAAE,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE;YAChD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;YACpC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Worker, type ActivityInterceptorsFactory, type NativeConnection, type WorkerOptions, type WorkflowBundle } from '@temporalio/worker';
|
|
2
|
+
import { type WorkerDeploymentVersion } from './worker-deployment-version';
|
|
3
|
+
import type { PayloadCodec } from '@temporalio/common';
|
|
4
|
+
export type PlatformWorkerSinks = NonNullable<WorkerOptions['sinks']>;
|
|
5
|
+
export type PlatformNexusServiceHandler = NonNullable<WorkerOptions['nexusServices']>[number];
|
|
6
|
+
export interface PlatformWorkerTuning {
|
|
7
|
+
readonly maxConcurrentActivityTaskExecutions?: number;
|
|
8
|
+
readonly maxConcurrentWorkflowTaskExecutions?: number;
|
|
9
|
+
readonly maxConcurrentNexusTaskExecutions?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface VersionedWorkerParams extends PlatformWorkerTuning {
|
|
12
|
+
readonly connection: NativeConnection;
|
|
13
|
+
readonly namespace: string;
|
|
14
|
+
readonly taskQueue: string;
|
|
15
|
+
readonly version: WorkerDeploymentVersion;
|
|
16
|
+
readonly identity: string;
|
|
17
|
+
readonly workflowBundle?: WorkflowBundle;
|
|
18
|
+
readonly activities?: object;
|
|
19
|
+
readonly nexusServices?: readonly PlatformNexusServiceHandler[];
|
|
20
|
+
readonly payloadCodec?: PayloadCodec;
|
|
21
|
+
readonly activityInterceptors?: readonly ActivityInterceptorsFactory[];
|
|
22
|
+
readonly sinks?: PlatformWorkerSinks;
|
|
23
|
+
}
|
|
24
|
+
export declare function createVersionedWorker(params: VersionedWorkerParams): Promise<Worker>;
|
|
25
|
+
export declare function platformWorkerIdentity(role: string, namespace: string, taskQueue: string): string;
|
|
26
|
+
//# sourceMappingURL=versioned-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versioned-worker.d.ts","sourceRoot":"","sources":["../../src/lib/versioned-worker.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,MAAM,EACN,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMvD,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAGtE,MAAM,MAAM,2BAA2B,GAAG,WAAW,CACnD,aAAa,CAAC,eAAe,CAAC,CAC/B,CAAC,MAAM,CAAC,CAAC;AAGV,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,MAAM,CAAC;IACtD,QAAQ,CAAC,mCAAmC,CAAC,EAAE,MAAM,CAAC;IACtD,QAAQ,CAAC,gCAAgC,CAAC,EAAE,MAAM,CAAC;CACpD;AAOD,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAkDjB;AAGD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,CAER"}
|