Skip to content

Commit 79e98c1

Browse files
committed
Added resolver to the engine
1 parent 601002b commit 79e98c1

File tree

6 files changed

+31
-0
lines changed

6 files changed

+31
-0
lines changed

apps/webapp/app/routes/api.v1.waitpoints.tokens.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ const { action } = createActionApiRoute(
7575
idempotencyKey: body.idempotencyKey,
7676
idempotencyKeyExpiresAt,
7777
timeout,
78+
resolver: "TOKEN",
7879
tags: bodyTags,
7980
});
8081

internal-packages/run-engine/src/engine/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -840,13 +840,15 @@ export class RunEngine {
840840
idempotencyKey,
841841
idempotencyKeyExpiresAt,
842842
timeout,
843+
resolver,
843844
tags,
844845
}: {
845846
environmentId: string;
846847
projectId: string;
847848
idempotencyKey?: string;
848849
idempotencyKeyExpiresAt?: Date;
849850
timeout?: Date;
851+
resolver: "TOKEN" | "HTTP_CALLBACK";
850852
tags?: string[];
851853
}): Promise<{ waitpoint: Waitpoint; isCached: boolean }> {
852854
return this.waitpointSystem.createManualWaitpoint({
@@ -855,6 +857,7 @@ export class RunEngine {
855857
idempotencyKey,
856858
idempotencyKeyExpiresAt,
857859
timeout,
860+
resolver,
858861
tags,
859862
});
860863
}

internal-packages/run-engine/src/engine/systems/waitpointSystem.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,13 +229,15 @@ export class WaitpointSystem {
229229
idempotencyKey,
230230
idempotencyKeyExpiresAt,
231231
timeout,
232+
resolver,
232233
tags,
233234
}: {
234235
environmentId: string;
235236
projectId: string;
236237
idempotencyKey?: string;
237238
idempotencyKeyExpiresAt?: Date;
238239
timeout?: Date;
240+
resolver: "TOKEN" | "HTTP_CALLBACK";
239241
tags?: string[];
240242
}): Promise<{ waitpoint: Waitpoint; isCached: boolean }> {
241243
const existingWaitpoint = idempotencyKey
@@ -285,6 +287,7 @@ export class WaitpointSystem {
285287
create: {
286288
...WaitpointId.generate(),
287289
type: "MANUAL",
290+
resolver,
288291
idempotencyKey: idempotencyKey ?? nanoid(24),
289292
idempotencyKeyExpiresAt,
290293
userProvidedIdempotencyKey: !!idempotencyKey,

internal-packages/run-engine/src/engine/tests/checkpoints.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ describe("RunEngine checkpoints", () => {
9191
const waitpointResult = await engine.createManualWaitpoint({
9292
environmentId: authenticatedEnvironment.id,
9393
projectId: authenticatedEnvironment.projectId,
94+
resolver: "TOKEN",
9495
});
9596
expect(waitpointResult.waitpoint.status).toBe("PENDING");
9697

@@ -349,6 +350,7 @@ describe("RunEngine checkpoints", () => {
349350
const waitpoint1 = await engine.createManualWaitpoint({
350351
environmentId: authenticatedEnvironment.id,
351352
projectId: authenticatedEnvironment.projectId,
353+
resolver: "TOKEN",
352354
});
353355

354356
const blocked1 = await engine.blockRunWithWaitpoint({
@@ -399,6 +401,7 @@ describe("RunEngine checkpoints", () => {
399401
const waitpoint2 = await engine.createManualWaitpoint({
400402
environmentId: authenticatedEnvironment.id,
401403
projectId: authenticatedEnvironment.projectId,
404+
resolver: "TOKEN",
402405
});
403406

404407
const blocked2 = await engine.blockRunWithWaitpoint({
@@ -551,6 +554,7 @@ describe("RunEngine checkpoints", () => {
551554
const waitpointResult = await engine.createManualWaitpoint({
552555
environmentId: authenticatedEnvironment.id,
553556
projectId: authenticatedEnvironment.projectId,
557+
resolver: "TOKEN",
554558
});
555559
expect(waitpointResult.waitpoint.status).toBe("PENDING");
556560

@@ -844,6 +848,7 @@ describe("RunEngine checkpoints", () => {
844848
const waitpoint = await engine.createManualWaitpoint({
845849
environmentId: authenticatedEnvironment.id,
846850
projectId: authenticatedEnvironment.projectId,
851+
resolver: "TOKEN",
847852
});
848853
expect(waitpoint.waitpoint.status).toBe("PENDING");
849854

internal-packages/run-engine/src/engine/tests/releaseConcurrency.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ describe("RunEngine Releasing Concurrency", () => {
102102
const result = await engine.createManualWaitpoint({
103103
environmentId: authenticatedEnvironment.id,
104104
projectId: authenticatedEnvironment.projectId,
105+
resolver: "TOKEN",
105106
});
106107

107108
// Block the run, not specifying any release concurrency option
@@ -154,6 +155,7 @@ describe("RunEngine Releasing Concurrency", () => {
154155
const result2 = await engine.createManualWaitpoint({
155156
environmentId: authenticatedEnvironment.id,
156157
projectId: authenticatedEnvironment.projectId,
158+
resolver: "TOKEN",
157159
});
158160

159161
const executingWithWaitpointSnapshot2 = await engine.blockRunWithWaitpoint({
@@ -302,6 +304,7 @@ describe("RunEngine Releasing Concurrency", () => {
302304
const result = await engine.createManualWaitpoint({
303305
environmentId: authenticatedEnvironment.id,
304306
projectId: authenticatedEnvironment.projectId,
307+
resolver: "TOKEN",
305308
});
306309

307310
// Block the run, not specifying any release concurrency option
@@ -355,6 +358,7 @@ describe("RunEngine Releasing Concurrency", () => {
355358
const result2 = await engine.createManualWaitpoint({
356359
environmentId: authenticatedEnvironment.id,
357360
projectId: authenticatedEnvironment.projectId,
361+
resolver: "TOKEN",
358362
});
359363

360364
const executingWithWaitpointSnapshot2 = await engine.blockRunWithWaitpoint({
@@ -490,6 +494,7 @@ describe("RunEngine Releasing Concurrency", () => {
490494
const result = await engine.createManualWaitpoint({
491495
environmentId: authenticatedEnvironment.id,
492496
projectId: authenticatedEnvironment.projectId,
497+
resolver: "TOKEN",
493498
});
494499

495500
// Block the run, not specifying any release concurrency option
@@ -543,6 +548,7 @@ describe("RunEngine Releasing Concurrency", () => {
543548
const result2 = await engine.createManualWaitpoint({
544549
environmentId: authenticatedEnvironment.id,
545550
projectId: authenticatedEnvironment.projectId,
551+
resolver: "TOKEN",
546552
});
547553

548554
const executingWithWaitpointSnapshot2 = await engine.blockRunWithWaitpoint({
@@ -668,6 +674,7 @@ describe("RunEngine Releasing Concurrency", () => {
668674
const result = await engine.createManualWaitpoint({
669675
environmentId: authenticatedEnvironment.id,
670676
projectId: authenticatedEnvironment.projectId,
677+
resolver: "TOKEN",
671678
});
672679

673680
await engine.releaseConcurrencySystem.consumeToken(
@@ -830,6 +837,7 @@ describe("RunEngine Releasing Concurrency", () => {
830837
const result = await engine.createManualWaitpoint({
831838
environmentId: authenticatedEnvironment.id,
832839
projectId: authenticatedEnvironment.projectId,
840+
resolver: "TOKEN",
833841
});
834842

835843
await engine.releaseConcurrencySystem.consumeToken(
@@ -1012,6 +1020,7 @@ describe("RunEngine Releasing Concurrency", () => {
10121020
const result = await engine.createManualWaitpoint({
10131021
environmentId: authenticatedEnvironment.id,
10141022
projectId: authenticatedEnvironment.projectId,
1023+
resolver: "TOKEN",
10151024
});
10161025

10171026
await engine.releaseConcurrencySystem.consumeToken(
@@ -1185,6 +1194,7 @@ describe("RunEngine Releasing Concurrency", () => {
11851194
const result = await engine.createManualWaitpoint({
11861195
environmentId: authenticatedEnvironment.id,
11871196
projectId: authenticatedEnvironment.projectId,
1197+
resolver: "TOKEN",
11881198
});
11891199

11901200
// Block the run, not specifying any release concurrency option
@@ -1339,6 +1349,7 @@ describe("RunEngine Releasing Concurrency", () => {
13391349
const result = await engine.createManualWaitpoint({
13401350
environmentId: authenticatedEnvironment.id,
13411351
projectId: authenticatedEnvironment.projectId,
1352+
resolver: "TOKEN",
13421353
});
13431354

13441355
// Block the run, specifying the release concurrency option as true

internal-packages/run-engine/src/engine/tests/waitpoints.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,7 @@ describe("RunEngine Waitpoints", () => {
345345
const result = await engine.createManualWaitpoint({
346346
environmentId: authenticatedEnvironment.id,
347347
projectId: authenticatedEnvironment.projectId,
348+
resolver: "TOKEN",
348349
});
349350
expect(result.waitpoint.status).toBe("PENDING");
350351

@@ -485,6 +486,7 @@ describe("RunEngine Waitpoints", () => {
485486
projectId: authenticatedEnvironment.projectId,
486487
//fail after 200ms
487488
timeout: new Date(Date.now() + 200),
489+
resolver: "TOKEN",
488490
});
489491

490492
//block the run
@@ -607,6 +609,7 @@ describe("RunEngine Waitpoints", () => {
607609
engine.createManualWaitpoint({
608610
environmentId: authenticatedEnvironment.id,
609611
projectId: authenticatedEnvironment.projectId,
612+
resolver: "TOKEN",
610613
})
611614
)
612615
);
@@ -751,6 +754,7 @@ describe("RunEngine Waitpoints", () => {
751754
environmentId: authenticatedEnvironment.id,
752755
projectId: authenticatedEnvironment.projectId,
753756
timeout,
757+
resolver: "TOKEN",
754758
});
755759
expect(result.waitpoint.status).toBe("PENDING");
756760
expect(result.waitpoint.completedAfter).toStrictEqual(timeout);
@@ -900,6 +904,7 @@ describe("RunEngine Waitpoints", () => {
900904
environmentId: authenticatedEnvironment.id,
901905
projectId: authenticatedEnvironment.projectId,
902906
idempotencyKey,
907+
resolver: "TOKEN",
903908
});
904909
expect(result.waitpoint.status).toBe("PENDING");
905910
expect(result.waitpoint.idempotencyKey).toBe(idempotencyKey);
@@ -1052,6 +1057,7 @@ describe("RunEngine Waitpoints", () => {
10521057
projectId: authenticatedEnvironment.projectId,
10531058
idempotencyKey,
10541059
idempotencyKeyExpiresAt: new Date(Date.now() + 200),
1060+
resolver: "TOKEN",
10551061
});
10561062
expect(result.waitpoint.status).toBe("PENDING");
10571063
expect(result.waitpoint.idempotencyKey).toBe(idempotencyKey);
@@ -1062,6 +1068,7 @@ describe("RunEngine Waitpoints", () => {
10621068
projectId: authenticatedEnvironment.projectId,
10631069
idempotencyKey,
10641070
idempotencyKeyExpiresAt: new Date(Date.now() + 200),
1071+
resolver: "TOKEN",
10651072
});
10661073
expect(sameWaitpointResult.waitpoint.id).toBe(result.waitpoint.id);
10671074

@@ -1217,6 +1224,7 @@ describe("RunEngine Waitpoints", () => {
12171224
const waitpoint = await engine.createManualWaitpoint({
12181225
environmentId: authenticatedEnvironment.id,
12191226
projectId: authenticatedEnvironment.projectId,
1227+
resolver: "TOKEN",
12201228
});
12211229
expect(waitpoint.waitpoint.status).toBe("PENDING");
12221230

0 commit comments

Comments
 (0)