@dudousxd/nestjs-durable-dashboard 0.10.0 → 0.12.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/dist/client/durable-client.d.ts +12 -2
- package/dist/client/durable-client.d.ts.map +1 -1
- package/dist/client/durable-client.js +18 -1
- package/dist/client/durable-client.js.map +1 -1
- package/dist/server/attr-filter.d.ts +8 -0
- package/dist/server/attr-filter.d.ts.map +1 -0
- package/dist/server/attr-filter.js +30 -0
- package/dist/server/attr-filter.js.map +1 -0
- package/dist/server/dashboard.service.d.ts +15 -0
- package/dist/server/dashboard.service.d.ts.map +1 -1
- package/dist/server/dashboard.service.js +30 -1
- package/dist/server/dashboard.service.js.map +1 -1
- package/dist/server/durable-api.controller.d.ts +8 -1
- package/dist/server/durable-api.controller.d.ts.map +1 -1
- package/dist/server/durable-api.controller.js +33 -4
- package/dist/server/durable-api.controller.js.map +1 -1
- package/dist/spa/assets/index-CbEPf_7i.js +62 -0
- package/dist/spa/assets/{index-CeWXZ4L_.css → index-DRllwu5P.css} +1 -1
- package/dist/spa/index.html +2 -2
- package/package.json +2 -2
- package/dist/spa/assets/index-fjBz9-PS.js +0 -62
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type RunStatus = 'running' | 'suspended' | 'completed' | 'failed' | 'cancelled' | 'dead';
|
|
1
|
+
export type RunStatus = 'pending' | 'running' | 'suspended' | 'completed' | 'failed' | 'cancelled' | 'dead';
|
|
2
2
|
export type StepKind = 'local' | 'remote' | 'sleep' | 'signal';
|
|
3
3
|
export interface WorkflowRun {
|
|
4
4
|
id: string;
|
|
@@ -14,6 +14,7 @@ export interface WorkflowRun {
|
|
|
14
14
|
wakeAt?: number;
|
|
15
15
|
recoveryAttempts?: number;
|
|
16
16
|
tags?: string[];
|
|
17
|
+
searchAttributes?: Record<string, string | number | boolean>;
|
|
17
18
|
createdAt: string;
|
|
18
19
|
updatedAt: string;
|
|
19
20
|
}
|
|
@@ -74,9 +75,18 @@ declare global {
|
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
export declare const durableClient: {
|
|
77
|
-
runs(status?: RunStatus, tag?: string): Promise<WorkflowRun[]>;
|
|
78
|
+
runs(status?: RunStatus, tag?: string, attr?: string[]): Promise<WorkflowRun[]>;
|
|
78
79
|
run(id: string): Promise<RunDetail>;
|
|
79
80
|
retry(id: string): Promise<WorkflowRun>;
|
|
81
|
+
/** Bulk retry/cancel every run matching a filter. Returns how many matched + were acted on. */
|
|
82
|
+
bulk(action: "retry" | "cancel", filter: {
|
|
83
|
+
status?: RunStatus;
|
|
84
|
+
tag?: string;
|
|
85
|
+
attr?: string[];
|
|
86
|
+
}): Promise<{
|
|
87
|
+
matched: number;
|
|
88
|
+
applied: number;
|
|
89
|
+
}>;
|
|
80
90
|
cancel(id: string, opts?: {
|
|
81
91
|
compensate?: boolean;
|
|
82
92
|
}): Promise<WorkflowRun>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-client.d.ts","sourceRoot":"","sources":["../../src/client/durable-client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"durable-client.d.ts","sourceRoot":"","sources":["../../src/client/durable-client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,SAAS,GACT,WAAW,GACX,WAAW,GACX,QAAQ,GACR,WAAW,GACX,MAAM,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,uFAAuF;IACvF,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,oGAAoG;IACpG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mGAAmG;IACnG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wGAAwG;IACxG,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EACA,aAAa,GACb,eAAe,GACf,YAAY,GACZ,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,aAAa,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,+FAA+F;QAC/F,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,qGAAqG;QACrG,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;CACF;AAcD,eAAO,MAAM,aAAa;kBACV,SAAS,QAAQ,MAAM,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YASvE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;cAGzB,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAGvC,+FAA+F;iBAErF,OAAO,GAAG,QAAQ,UAClB;QAAE,MAAM,CAAC,EAAE,SAAS,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC5D,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;eAUrC,MAAM,SAAS;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;iBAI5D,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAG1C;;;OAGG;kBACW,MAAM,WAAW,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;CAWzE,CAAC"}
|
|
@@ -11,12 +11,15 @@ async function http(path, init) {
|
|
|
11
11
|
return (await res.json());
|
|
12
12
|
}
|
|
13
13
|
export const durableClient = {
|
|
14
|
-
runs(status, tag) {
|
|
14
|
+
runs(status, tag, attr) {
|
|
15
15
|
const q = new URLSearchParams();
|
|
16
16
|
if (status)
|
|
17
17
|
q.set('status', status);
|
|
18
18
|
if (tag)
|
|
19
19
|
q.set('tag', tag);
|
|
20
|
+
// Each `attr` is a `key:op:value` predicate; repeated params are ANDed server-side.
|
|
21
|
+
for (const a of attr ?? [])
|
|
22
|
+
q.append('attr', a);
|
|
20
23
|
const qs = q.toString();
|
|
21
24
|
return http(qs ? `/runs?${qs}` : '/runs');
|
|
22
25
|
},
|
|
@@ -26,6 +29,20 @@ export const durableClient = {
|
|
|
26
29
|
retry(id) {
|
|
27
30
|
return http(`/runs/${encodeURIComponent(id)}/retry`, { method: 'POST' });
|
|
28
31
|
},
|
|
32
|
+
/** Bulk retry/cancel every run matching a filter. Returns how many matched + were acted on. */
|
|
33
|
+
bulk(action, filter) {
|
|
34
|
+
const q = new URLSearchParams();
|
|
35
|
+
if (filter.status)
|
|
36
|
+
q.set('status', filter.status);
|
|
37
|
+
if (filter.tag)
|
|
38
|
+
q.set('tag', filter.tag);
|
|
39
|
+
for (const a of filter.attr ?? [])
|
|
40
|
+
q.append('attr', a);
|
|
41
|
+
const qs = q.toString();
|
|
42
|
+
return http(`/bulk/${action}${qs ? `?${qs}` : ''}`, {
|
|
43
|
+
method: 'POST',
|
|
44
|
+
});
|
|
45
|
+
},
|
|
29
46
|
cancel(id, opts) {
|
|
30
47
|
const qs = opts?.compensate ? '?compensate=true' : '';
|
|
31
48
|
return http(`/runs/${encodeURIComponent(id)}/cancel${qs}`, { method: 'POST' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-client.js","sourceRoot":"","sources":["../../src/client/durable-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"durable-client.js","sourceRoot":"","sources":["../../src/client/durable-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AttributeFilter } from '@dudousxd/nestjs-durable-core';
|
|
2
|
+
/**
|
|
3
|
+
* Parse `attr=key:op:value` query params (repeatable, ANDed) into {@link AttributeFilter}s — e.g.
|
|
4
|
+
* `?attr=amount:gte:200&attr=tier:eq:pro`. `op` must be a known operator; a colon in the value is
|
|
5
|
+
* preserved (only the first two colons delimit). Malformed entries are skipped.
|
|
6
|
+
*/
|
|
7
|
+
export declare function parseAttrFilters(attr?: string | string[]): AttributeFilter[] | undefined;
|
|
8
|
+
//# sourceMappingURL=attr-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attr-filter.d.ts","sourceRoot":"","sources":["../../src/server/attr-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,+BAA+B,CAAC;AAYlF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,EAAE,GAAG,SAAS,CAUxF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const ATTR_OPS = new Set(['eq', 'ne', 'gt', 'gte', 'lt', 'lte']);
|
|
2
|
+
/** Coerce a query-string value: `true`/`false` → boolean, numeric → number, else the raw string. */
|
|
3
|
+
function coerce(v) {
|
|
4
|
+
if (v === 'true')
|
|
5
|
+
return true;
|
|
6
|
+
if (v === 'false')
|
|
7
|
+
return false;
|
|
8
|
+
if (v !== '' && !Number.isNaN(Number(v)))
|
|
9
|
+
return Number(v);
|
|
10
|
+
return v;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Parse `attr=key:op:value` query params (repeatable, ANDed) into {@link AttributeFilter}s — e.g.
|
|
14
|
+
* `?attr=amount:gte:200&attr=tier:eq:pro`. `op` must be a known operator; a colon in the value is
|
|
15
|
+
* preserved (only the first two colons delimit). Malformed entries are skipped.
|
|
16
|
+
*/
|
|
17
|
+
export function parseAttrFilters(attr) {
|
|
18
|
+
if (!attr)
|
|
19
|
+
return undefined;
|
|
20
|
+
const raw = Array.isArray(attr) ? attr : [attr];
|
|
21
|
+
const filters = [];
|
|
22
|
+
for (const entry of raw) {
|
|
23
|
+
const [key, op, ...rest] = entry.split(':');
|
|
24
|
+
if (!key || !ATTR_OPS.has(op) || rest.length === 0)
|
|
25
|
+
continue;
|
|
26
|
+
filters.push({ key, op: op, value: coerce(rest.join(':')) });
|
|
27
|
+
}
|
|
28
|
+
return filters.length ? filters : undefined;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=attr-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attr-filter.js","sourceRoot":"","sources":["../../src/server/attr-filter.ts"],"names":[],"mappings":"AAEA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAE9E,oGAAoG;AACpG,SAAS,MAAM,CAAC,CAAS;IACvB,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAwB;IACvD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAiB,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC5E,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC"}
|
|
@@ -9,7 +9,11 @@ export interface RunDetail {
|
|
|
9
9
|
export declare class DashboardService {
|
|
10
10
|
private readonly store;
|
|
11
11
|
private readonly engine;
|
|
12
|
+
/** Prometheus counters accumulated from engine events since boot (per process). */
|
|
13
|
+
private readonly metricsCollector;
|
|
12
14
|
constructor(store: StateStore, engine: WorkflowEngine);
|
|
15
|
+
/** Prometheus-text metrics (runs/steps by outcome, per-workflow counts) for a `/metrics` scrape. */
|
|
16
|
+
metrics(): string;
|
|
13
17
|
listRuns(query: RunQuery): Promise<WorkflowRun[]>;
|
|
14
18
|
getRunDetail(runId: string): Promise<RunDetail | null>;
|
|
15
19
|
/** Re-run a failed/incomplete run; completed steps replay from their checkpoints. */
|
|
@@ -17,6 +21,17 @@ export declare class DashboardService {
|
|
|
17
21
|
cancel(runId: string, opts?: {
|
|
18
22
|
compensate?: boolean;
|
|
19
23
|
}): Promise<RunResult | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Apply `retry` or `cancel` to every run matching a filter (status / tag / workflow) — e.g. "retry
|
|
26
|
+
* every `dead` run tagged `type:mel`". Capped at 500 runs per call; runs that can't be acted on
|
|
27
|
+
* (already terminal) are skipped. Returns how many matched and how many the action applied to.
|
|
28
|
+
*/
|
|
29
|
+
bulk(action: 'retry' | 'cancel', filter: Pick<RunQuery, 'status' | 'tag' | 'workflow' | 'attributes'>, opts?: {
|
|
30
|
+
compensate?: boolean;
|
|
31
|
+
}): Promise<{
|
|
32
|
+
matched: number;
|
|
33
|
+
applied: number;
|
|
34
|
+
}>;
|
|
20
35
|
/** Resume a run paused at a `ctx.breakpoint` (the "continue" button). */
|
|
21
36
|
continue(runId: string): Promise<RunResult | null>;
|
|
22
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.service.d.ts","sourceRoot":"","sources":["../../src/server/dashboard.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"dashboard.service.d.ts","sourceRoot":"","sources":["../../src/server/dashboard.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,QAAQ,EACb,KAAK,SAAS,EAEd,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,WAAW,EAEjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,WAAW,CAAC;IACjB,2EAA2E;IAC3E,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,2DAA2D;AAC3D,qBACa,gBAAgB;IAKJ,OAAO,CAAC,QAAQ,CAAC,KAAK;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAGZ,KAAK,EAAE,UAAU,EACtC,MAAM,EAAE,cAAc;IAKzC,oGAAoG;IACpG,OAAO,IAAI,MAAM;IAIjB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI3C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAO5D,qFAAqF;IACrF,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAIxC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAIjF;;;;OAIG;IACG,IAAI,CACR,MAAM,EAAE,OAAO,GAAG,QAAQ,EAC1B,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,YAAY,CAAC,EACpE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAC9B,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAehD,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAIlD;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAIvE,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD,mGAAmG;IACnG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAIxE;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;CAQ5D"}
|
|
@@ -10,16 +10,23 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { STATE_STORE, WorkflowEngine, } from '@dudousxd/nestjs-durable-core';
|
|
13
|
+
import { STATE_STORE, WorkflowEngine, collectMetrics, } from '@dudousxd/nestjs-durable-core';
|
|
14
14
|
import { Inject, Injectable } from '@nestjs/common';
|
|
15
15
|
import { Observable } from 'rxjs';
|
|
16
16
|
/** Read-model and actions backing the control-plane UI. */
|
|
17
17
|
let DashboardService = class DashboardService {
|
|
18
18
|
store;
|
|
19
19
|
engine;
|
|
20
|
+
/** Prometheus counters accumulated from engine events since boot (per process). */
|
|
21
|
+
metricsCollector;
|
|
20
22
|
constructor(store, engine) {
|
|
21
23
|
this.store = store;
|
|
22
24
|
this.engine = engine;
|
|
25
|
+
this.metricsCollector = collectMetrics(this.engine);
|
|
26
|
+
}
|
|
27
|
+
/** Prometheus-text metrics (runs/steps by outcome, per-workflow counts) for a `/metrics` scrape. */
|
|
28
|
+
metrics() {
|
|
29
|
+
return this.metricsCollector.prometheus();
|
|
23
30
|
}
|
|
24
31
|
listRuns(query) {
|
|
25
32
|
return this.store.listRuns(query);
|
|
@@ -38,6 +45,28 @@ let DashboardService = class DashboardService {
|
|
|
38
45
|
cancel(runId, opts) {
|
|
39
46
|
return this.engine.cancel(runId, opts);
|
|
40
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Apply `retry` or `cancel` to every run matching a filter (status / tag / workflow) — e.g. "retry
|
|
50
|
+
* every `dead` run tagged `type:mel`". Capped at 500 runs per call; runs that can't be acted on
|
|
51
|
+
* (already terminal) are skipped. Returns how many matched and how many the action applied to.
|
|
52
|
+
*/
|
|
53
|
+
async bulk(action, filter, opts) {
|
|
54
|
+
const runs = await this.store.listRuns({ ...filter, limit: 500 });
|
|
55
|
+
let applied = 0;
|
|
56
|
+
for (const r of runs) {
|
|
57
|
+
try {
|
|
58
|
+
if (action === 'retry')
|
|
59
|
+
await this.engine.resume(r.id);
|
|
60
|
+
else
|
|
61
|
+
await this.engine.cancel(r.id, opts);
|
|
62
|
+
applied += 1;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Skip a run that can't take the action (e.g. already terminal) — keep going.
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return { matched: runs.length, applied };
|
|
69
|
+
}
|
|
41
70
|
/** Resume a run paused at a `ctx.breakpoint` (the "continue" button). */
|
|
42
71
|
continue(runId) {
|
|
43
72
|
return this.engine.continue(runId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.service.js","sourceRoot":"","sources":["../../src/server/dashboard.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"dashboard.service.js","sourceRoot":"","sources":["../../src/server/dashboard.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,9 @@ import { DashboardService } from './dashboard.service.js';
|
|
|
4
4
|
export declare class DurableApiController {
|
|
5
5
|
private readonly dashboard;
|
|
6
6
|
constructor(dashboard: DashboardService);
|
|
7
|
-
runs(status?: RunStatus, workflow?: string, tag?: string): Promise<import("@dudousxd/nestjs-durable-core").WorkflowRun[]>;
|
|
7
|
+
runs(status?: RunStatus, workflow?: string, tag?: string, attr?: string | string[]): Promise<import("@dudousxd/nestjs-durable-core").WorkflowRun[]>;
|
|
8
|
+
/** Prometheus-text metrics (runs/steps by outcome, per-workflow counts) for a scrape. */
|
|
9
|
+
metrics(): string;
|
|
8
10
|
run(id: string): Promise<import("./dashboard.service.js").RunDetail>;
|
|
9
11
|
/** Server-Sent Events stream of a run's live lifecycle events — the dashboard tails it instead
|
|
10
12
|
* of polling. Cross-pod when the transport has a control plane (see DashboardService.streamRun). */
|
|
@@ -12,6 +14,11 @@ export declare class DurableApiController {
|
|
|
12
14
|
data: import("@dudousxd/nestjs-durable-core").EngineEvent;
|
|
13
15
|
}>;
|
|
14
16
|
retry(id: string): Promise<import("@dudousxd/nestjs-durable-core").RunResult>;
|
|
17
|
+
/** Bulk retry/cancel every run matching a filter (status / tag / workflow). */
|
|
18
|
+
bulk(action: 'retry' | 'cancel', status?: RunStatus, tag?: string, workflow?: string, attr?: string | string[], compensate?: string): Promise<{
|
|
19
|
+
matched: number;
|
|
20
|
+
applied: number;
|
|
21
|
+
}>;
|
|
15
22
|
cancel(id: string, compensate?: string): Promise<import("@dudousxd/nestjs-durable-core").RunResult>;
|
|
16
23
|
continue(id: string): Promise<import("@dudousxd/nestjs-durable-core").RunResult>;
|
|
17
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-api.controller.d.ts","sourceRoot":"","sources":["../../src/server/durable-api.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"durable-api.controller.d.ts","sourceRoot":"","sources":["../../src/server/durable-api.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAa/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,kGAAkG;AAClG,qBACa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB;IAGxD,IAAI,CACe,MAAM,CAAC,EAAE,SAAS,EAChB,QAAQ,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzC,yFAAyF;IAGzF,OAAO;IAKD,GAAG,CAAc,EAAE,EAAE,MAAM;IAMjC;yGACqG;IAErG,MAAM,CAAc,EAAE,EAAE,MAAM;;;IAK9B,KAAK,CAAc,EAAE,EAAE,MAAM;IAI7B,+EAA+E;IAE/E,IAAI,CACe,MAAM,EAAE,OAAO,GAAG,QAAQ,EAC1B,MAAM,CAAC,EAAE,SAAS,EACrB,GAAG,CAAC,EAAE,MAAM,EACP,QAAQ,CAAC,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAClB,UAAU,CAAC,EAAE,MAAM;;;;IAUpC,MAAM,CAAc,EAAE,EAAE,MAAM,EAAuB,UAAU,CAAC,EAAE,MAAM;IAOxE,QAAQ,CAAc,EAAE,EAAE,MAAM;IAMtC;;;;;OAKG;IAEG,OAAO,CAAiB,KAAK,EAAE,MAAM,EAAU,IAAI,EAAE,OAAO;IAMlE,kGAAkG;IAElG,KAAK,CAAc,EAAE,EAAE,MAAM,EAAgB,GAAG,EAAE,MAAM;IAIxD,oFAAoF;IAEpF,MAAM,CAAc,EAAE,EAAE,MAAM,EAAiB,IAAI,EAAE,MAAM,EAAU,IAAI,EAAE,OAAO;CAGnF"}
|
|
@@ -10,7 +10,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { Body, Controller, Get, NotFoundException, Param, Post, Query, Sse } from '@nestjs/common';
|
|
13
|
+
import { Body, Controller, Get, Header, NotFoundException, Param, Post, Query, Sse, } from '@nestjs/common';
|
|
14
|
+
import { parseAttrFilters } from './attr-filter.js';
|
|
14
15
|
import { DashboardService } from './dashboard.service.js';
|
|
15
16
|
/** JSON API consumed by the control-plane SPA. Mounted at `apiBasePath` (set by RouterModule). */
|
|
16
17
|
let DurableApiController = class DurableApiController {
|
|
@@ -18,8 +19,12 @@ let DurableApiController = class DurableApiController {
|
|
|
18
19
|
constructor(dashboard) {
|
|
19
20
|
this.dashboard = dashboard;
|
|
20
21
|
}
|
|
21
|
-
runs(status, workflow, tag) {
|
|
22
|
-
return this.dashboard.listRuns({ status, workflow, tag });
|
|
22
|
+
runs(status, workflow, tag, attr) {
|
|
23
|
+
return this.dashboard.listRuns({ status, workflow, tag, attributes: parseAttrFilters(attr) });
|
|
24
|
+
}
|
|
25
|
+
/** Prometheus-text metrics (runs/steps by outcome, per-workflow counts) for a scrape. */
|
|
26
|
+
metrics() {
|
|
27
|
+
return this.dashboard.metrics();
|
|
23
28
|
}
|
|
24
29
|
async run(id) {
|
|
25
30
|
const detail = await this.dashboard.getRunDetail(id);
|
|
@@ -35,6 +40,10 @@ let DurableApiController = class DurableApiController {
|
|
|
35
40
|
retry(id) {
|
|
36
41
|
return this.dashboard.retry(id);
|
|
37
42
|
}
|
|
43
|
+
/** Bulk retry/cancel every run matching a filter (status / tag / workflow). */
|
|
44
|
+
bulk(action, status, tag, workflow, attr, compensate) {
|
|
45
|
+
return this.dashboard.bulk(action === 'cancel' ? 'cancel' : 'retry', { status, tag, workflow, attributes: parseAttrFilters(attr) }, { compensate: compensate === 'true' });
|
|
46
|
+
}
|
|
38
47
|
async cancel(id, compensate) {
|
|
39
48
|
const result = await this.dashboard.cancel(id, { compensate: compensate === 'true' });
|
|
40
49
|
if (!result)
|
|
@@ -73,10 +82,18 @@ __decorate([
|
|
|
73
82
|
__param(0, Query('status')),
|
|
74
83
|
__param(1, Query('workflow')),
|
|
75
84
|
__param(2, Query('tag')),
|
|
85
|
+
__param(3, Query('attr')),
|
|
76
86
|
__metadata("design:type", Function),
|
|
77
|
-
__metadata("design:paramtypes", [String, String, String]),
|
|
87
|
+
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
78
88
|
__metadata("design:returntype", void 0)
|
|
79
89
|
], DurableApiController.prototype, "runs", null);
|
|
90
|
+
__decorate([
|
|
91
|
+
Get('metrics'),
|
|
92
|
+
Header('Content-Type', 'text/plain; version=0.0.4'),
|
|
93
|
+
__metadata("design:type", Function),
|
|
94
|
+
__metadata("design:paramtypes", []),
|
|
95
|
+
__metadata("design:returntype", void 0)
|
|
96
|
+
], DurableApiController.prototype, "metrics", null);
|
|
80
97
|
__decorate([
|
|
81
98
|
Get('runs/:id'),
|
|
82
99
|
__param(0, Param('id')),
|
|
@@ -98,6 +115,18 @@ __decorate([
|
|
|
98
115
|
__metadata("design:paramtypes", [String]),
|
|
99
116
|
__metadata("design:returntype", void 0)
|
|
100
117
|
], DurableApiController.prototype, "retry", null);
|
|
118
|
+
__decorate([
|
|
119
|
+
Post('bulk/:action'),
|
|
120
|
+
__param(0, Param('action')),
|
|
121
|
+
__param(1, Query('status')),
|
|
122
|
+
__param(2, Query('tag')),
|
|
123
|
+
__param(3, Query('workflow')),
|
|
124
|
+
__param(4, Query('attr')),
|
|
125
|
+
__param(5, Query('compensate')),
|
|
126
|
+
__metadata("design:type", Function),
|
|
127
|
+
__metadata("design:paramtypes", [String, String, String, String, Object, String]),
|
|
128
|
+
__metadata("design:returntype", void 0)
|
|
129
|
+
], DurableApiController.prototype, "bulk", null);
|
|
101
130
|
__decorate([
|
|
102
131
|
Post('runs/:id/cancel'),
|
|
103
132
|
__param(0, Param('id')),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-api.controller.js","sourceRoot":"","sources":["../../src/server/durable-api.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"durable-api.controller.js","sourceRoot":"","sources":["../../src/server/durable-api.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EACL,IAAI,EACJ,UAAU,EACV,GAAG,EACH,MAAM,EACN,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,GAAG,GACJ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,kGAAkG;AAE3F,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACF;IAA7B,YAA6B,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;IAAG,CAAC;IAG5D,IAAI,CACe,MAAkB,EAChB,QAAiB,EACtB,GAAY,EACX,IAAwB;QAEvC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,yFAAyF;IAGzF,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAGK,AAAN,KAAK,CAAC,GAAG,CAAc,EAAU;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;yGACqG;IAErG,MAAM,CAAc,EAAU;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAGD,KAAK,CAAc,EAAU;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,+EAA+E;IAE/E,IAAI,CACe,MAA0B,EAC1B,MAAkB,EACrB,GAAY,EACP,QAAiB,EACrB,IAAwB,EAClB,UAAmB;QAExC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACxB,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EACxC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAC7D,EAAE,UAAU,EAAE,UAAU,KAAK,MAAM,EAAE,CACtC,CAAC;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAc,EAAU,EAAuB,UAAmB;QAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC;IAGK,AAAN,KAAK,CAAC,QAAQ,CAAc,EAAU;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;QACpF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IAEG,AAAN,KAAK,CAAC,OAAO,CAAiB,KAAa,EAAU,IAAa;QAChE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QAClF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kGAAkG;IAElG,KAAK,CAAc,EAAU,EAAgB,GAAW;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,oFAAoF;IAEpF,MAAM,CAAc,EAAU,EAAiB,IAAY,EAAU,IAAa;QAChF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AA1FC;IADC,GAAG,CAAC,MAAM,CAAC;IAET,WAAA,KAAK,CAAC,QAAQ,CAAC,CAAA;IACf,WAAA,KAAK,CAAC,UAAU,CAAC,CAAA;IACjB,WAAA,KAAK,CAAC,KAAK,CAAC,CAAA;IACZ,WAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;gDAGf;AAKD;IAFC,GAAG,CAAC,SAAS,CAAC;IACd,MAAM,CAAC,cAAc,EAAE,2BAA2B,CAAC;;;;mDAGnD;AAGK;IADL,GAAG,CAAC,UAAU,CAAC;IACL,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;+CAIrB;AAKD;IADC,GAAG,CAAC,iBAAiB,CAAC;IACf,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;kDAElB;AAGD;IADC,IAAI,CAAC,gBAAgB,CAAC;IAChB,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;iDAEjB;AAID;IADC,IAAI,CAAC,cAAc,CAAC;IAElB,WAAA,KAAK,CAAC,QAAQ,CAAC,CAAA;IACf,WAAA,KAAK,CAAC,QAAQ,CAAC,CAAA;IACf,WAAA,KAAK,CAAC,KAAK,CAAC,CAAA;IACZ,WAAA,KAAK,CAAC,UAAU,CAAC,CAAA;IACjB,WAAA,KAAK,CAAC,MAAM,CAAC,CAAA;IACb,WAAA,KAAK,CAAC,YAAY,CAAC,CAAA;;;;gDAOrB;AAGK;IADL,IAAI,CAAC,iBAAiB,CAAC;IACV,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IAAc,WAAA,KAAK,CAAC,YAAY,CAAC,CAAA;;;;kDAIzD;AAGK;IADL,IAAI,CAAC,mBAAmB,CAAC;IACV,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;oDAI1B;AASK;IADL,IAAI,CAAC,iBAAiB,CAAC;IACT,WAAA,KAAK,CAAC,OAAO,CAAC,CAAA;IAAiB,WAAA,IAAI,EAAE,CAAA;;;;mDAInD;AAID;IADC,GAAG,CAAC,sBAAsB,CAAC;IACrB,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IAAc,WAAA,KAAK,CAAC,KAAK,CAAC,CAAA;;;;iDAE3C;AAID;IADC,IAAI,CAAC,wBAAwB,CAAC;IACvB,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IAAc,WAAA,KAAK,CAAC,MAAM,CAAC,CAAA;IAAgB,WAAA,IAAI,EAAE,CAAA;;;;kDAEnE;AA7FU,oBAAoB;IADhC,UAAU,EAAE;qCAE6B,gBAAgB;GAD7C,oBAAoB,CA8FhC"}
|