@valon-technologies/gestalt 0.0.1-alpha.18 → 0.0.1-alpha.20
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 +34 -12
- package/package.json +5 -3
- package/src/agent-conversions.ts +201 -0
- package/src/agent-manager.ts +272 -83
- package/src/agent.ts +1023 -224
- package/src/api.ts +42 -0
- package/src/auth.ts +3 -3
- package/src/authorization.ts +1700 -51
- package/src/cache.ts +3 -3
- package/src/catalog.ts +22 -0
- package/src/http-subject.ts +9 -2
- package/src/index.ts +191 -17
- package/src/indexeddb.ts +3 -15
- package/src/internal/gen/v1/agent_pb.ts +137 -51
- package/src/internal/gen/v1/authorization_pb.ts +505 -27
- package/src/internal/gen/v1/plugin_pb.ts +67 -21
- package/src/internal/gen/v1/pluginruntime_pb.ts +95 -6
- package/src/internal/gen/v1/workflow_pb.ts +344 -62
- package/src/invoker.ts +6 -35
- package/src/plugin.ts +12 -12
- package/src/pluginruntime.ts +337 -49
- package/src/protocol/v1.ts +19 -0
- package/src/protocol-internal.ts +19 -0
- package/src/protocol.ts +186 -0
- package/src/provider-kind.ts +7 -3
- package/src/provider.ts +21 -13
- package/src/runtime-log-host.ts +80 -52
- package/src/runtime.ts +67 -0
- package/src/s3.ts +13 -28
- package/src/secrets.ts +3 -3
- package/src/workflow-manager.ts +350 -121
- package/src/workflow.ts +2598 -389
package/src/workflow-manager.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { MessageInitShape } from "@bufbuild/protobuf";
|
|
2
1
|
import {
|
|
3
2
|
createClient,
|
|
4
3
|
type Client,
|
|
@@ -7,25 +6,34 @@ import {
|
|
|
7
6
|
import { createGrpcTransport } from "@connectrpc/connect-node";
|
|
8
7
|
|
|
9
8
|
import {
|
|
10
|
-
WorkflowManagerCreateScheduleRequestSchema,
|
|
11
|
-
WorkflowManagerCreateEventTriggerRequestSchema,
|
|
12
|
-
WorkflowManagerDeleteScheduleRequestSchema,
|
|
13
|
-
WorkflowManagerDeleteEventTriggerRequestSchema,
|
|
14
|
-
WorkflowManagerGetScheduleRequestSchema,
|
|
15
|
-
WorkflowManagerGetEventTriggerRequestSchema,
|
|
16
9
|
WorkflowManagerHost as WorkflowManagerHostService,
|
|
17
|
-
WorkflowManagerPauseScheduleRequestSchema,
|
|
18
|
-
WorkflowManagerPauseEventTriggerRequestSchema,
|
|
19
|
-
WorkflowManagerPublishEventRequestSchema,
|
|
20
|
-
WorkflowManagerResumeScheduleRequestSchema,
|
|
21
|
-
WorkflowManagerResumeEventTriggerRequestSchema,
|
|
22
|
-
WorkflowManagerUpdateScheduleRequestSchema,
|
|
23
|
-
WorkflowManagerUpdateEventTriggerRequestSchema,
|
|
24
|
-
type ManagedWorkflowSchedule,
|
|
25
|
-
type ManagedWorkflowEventTrigger,
|
|
26
|
-
type WorkflowEvent,
|
|
27
10
|
} from "./internal/gen/v1/workflow_pb.ts";
|
|
28
11
|
import type { Request } from "./api.ts";
|
|
12
|
+
import {
|
|
13
|
+
boundWorkflowTargetToProto,
|
|
14
|
+
managedWorkflowDefinitionFromProto,
|
|
15
|
+
managedWorkflowEventTriggerFromProto,
|
|
16
|
+
managedWorkflowRunFromProto,
|
|
17
|
+
managedWorkflowRunSignalFromProto,
|
|
18
|
+
managedWorkflowScheduleFromProto,
|
|
19
|
+
workflowEventFromProto,
|
|
20
|
+
workflowEventMatchToProto,
|
|
21
|
+
workflowEventToProto,
|
|
22
|
+
workflowSignalToProto,
|
|
23
|
+
type BoundWorkflowTarget,
|
|
24
|
+
type BoundWorkflowTargetInput,
|
|
25
|
+
type ManagedWorkflowDefinition,
|
|
26
|
+
type ManagedWorkflowEventTrigger,
|
|
27
|
+
type ManagedWorkflowRun,
|
|
28
|
+
type ManagedWorkflowRunSignal,
|
|
29
|
+
type ManagedWorkflowSchedule,
|
|
30
|
+
type WorkflowEvent,
|
|
31
|
+
type WorkflowEventInput,
|
|
32
|
+
type WorkflowEventMatch,
|
|
33
|
+
type WorkflowEventMatchInput,
|
|
34
|
+
type WorkflowSignal,
|
|
35
|
+
type WorkflowSignalInput,
|
|
36
|
+
} from "./workflow.ts";
|
|
29
37
|
|
|
30
38
|
/** Environment variable containing the workflow-manager host-service target. */
|
|
31
39
|
export const ENV_WORKFLOW_MANAGER_SOCKET = "GESTALT_WORKFLOW_MANAGER_SOCKET";
|
|
@@ -35,64 +43,142 @@ export const ENV_WORKFLOW_MANAGER_SOCKET_TOKEN =
|
|
|
35
43
|
const WORKFLOW_MANAGER_RELAY_TOKEN_HEADER =
|
|
36
44
|
"x-gestalt-host-service-relay-token";
|
|
37
45
|
|
|
38
|
-
/**
|
|
39
|
-
export
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
/** Shape accepted when starting a workflow run. */
|
|
47
|
+
export interface WorkflowManagerStartRunInput {
|
|
48
|
+
providerName: string;
|
|
49
|
+
target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
|
|
50
|
+
idempotencyKey?: string | undefined;
|
|
51
|
+
workflowKey?: string | undefined;
|
|
52
|
+
definitionId?: string | undefined;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** Shape accepted when signaling an existing workflow run. */
|
|
56
|
+
export interface WorkflowManagerSignalRunInput {
|
|
57
|
+
runId: string;
|
|
58
|
+
signal?: WorkflowSignal | WorkflowSignalInput | undefined;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Shape accepted when signaling a run or starting it if missing. */
|
|
62
|
+
export interface WorkflowManagerSignalOrStartRunInput {
|
|
63
|
+
providerName: string;
|
|
64
|
+
workflowKey: string;
|
|
65
|
+
target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
|
|
66
|
+
idempotencyKey?: string | undefined;
|
|
67
|
+
signal?: WorkflowSignal | WorkflowSignalInput | undefined;
|
|
68
|
+
definitionId?: string | undefined;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Shape accepted when creating a workflow definition. */
|
|
72
|
+
export interface WorkflowManagerCreateDefinitionInput {
|
|
73
|
+
providerName: string;
|
|
74
|
+
target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
|
|
75
|
+
idempotencyKey?: string | undefined;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** Shape accepted when fetching a workflow definition. */
|
|
79
|
+
export interface WorkflowManagerGetDefinitionInput {
|
|
80
|
+
definitionId: string;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Shape accepted when updating a workflow definition. */
|
|
84
|
+
export interface WorkflowManagerUpdateDefinitionInput {
|
|
85
|
+
definitionId: string;
|
|
86
|
+
providerName?: string | undefined;
|
|
87
|
+
target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/** Shape accepted when deleting a workflow definition. */
|
|
91
|
+
export interface WorkflowManagerDeleteDefinitionInput {
|
|
92
|
+
definitionId: string;
|
|
93
|
+
}
|
|
94
|
+
|
|
44
95
|
/** Shape accepted when creating a workflow schedule. */
|
|
45
|
-
export
|
|
46
|
-
|
|
47
|
-
|
|
96
|
+
export interface WorkflowManagerCreateScheduleInput {
|
|
97
|
+
providerName: string;
|
|
98
|
+
cron: string;
|
|
99
|
+
timezone?: string | undefined;
|
|
100
|
+
target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
|
|
101
|
+
paused?: boolean | undefined;
|
|
102
|
+
idempotencyKey?: string | undefined;
|
|
103
|
+
definitionId?: string | undefined;
|
|
104
|
+
}
|
|
105
|
+
|
|
48
106
|
/** Shape accepted when creating an event trigger. */
|
|
49
|
-
export
|
|
50
|
-
|
|
51
|
-
|
|
107
|
+
export interface WorkflowManagerCreateTriggerInput {
|
|
108
|
+
providerName: string;
|
|
109
|
+
match?: WorkflowEventMatch | WorkflowEventMatchInput | undefined;
|
|
110
|
+
target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
|
|
111
|
+
paused?: boolean | undefined;
|
|
112
|
+
idempotencyKey?: string | undefined;
|
|
113
|
+
definitionId?: string | undefined;
|
|
114
|
+
}
|
|
115
|
+
|
|
52
116
|
/** Shape accepted when fetching a workflow schedule. */
|
|
53
|
-
export
|
|
54
|
-
|
|
55
|
-
|
|
117
|
+
export interface WorkflowManagerGetScheduleInput {
|
|
118
|
+
scheduleId: string;
|
|
119
|
+
}
|
|
120
|
+
|
|
56
121
|
/** Shape accepted when fetching an event trigger. */
|
|
57
|
-
export
|
|
58
|
-
|
|
59
|
-
|
|
122
|
+
export interface WorkflowManagerGetTriggerInput {
|
|
123
|
+
triggerId: string;
|
|
124
|
+
}
|
|
125
|
+
|
|
60
126
|
/** Shape accepted when updating a workflow schedule. */
|
|
61
|
-
export
|
|
62
|
-
|
|
63
|
-
|
|
127
|
+
export interface WorkflowManagerUpdateScheduleInput {
|
|
128
|
+
scheduleId: string;
|
|
129
|
+
providerName?: string | undefined;
|
|
130
|
+
cron?: string | undefined;
|
|
131
|
+
timezone?: string | undefined;
|
|
132
|
+
target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
|
|
133
|
+
paused?: boolean | undefined;
|
|
134
|
+
definitionId?: string | undefined;
|
|
135
|
+
}
|
|
136
|
+
|
|
64
137
|
/** Shape accepted when updating an event trigger. */
|
|
65
|
-
export
|
|
66
|
-
|
|
67
|
-
|
|
138
|
+
export interface WorkflowManagerUpdateTriggerInput {
|
|
139
|
+
triggerId: string;
|
|
140
|
+
providerName?: string | undefined;
|
|
141
|
+
match?: WorkflowEventMatch | WorkflowEventMatchInput | undefined;
|
|
142
|
+
target?: BoundWorkflowTarget | BoundWorkflowTargetInput | undefined;
|
|
143
|
+
paused?: boolean | undefined;
|
|
144
|
+
definitionId?: string | undefined;
|
|
145
|
+
}
|
|
146
|
+
|
|
68
147
|
/** Shape accepted when deleting a workflow schedule. */
|
|
69
|
-
export
|
|
70
|
-
|
|
71
|
-
|
|
148
|
+
export interface WorkflowManagerDeleteScheduleInput {
|
|
149
|
+
scheduleId: string;
|
|
150
|
+
}
|
|
151
|
+
|
|
72
152
|
/** Shape accepted when deleting an event trigger. */
|
|
73
|
-
export
|
|
74
|
-
|
|
75
|
-
|
|
153
|
+
export interface WorkflowManagerDeleteTriggerInput {
|
|
154
|
+
triggerId: string;
|
|
155
|
+
}
|
|
156
|
+
|
|
76
157
|
/** Shape accepted when pausing a workflow schedule. */
|
|
77
|
-
export
|
|
78
|
-
|
|
79
|
-
|
|
158
|
+
export interface WorkflowManagerPauseScheduleInput {
|
|
159
|
+
scheduleId: string;
|
|
160
|
+
}
|
|
161
|
+
|
|
80
162
|
/** Shape accepted when pausing an event trigger. */
|
|
81
|
-
export
|
|
82
|
-
|
|
83
|
-
|
|
163
|
+
export interface WorkflowManagerPauseTriggerInput {
|
|
164
|
+
triggerId: string;
|
|
165
|
+
}
|
|
166
|
+
|
|
84
167
|
/** Shape accepted when resuming a workflow schedule. */
|
|
85
|
-
export
|
|
86
|
-
|
|
87
|
-
|
|
168
|
+
export interface WorkflowManagerResumeScheduleInput {
|
|
169
|
+
scheduleId: string;
|
|
170
|
+
}
|
|
171
|
+
|
|
88
172
|
/** Shape accepted when resuming an event trigger. */
|
|
89
|
-
export
|
|
90
|
-
|
|
91
|
-
|
|
173
|
+
export interface WorkflowManagerResumeTriggerInput {
|
|
174
|
+
triggerId: string;
|
|
175
|
+
}
|
|
176
|
+
|
|
92
177
|
/** Shape accepted when publishing a workflow event. */
|
|
93
|
-
export
|
|
94
|
-
|
|
95
|
-
|
|
178
|
+
export interface WorkflowManagerPublishEventInput {
|
|
179
|
+
event?: WorkflowEvent | WorkflowEventInput | undefined;
|
|
180
|
+
providerName?: string | undefined;
|
|
181
|
+
}
|
|
96
182
|
|
|
97
183
|
/**
|
|
98
184
|
* Client for creating and controlling workflow schedules and event triggers.
|
|
@@ -131,35 +217,148 @@ export class WorkflowManager {
|
|
|
131
217
|
this.client = createClient(WorkflowManagerHostService, transport);
|
|
132
218
|
}
|
|
133
219
|
|
|
220
|
+
/** Starts a workflow run immediately. */
|
|
221
|
+
async startRun(
|
|
222
|
+
request: WorkflowManagerStartRunInput,
|
|
223
|
+
): Promise<ManagedWorkflowRun> {
|
|
224
|
+
return managedWorkflowRunFromProto(
|
|
225
|
+
await this.client.startRun({
|
|
226
|
+
providerName: request.providerName,
|
|
227
|
+
target: boundWorkflowTargetToProto(request.target),
|
|
228
|
+
idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
|
|
229
|
+
workflowKey: request.workflowKey ?? "",
|
|
230
|
+
invocationToken: this.invocationToken,
|
|
231
|
+
definitionId: request.definitionId ?? "",
|
|
232
|
+
}),
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/** Signals an existing workflow run. */
|
|
237
|
+
async signalRun(
|
|
238
|
+
request: WorkflowManagerSignalRunInput,
|
|
239
|
+
): Promise<ManagedWorkflowRunSignal> {
|
|
240
|
+
return managedWorkflowRunSignalFromProto(
|
|
241
|
+
await this.client.signalRun({
|
|
242
|
+
runId: request.runId,
|
|
243
|
+
signal: workflowSignalToProto(request.signal),
|
|
244
|
+
invocationToken: this.invocationToken,
|
|
245
|
+
}),
|
|
246
|
+
);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/** Signals a workflow run, or starts it when no run exists for the key. */
|
|
250
|
+
async signalOrStartRun(
|
|
251
|
+
request: WorkflowManagerSignalOrStartRunInput,
|
|
252
|
+
): Promise<ManagedWorkflowRunSignal> {
|
|
253
|
+
return managedWorkflowRunSignalFromProto(
|
|
254
|
+
await this.client.signalOrStartRun({
|
|
255
|
+
providerName: request.providerName,
|
|
256
|
+
workflowKey: request.workflowKey,
|
|
257
|
+
target: boundWorkflowTargetToProto(request.target),
|
|
258
|
+
idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
|
|
259
|
+
signal: workflowSignalToProto(request.signal),
|
|
260
|
+
invocationToken: this.invocationToken,
|
|
261
|
+
definitionId: request.definitionId ?? "",
|
|
262
|
+
}),
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/** Creates a reusable workflow definition. */
|
|
267
|
+
async createDefinition(
|
|
268
|
+
request: WorkflowManagerCreateDefinitionInput,
|
|
269
|
+
): Promise<ManagedWorkflowDefinition> {
|
|
270
|
+
return managedWorkflowDefinitionFromProto(
|
|
271
|
+
await this.client.createDefinition({
|
|
272
|
+
providerName: request.providerName,
|
|
273
|
+
target: boundWorkflowTargetToProto(request.target),
|
|
274
|
+
invocationToken: this.invocationToken,
|
|
275
|
+
idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
|
|
276
|
+
}),
|
|
277
|
+
);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/** Fetches one workflow definition. */
|
|
281
|
+
async getDefinition(
|
|
282
|
+
request: WorkflowManagerGetDefinitionInput,
|
|
283
|
+
): Promise<ManagedWorkflowDefinition> {
|
|
284
|
+
return managedWorkflowDefinitionFromProto(
|
|
285
|
+
await this.client.getDefinition({
|
|
286
|
+
definitionId: request.definitionId,
|
|
287
|
+
invocationToken: this.invocationToken,
|
|
288
|
+
}),
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/** Updates a workflow definition. */
|
|
293
|
+
async updateDefinition(
|
|
294
|
+
request: WorkflowManagerUpdateDefinitionInput,
|
|
295
|
+
): Promise<ManagedWorkflowDefinition> {
|
|
296
|
+
return managedWorkflowDefinitionFromProto(
|
|
297
|
+
await this.client.updateDefinition({
|
|
298
|
+
definitionId: request.definitionId,
|
|
299
|
+
providerName: request.providerName ?? "",
|
|
300
|
+
target: boundWorkflowTargetToProto(request.target),
|
|
301
|
+
invocationToken: this.invocationToken,
|
|
302
|
+
}),
|
|
303
|
+
);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/** Deletes a workflow definition. */
|
|
307
|
+
async deleteDefinition(
|
|
308
|
+
request: WorkflowManagerDeleteDefinitionInput,
|
|
309
|
+
): Promise<void> {
|
|
310
|
+
await this.client.deleteDefinition({
|
|
311
|
+
definitionId: request.definitionId,
|
|
312
|
+
invocationToken: this.invocationToken,
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
|
|
134
316
|
/** Creates a workflow schedule. */
|
|
135
317
|
async createSchedule(
|
|
136
318
|
request: WorkflowManagerCreateScheduleInput,
|
|
137
|
-
): Promise<
|
|
138
|
-
return
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
319
|
+
): Promise<ManagedWorkflowSchedule> {
|
|
320
|
+
return managedWorkflowScheduleFromProto(
|
|
321
|
+
await this.client.createSchedule({
|
|
322
|
+
providerName: request.providerName,
|
|
323
|
+
cron: request.cron,
|
|
324
|
+
timezone: request.timezone ?? "",
|
|
325
|
+
target: boundWorkflowTargetToProto(request.target),
|
|
326
|
+
paused: request.paused ?? false,
|
|
327
|
+
invocationToken: this.invocationToken,
|
|
328
|
+
idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
|
|
329
|
+
definitionId: request.definitionId ?? "",
|
|
330
|
+
}),
|
|
331
|
+
);
|
|
143
332
|
}
|
|
144
333
|
|
|
145
334
|
/** Fetches one workflow schedule. */
|
|
146
335
|
async getSchedule(
|
|
147
336
|
request: WorkflowManagerGetScheduleInput,
|
|
148
|
-
): Promise<
|
|
149
|
-
return
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
337
|
+
): Promise<ManagedWorkflowSchedule> {
|
|
338
|
+
return managedWorkflowScheduleFromProto(
|
|
339
|
+
await this.client.getSchedule({
|
|
340
|
+
scheduleId: request.scheduleId,
|
|
341
|
+
invocationToken: this.invocationToken,
|
|
342
|
+
}),
|
|
343
|
+
);
|
|
153
344
|
}
|
|
154
345
|
|
|
155
346
|
/** Updates a workflow schedule. */
|
|
156
347
|
async updateSchedule(
|
|
157
348
|
request: WorkflowManagerUpdateScheduleInput,
|
|
158
|
-
): Promise<
|
|
159
|
-
return
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
349
|
+
): Promise<ManagedWorkflowSchedule> {
|
|
350
|
+
return managedWorkflowScheduleFromProto(
|
|
351
|
+
await this.client.updateSchedule({
|
|
352
|
+
scheduleId: request.scheduleId,
|
|
353
|
+
providerName: request.providerName ?? "",
|
|
354
|
+
cron: request.cron ?? "",
|
|
355
|
+
timezone: request.timezone ?? "",
|
|
356
|
+
target: boundWorkflowTargetToProto(request.target),
|
|
357
|
+
paused: request.paused ?? false,
|
|
358
|
+
invocationToken: this.invocationToken,
|
|
359
|
+
definitionId: request.definitionId ?? "",
|
|
360
|
+
}),
|
|
361
|
+
);
|
|
163
362
|
}
|
|
164
363
|
|
|
165
364
|
/** Deletes a workflow schedule. */
|
|
@@ -167,7 +366,7 @@ export class WorkflowManager {
|
|
|
167
366
|
request: WorkflowManagerDeleteScheduleInput,
|
|
168
367
|
): Promise<void> {
|
|
169
368
|
await this.client.deleteSchedule({
|
|
170
|
-
|
|
369
|
+
scheduleId: request.scheduleId,
|
|
171
370
|
invocationToken: this.invocationToken,
|
|
172
371
|
});
|
|
173
372
|
}
|
|
@@ -175,52 +374,71 @@ export class WorkflowManager {
|
|
|
175
374
|
/** Pauses a workflow schedule. */
|
|
176
375
|
async pauseSchedule(
|
|
177
376
|
request: WorkflowManagerPauseScheduleInput,
|
|
178
|
-
): Promise<
|
|
179
|
-
return
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
377
|
+
): Promise<ManagedWorkflowSchedule> {
|
|
378
|
+
return managedWorkflowScheduleFromProto(
|
|
379
|
+
await this.client.pauseSchedule({
|
|
380
|
+
scheduleId: request.scheduleId,
|
|
381
|
+
invocationToken: this.invocationToken,
|
|
382
|
+
}),
|
|
383
|
+
);
|
|
183
384
|
}
|
|
184
385
|
|
|
185
386
|
/** Resumes a workflow schedule. */
|
|
186
387
|
async resumeSchedule(
|
|
187
388
|
request: WorkflowManagerResumeScheduleInput,
|
|
188
|
-
): Promise<
|
|
189
|
-
return
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
389
|
+
): Promise<ManagedWorkflowSchedule> {
|
|
390
|
+
return managedWorkflowScheduleFromProto(
|
|
391
|
+
await this.client.resumeSchedule({
|
|
392
|
+
scheduleId: request.scheduleId,
|
|
393
|
+
invocationToken: this.invocationToken,
|
|
394
|
+
}),
|
|
395
|
+
);
|
|
193
396
|
}
|
|
194
397
|
|
|
195
398
|
/** Creates an event trigger. */
|
|
196
399
|
async createTrigger(
|
|
197
400
|
request: WorkflowManagerCreateTriggerInput,
|
|
198
|
-
): Promise<
|
|
199
|
-
return
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
401
|
+
): Promise<ManagedWorkflowEventTrigger> {
|
|
402
|
+
return managedWorkflowEventTriggerFromProto(
|
|
403
|
+
await this.client.createEventTrigger({
|
|
404
|
+
providerName: request.providerName,
|
|
405
|
+
match: workflowEventMatchToProto(request.match),
|
|
406
|
+
target: boundWorkflowTargetToProto(request.target),
|
|
407
|
+
paused: request.paused ?? false,
|
|
408
|
+
invocationToken: this.invocationToken,
|
|
409
|
+
idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
|
|
410
|
+
definitionId: request.definitionId ?? "",
|
|
411
|
+
}),
|
|
412
|
+
);
|
|
204
413
|
}
|
|
205
414
|
|
|
206
415
|
/** Fetches one event trigger. */
|
|
207
416
|
async getTrigger(
|
|
208
417
|
request: WorkflowManagerGetTriggerInput,
|
|
209
|
-
): Promise<
|
|
210
|
-
return
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
418
|
+
): Promise<ManagedWorkflowEventTrigger> {
|
|
419
|
+
return managedWorkflowEventTriggerFromProto(
|
|
420
|
+
await this.client.getEventTrigger({
|
|
421
|
+
triggerId: request.triggerId,
|
|
422
|
+
invocationToken: this.invocationToken,
|
|
423
|
+
}),
|
|
424
|
+
);
|
|
214
425
|
}
|
|
215
426
|
|
|
216
427
|
/** Updates an event trigger. */
|
|
217
428
|
async updateTrigger(
|
|
218
429
|
request: WorkflowManagerUpdateTriggerInput,
|
|
219
|
-
): Promise<
|
|
220
|
-
return
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
430
|
+
): Promise<ManagedWorkflowEventTrigger> {
|
|
431
|
+
return managedWorkflowEventTriggerFromProto(
|
|
432
|
+
await this.client.updateEventTrigger({
|
|
433
|
+
triggerId: request.triggerId,
|
|
434
|
+
providerName: request.providerName ?? "",
|
|
435
|
+
match: workflowEventMatchToProto(request.match),
|
|
436
|
+
target: boundWorkflowTargetToProto(request.target),
|
|
437
|
+
paused: request.paused ?? false,
|
|
438
|
+
invocationToken: this.invocationToken,
|
|
439
|
+
definitionId: request.definitionId ?? "",
|
|
440
|
+
}),
|
|
441
|
+
);
|
|
224
442
|
}
|
|
225
443
|
|
|
226
444
|
/** Deletes an event trigger. */
|
|
@@ -228,7 +446,7 @@ export class WorkflowManager {
|
|
|
228
446
|
request: WorkflowManagerDeleteTriggerInput,
|
|
229
447
|
): Promise<void> {
|
|
230
448
|
await this.client.deleteEventTrigger({
|
|
231
|
-
|
|
449
|
+
triggerId: request.triggerId,
|
|
232
450
|
invocationToken: this.invocationToken,
|
|
233
451
|
});
|
|
234
452
|
}
|
|
@@ -236,31 +454,42 @@ export class WorkflowManager {
|
|
|
236
454
|
/** Pauses an event trigger. */
|
|
237
455
|
async pauseTrigger(
|
|
238
456
|
request: WorkflowManagerPauseTriggerInput,
|
|
239
|
-
): Promise<
|
|
240
|
-
return
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
457
|
+
): Promise<ManagedWorkflowEventTrigger> {
|
|
458
|
+
return managedWorkflowEventTriggerFromProto(
|
|
459
|
+
await this.client.pauseEventTrigger({
|
|
460
|
+
triggerId: request.triggerId,
|
|
461
|
+
invocationToken: this.invocationToken,
|
|
462
|
+
}),
|
|
463
|
+
);
|
|
244
464
|
}
|
|
245
465
|
|
|
246
466
|
/** Resumes an event trigger. */
|
|
247
467
|
async resumeTrigger(
|
|
248
468
|
request: WorkflowManagerResumeTriggerInput,
|
|
249
|
-
): Promise<
|
|
250
|
-
return
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
469
|
+
): Promise<ManagedWorkflowEventTrigger> {
|
|
470
|
+
return managedWorkflowEventTriggerFromProto(
|
|
471
|
+
await this.client.resumeEventTrigger({
|
|
472
|
+
triggerId: request.triggerId,
|
|
473
|
+
invocationToken: this.invocationToken,
|
|
474
|
+
}),
|
|
475
|
+
);
|
|
254
476
|
}
|
|
255
477
|
|
|
256
478
|
/** Publishes an event into the workflow manager. */
|
|
257
479
|
async publishEvent(
|
|
258
480
|
request: WorkflowManagerPublishEventInput,
|
|
259
|
-
): Promise<
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
481
|
+
): Promise<WorkflowEvent> {
|
|
482
|
+
const event = workflowEventFromProto(
|
|
483
|
+
await this.client.publishEvent({
|
|
484
|
+
event: workflowEventToProto(request.event),
|
|
485
|
+
invocationToken: this.invocationToken,
|
|
486
|
+
providerName: request.providerName ?? "",
|
|
487
|
+
}),
|
|
488
|
+
);
|
|
489
|
+
if (event === undefined) {
|
|
490
|
+
throw new Error("WorkflowManager.publishEvent returned no event");
|
|
491
|
+
}
|
|
492
|
+
return event;
|
|
264
493
|
}
|
|
265
494
|
}
|
|
266
495
|
|