@adonis-agora/durable 0.59.0 → 1.0.0-rc.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/CHANGELOG.md +44 -0
- package/dist/assets/spa/assets/index-70hGzOnT.css +1 -0
- package/dist/assets/spa/assets/index-CJjMAUau.js +16 -0
- package/dist/assets/spa/assets/index-CJjMAUau.js.map +1 -0
- package/dist/assets/spa/index.html +2 -2
- package/dist/providers/dashboard_provider.d.ts +1 -1
- package/dist/providers/dashboard_provider.d.ts.map +1 -1
- package/dist/providers/dashboard_provider.js +4 -2
- package/dist/providers/dashboard_provider.js.map +1 -1
- package/dist/providers/durable_provider.d.ts.map +1 -1
- package/dist/providers/durable_provider.js +3 -0
- package/dist/providers/durable_provider.js.map +1 -1
- package/dist/src/base-workflow.d.ts +12 -1
- package/dist/src/base-workflow.d.ts.map +1 -1
- package/dist/src/base-workflow.js +13 -2
- package/dist/src/base-workflow.js.map +1 -1
- package/dist/src/codec-state-store.d.ts +10 -1
- package/dist/src/codec-state-store.d.ts.map +1 -1
- package/dist/src/codec-state-store.js +25 -0
- package/dist/src/codec-state-store.js.map +1 -1
- package/dist/src/control-plane-redis/redis-control-plane.d.ts +70 -7
- package/dist/src/control-plane-redis/redis-control-plane.d.ts.map +1 -1
- package/dist/src/control-plane-redis/redis-control-plane.js +108 -7
- package/dist/src/control-plane-redis/redis-control-plane.js.map +1 -1
- package/dist/src/control-planes/factory.d.ts +15 -3
- package/dist/src/control-planes/factory.d.ts.map +1 -1
- package/dist/src/control-planes/factory.js +3 -1
- package/dist/src/control-planes/factory.js.map +1 -1
- package/dist/src/dashboard/gateway-adapter.d.ts +1 -1
- package/dist/src/dashboard/gateway-adapter.js +1 -1
- package/dist/src/dashboard/handlers.d.ts +1 -1
- package/dist/src/dashboard/handlers.js +1 -1
- package/dist/src/dashboard/index.d.ts +1 -1
- package/dist/src/dashboard/index.d.ts.map +1 -1
- package/dist/src/dashboard/index.js +1 -1
- package/dist/src/dashboard/index.js.map +1 -1
- package/dist/src/dashboard/openapi.js +1 -1
- package/dist/src/dashboard/openapi.js.map +1 -1
- package/dist/src/define_config.d.ts +14 -1
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/engine.d.ts +81 -1
- package/dist/src/engine.d.ts.map +1 -1
- package/dist/src/engine.js +532 -28
- package/dist/src/engine.js.map +1 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +4 -0
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/interfaces.d.ts +122 -5
- package/dist/src/interfaces.d.ts.map +1 -1
- package/dist/src/interfaces.js +11 -0
- package/dist/src/interfaces.js.map +1 -1
- package/dist/src/run-gateway/proxy-run-gateway.d.ts.map +1 -1
- package/dist/src/run-gateway/proxy-run-gateway.js +7 -14
- package/dist/src/run-gateway/proxy-run-gateway.js.map +1 -1
- package/dist/src/run-gateway/run-request-responder.d.ts +1 -2
- package/dist/src/run-gateway/run-request-responder.d.ts.map +1 -1
- package/dist/src/run-gateway/run-request-responder.js +1 -2
- package/dist/src/run-gateway/run-request-responder.js.map +1 -1
- package/dist/src/scheduler.d.ts +0 -5
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/sticky-continuation.d.ts +141 -0
- package/dist/src/sticky-continuation.d.ts.map +1 -0
- package/dist/src/sticky-continuation.js +231 -0
- package/dist/src/sticky-continuation.js.map +1 -0
- package/dist/src/stores/factory.d.ts +6 -0
- package/dist/src/stores/factory.d.ts.map +1 -1
- package/dist/src/stores/factory.js +3 -0
- package/dist/src/stores/factory.js.map +1 -1
- package/dist/src/stores/lucid-pg-hot-path.d.ts +30 -0
- package/dist/src/stores/lucid-pg-hot-path.d.ts.map +1 -0
- package/dist/src/stores/lucid-pg-hot-path.js +67 -0
- package/dist/src/stores/lucid-pg-hot-path.js.map +1 -0
- package/dist/src/stores/lucid.d.ts +30 -1
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +456 -17
- package/dist/src/stores/lucid.js.map +1 -1
- package/dist/src/testing/in-memory-state-store.d.ts +12 -1
- package/dist/src/testing/in-memory-state-store.d.ts.map +1 -1
- package/dist/src/testing/in-memory-state-store.js +101 -1
- package/dist/src/testing/in-memory-state-store.js.map +1 -1
- package/dist/src/testing-kit/state-store-conformance.d.ts.map +1 -1
- package/dist/src/testing-kit/state-store-conformance.js +199 -0
- package/dist/src/testing-kit/state-store-conformance.js.map +1 -1
- package/dist/src/transport-pool.d.ts +10 -0
- package/dist/src/transport-pool.d.ts.map +1 -1
- package/dist/src/transport-pool.js +23 -2
- package/dist/src/transport-pool.js.map +1 -1
- package/dist/src/transports/bullmq/bullmq-transport.d.ts +41 -1
- package/dist/src/transports/bullmq/bullmq-transport.d.ts.map +1 -1
- package/dist/src/transports/bullmq/bullmq-transport.js +283 -5
- package/dist/src/transports/bullmq/bullmq-transport.js.map +1 -1
- package/dist/src/transports/bullmq/deps.d.ts +12 -1
- package/dist/src/transports/bullmq/deps.d.ts.map +1 -1
- package/dist/src/transports/bullmq/deps.js.map +1 -1
- package/dist/src/transports/bullmq/naming.d.ts +13 -3
- package/dist/src/transports/bullmq/naming.d.ts.map +1 -1
- package/dist/src/transports/bullmq/naming.js +19 -3
- package/dist/src/transports/bullmq/naming.js.map +1 -1
- package/dist/src/transports/db.d.ts +3 -8
- package/dist/src/transports/db.d.ts.map +1 -1
- package/dist/src/transports/db.js +4 -4
- package/dist/src/transports/db.js.map +1 -1
- package/dist/src/transports/event-emitter.d.ts +0 -5
- package/dist/src/transports/event-emitter.d.ts.map +1 -1
- package/dist/src/transports/event-emitter.js.map +1 -1
- package/dist/src/transports/factory.d.ts +0 -15
- package/dist/src/transports/factory.d.ts.map +1 -1
- package/dist/src/transports/factory.js +0 -3
- package/dist/src/transports/factory.js.map +1 -1
- package/dist/src/transports/queue.d.ts +3 -8
- package/dist/src/transports/queue.d.ts.map +1 -1
- package/dist/src/transports/queue.js +2 -2
- package/dist/src/transports/queue.js.map +1 -1
- package/dist/src/transports/worker-keys.d.ts +2 -1
- package/dist/src/transports/worker-keys.d.ts.map +1 -1
- package/dist/src/transports/worker-keys.js +3 -2
- package/dist/src/transports/worker-keys.js.map +1 -1
- package/dist/src/workflow-ctx.d.ts +7 -0
- package/dist/src/workflow-ctx.d.ts.map +1 -1
- package/dist/src/workflow-ctx.js +28 -1
- package/dist/src/workflow-ctx.js.map +1 -1
- package/dist/stubs/config/durable.stub +1 -1
- package/package.json +7 -7
- package/skills/durable-cluster/SKILL.md +4 -3
- package/skills/durable-setup/SKILL.md +6 -3
- package/skills/durable-transports-stores/SKILL.md +3 -22
- package/skills/durable-workflows/SKILL.md +7 -4
- package/dist/assets/spa/assets/index-Co0ef3-q.css +0 -1
- package/dist/assets/spa/assets/index-DmgfShPp.js +0 -16
- package/dist/assets/spa/assets/index-DmgfShPp.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec-state-store.js","sourceRoot":"","sources":["../../src/codec-state-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codec-state-store.js","sourceRoot":"","sources":["../../src/codec-state-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ControlMessage, ControlPlane } from '../index.js';
|
|
1
|
+
import type { ControlMessage, ControlPlane, ControlPublishTarget } from '../index.js';
|
|
2
2
|
/**
|
|
3
3
|
* The raw-`ioredis` half of {@link RedisPubSub}. A real `Redis` instance is assignable to this.
|
|
4
4
|
*
|
|
@@ -15,8 +15,12 @@ import type { ControlMessage, ControlPlane } from '../index.js';
|
|
|
15
15
|
export interface IoredisSubscriber {
|
|
16
16
|
/** Subscribe to a channel. Payloads arrive on `on('message')`, never through an argument here. */
|
|
17
17
|
subscribe(channel: string): unknown;
|
|
18
|
+
/** Subscribe to a channel pattern. Payloads arrive on `on('pmessage')`. */
|
|
19
|
+
psubscribe?(pattern: string): unknown;
|
|
18
20
|
/** A payload on a channel this connection is subscribed to. */
|
|
19
21
|
on?(event: 'message', listener: (channel: string, message: string) => void): unknown;
|
|
22
|
+
/** A payload on a channel matching a pattern this connection is subscribed to. */
|
|
23
|
+
on?(event: 'pmessage', listener: (pattern: string, channel: string, message: string) => void): unknown;
|
|
20
24
|
/** A connection-level failure — the driver logs one line per reconnect burst. */
|
|
21
25
|
on?(event: 'error', listener: (err: Error) => void): unknown;
|
|
22
26
|
/** The connection (re)established — the driver re-arms its error logging. */
|
|
@@ -63,6 +67,8 @@ export interface AdonisRedisPubSub {
|
|
|
63
67
|
publish(channel: string, message: string): unknown;
|
|
64
68
|
/** Subscribe to a channel; the handler receives each payload directly. */
|
|
65
69
|
subscribe(channel: string, handler: (message: string) => void): unknown;
|
|
70
|
+
/** Subscribe to a channel pattern; the handler receives the channel and each payload. */
|
|
71
|
+
psubscribe?(pattern: string, handler: (channel: string, message: string) => void): unknown;
|
|
66
72
|
}
|
|
67
73
|
/**
|
|
68
74
|
* The minimal Redis pub/sub surface this control plane needs: EITHER a raw `ioredis` instance
|
|
@@ -83,10 +89,26 @@ export interface RedisControlPlaneOptions {
|
|
|
83
89
|
connection: RedisPubSub;
|
|
84
90
|
/**
|
|
85
91
|
* Key prefix namespacing the control channel. Defaults to `durable`. The channel is
|
|
86
|
-
* `` `${prefix}-control`
|
|
87
|
-
*
|
|
92
|
+
* `` `${prefix}-control` ``, or `` `${prefix}-${namespace}-control` `` for a set, non-`default`
|
|
93
|
+
* {@link namespace} — the same folding as the BullMQ transport's names, matched EXACTLY to the
|
|
94
|
+
* NestJS BullMQ transport so an AdonisJS fleet and a NestJS fleet sharing one Redis interoperate on
|
|
95
|
+
* the same control plane.
|
|
88
96
|
*/
|
|
89
97
|
prefix?: string;
|
|
98
|
+
/**
|
|
99
|
+
* Deployment namespace folded into the channel name this control plane LISTENS on. Unset adopts the
|
|
100
|
+
* engine's namespace (see {@link RedisControlPlane.useNamespace}); an explicit value wins. `default`
|
|
101
|
+
* keeps the bare `` `${prefix}-control` `` channel. It does not pin publishing: a message about a
|
|
102
|
+
* run still goes to the channel of that run's namespace (see {@link RedisControlPlane.publishControl}).
|
|
103
|
+
*/
|
|
104
|
+
namespace?: string;
|
|
105
|
+
/**
|
|
106
|
+
* Which namespaces this instance observes. `'own'`: its own channel only. `'all'`: also every
|
|
107
|
+
* namespace's channel (a `<prefix>-*-control` pattern subscription), for a console's live tail.
|
|
108
|
+
* Unset: `'all'` for an engine with no namespace, or once the process mounts the durable dashboard
|
|
109
|
+
* (see {@link RedisControlPlane.observeAll}); `'own'` otherwise. An explicit value wins.
|
|
110
|
+
*/
|
|
111
|
+
observe?: 'all' | 'own';
|
|
90
112
|
/**
|
|
91
113
|
* How often (ms) to PING the duplicated pub/sub subscriber connection to detect — and recover
|
|
92
114
|
* from — a silent connection loss. A subscriber connection never WRITEs on its own (it only
|
|
@@ -113,20 +135,61 @@ export interface RedisControlPlaneOptions {
|
|
|
113
135
|
* already dedupes self-broadcasts by `msg.from`, so a publish Redis echoes back to its own subscriber
|
|
114
136
|
* is ignored. Omit a control plane entirely and the engine is local-only (single instance).
|
|
115
137
|
*
|
|
116
|
-
* The channel name (`` `${
|
|
117
|
-
* transport
|
|
138
|
+
* The channel name (`` `${effectivePrefix}-control` ``, the namespace folded in as in the BullMQ
|
|
139
|
+
* transport's names) and the JSON payload match the NestJS BullMQ transport, so a mixed AdonisJS +
|
|
140
|
+
* NestJS fleet on one Redis fans out across both runtimes.
|
|
118
141
|
*/
|
|
119
142
|
export declare class RedisControlPlane implements ControlPlane {
|
|
120
143
|
private readonly connection;
|
|
121
|
-
private readonly
|
|
144
|
+
private readonly prefix;
|
|
145
|
+
private namespace;
|
|
146
|
+
private readonly explicitNamespace;
|
|
122
147
|
/** Only ever set on the raw-ioredis path — it is the `duplicate()`d subscriber connection. */
|
|
123
148
|
private subscriber;
|
|
124
149
|
private subscribed;
|
|
150
|
+
private readonly observe;
|
|
151
|
+
/** {@link observeAll} was called (the dashboard is mounted in this process). */
|
|
152
|
+
private observeAllRequested;
|
|
153
|
+
/** The pattern subscription is in place (it is added once, possibly after {@link onControl}). */
|
|
154
|
+
private patternSubscribed;
|
|
155
|
+
/** Subscribes the namespaces pattern on the connection {@link onControl} set up. */
|
|
156
|
+
private subscribePattern;
|
|
125
157
|
private readonly pingIntervalMs;
|
|
126
158
|
private pingWatchdogTimer;
|
|
127
159
|
private closed;
|
|
128
160
|
constructor(options: RedisControlPlaneOptions);
|
|
129
|
-
|
|
161
|
+
/** The channel this control plane listens on: `` `${effectivePrefix}-control` ``, as the BullMQ
|
|
162
|
+
* transports name it. */
|
|
163
|
+
get channel(): string;
|
|
164
|
+
/**
|
|
165
|
+
* The pattern an engine with no namespace (the operator view over every namespace) also listens on:
|
|
166
|
+
* every namespace's channel, `<prefix>-<namespace>-control`. It never matches the bare
|
|
167
|
+
* `<prefix>-control` (the `*` sits between two dashes), so no message arrives twice. `undefined`
|
|
168
|
+
* when this instance observes its own namespace only (see {@link RedisControlPlaneOptions.observe}).
|
|
169
|
+
*/
|
|
170
|
+
get namespacesPattern(): string | undefined;
|
|
171
|
+
/**
|
|
172
|
+
* Observe every namespace from now on: the process mounts a console (the durable dashboard), whose
|
|
173
|
+
* live tail follows runs of every namespace whatever the engine's own namespace is. Adds the
|
|
174
|
+
* pattern subscription even after {@link onControl} subscribed. A no-op with `observe: 'own'`.
|
|
175
|
+
*/
|
|
176
|
+
observeAll(): void;
|
|
177
|
+
/** Subscribe the namespaces pattern once, when this instance observes all and has subscribed. */
|
|
178
|
+
private armPattern;
|
|
179
|
+
/** The channel of `namespace` (`''`, `default` and unset are all the bare `<prefix>-control`). */
|
|
180
|
+
channelFor(namespace: string | undefined): string;
|
|
181
|
+
/**
|
|
182
|
+
* Adopt the engine's namespace — unless one was passed to the constructor (an explicit one always
|
|
183
|
+
* wins), or the channel is already subscribed. The engine calls it before it subscribes.
|
|
184
|
+
*/
|
|
185
|
+
useNamespace(namespace: string): void;
|
|
186
|
+
/**
|
|
187
|
+
* Publish `msg`. A message about a run (`target.namespace` known) goes to the channel of that run's
|
|
188
|
+
* namespace, so the instances serving the run hear it whichever namespace the publisher is in: a
|
|
189
|
+
* console with no namespace cancels a run on a namespaced worker in real time. Anything else goes to
|
|
190
|
+
* this control plane's own channel. The payload is the same either way.
|
|
191
|
+
*/
|
|
192
|
+
publishControl(msg: ControlMessage, target?: ControlPublishTarget): Promise<void>;
|
|
130
193
|
onControl(handler: (msg: ControlMessage) => void): void;
|
|
131
194
|
/**
|
|
132
195
|
* Attach a de-duplicated `error` listener to the duplicated subscriber and start the ping
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-control-plane.d.ts","sourceRoot":"","sources":["../../../src/control-plane-redis/redis-control-plane.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"redis-control-plane.d.ts","sourceRoot":"","sources":["../../../src/control-plane-redis/redis-control-plane.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { swallowSubscribe } from '../safe-subscribe.js';
|
|
2
|
+
import { controlChannel, effectivePrefix } from '../transports/bullmq/naming.js';
|
|
2
3
|
/**
|
|
3
4
|
* Which of the two clients are we holding? Detected by feature: a raw ioredis client exposes
|
|
4
5
|
* `duplicate()`, the `@adonisjs/redis` connection does not (it hides its `ioConnection`). That is
|
|
@@ -8,6 +9,18 @@ import { swallowSubscribe } from '../safe-subscribe.js';
|
|
|
8
9
|
function isIoredisClient(connection) {
|
|
9
10
|
return 'duplicate' in connection && typeof connection.duplicate === 'function';
|
|
10
11
|
}
|
|
12
|
+
/** The `kind`s of a {@link ControlMessage}. */
|
|
13
|
+
const CONTROL_KINDS = new Set([
|
|
14
|
+
'event',
|
|
15
|
+
'events',
|
|
16
|
+
'cancel',
|
|
17
|
+
'enqueued',
|
|
18
|
+
'schedulePause',
|
|
19
|
+
]);
|
|
20
|
+
/** `value` with Redis glob metacharacters escaped, so a prefix matches only itself. */
|
|
21
|
+
function escapeGlob(value) {
|
|
22
|
+
return value.replace(/[*?[\]\\]/g, '\\$&');
|
|
23
|
+
}
|
|
11
24
|
/** Default {@link RedisControlPlaneOptions.pingIntervalMs}. */
|
|
12
25
|
const DEFAULT_PING_INTERVAL_MS = 30_000;
|
|
13
26
|
/** How long a single watchdog PING may take before its subscriber is presumed dead. */
|
|
@@ -40,31 +53,99 @@ const MAX_TIMER_DELAY_MS = 2 ** 31 - 1;
|
|
|
40
53
|
* already dedupes self-broadcasts by `msg.from`, so a publish Redis echoes back to its own subscriber
|
|
41
54
|
* is ignored. Omit a control plane entirely and the engine is local-only (single instance).
|
|
42
55
|
*
|
|
43
|
-
* The channel name (`` `${
|
|
44
|
-
* transport
|
|
56
|
+
* The channel name (`` `${effectivePrefix}-control` ``, the namespace folded in as in the BullMQ
|
|
57
|
+
* transport's names) and the JSON payload match the NestJS BullMQ transport, so a mixed AdonisJS +
|
|
58
|
+
* NestJS fleet on one Redis fans out across both runtimes.
|
|
45
59
|
*/
|
|
46
60
|
export class RedisControlPlane {
|
|
47
61
|
connection;
|
|
48
|
-
|
|
62
|
+
prefix;
|
|
63
|
+
namespace;
|
|
64
|
+
explicitNamespace;
|
|
49
65
|
/** Only ever set on the raw-ioredis path — it is the `duplicate()`d subscriber connection. */
|
|
50
66
|
subscriber;
|
|
51
67
|
subscribed = false;
|
|
68
|
+
observe;
|
|
69
|
+
/** {@link observeAll} was called (the dashboard is mounted in this process). */
|
|
70
|
+
observeAllRequested = false;
|
|
71
|
+
/** The pattern subscription is in place (it is added once, possibly after {@link onControl}). */
|
|
72
|
+
patternSubscribed = false;
|
|
73
|
+
/** Subscribes the namespaces pattern on the connection {@link onControl} set up. */
|
|
74
|
+
subscribePattern;
|
|
52
75
|
pingIntervalMs;
|
|
53
76
|
pingWatchdogTimer;
|
|
54
77
|
closed = false;
|
|
55
78
|
constructor(options) {
|
|
56
79
|
this.connection = options.connection;
|
|
57
|
-
this.
|
|
80
|
+
this.prefix = options.prefix ?? 'durable';
|
|
81
|
+
this.namespace = options.namespace;
|
|
82
|
+
this.observe = options.observe;
|
|
83
|
+
this.explicitNamespace = options.namespace !== undefined;
|
|
58
84
|
this.pingIntervalMs = normalizePingInterval(options.pingIntervalMs);
|
|
59
85
|
}
|
|
60
|
-
|
|
61
|
-
|
|
86
|
+
/** The channel this control plane listens on: `` `${effectivePrefix}-control` ``, as the BullMQ
|
|
87
|
+
* transports name it. */
|
|
88
|
+
get channel() {
|
|
89
|
+
return this.channelFor(this.namespace);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The pattern an engine with no namespace (the operator view over every namespace) also listens on:
|
|
93
|
+
* every namespace's channel, `<prefix>-<namespace>-control`. It never matches the bare
|
|
94
|
+
* `<prefix>-control` (the `*` sits between two dashes), so no message arrives twice. `undefined`
|
|
95
|
+
* when this instance observes its own namespace only (see {@link RedisControlPlaneOptions.observe}).
|
|
96
|
+
*/
|
|
97
|
+
get namespacesPattern() {
|
|
98
|
+
const all = this.observe === 'all' ||
|
|
99
|
+
(this.observe === undefined && (this.namespace === undefined || this.observeAllRequested));
|
|
100
|
+
return all ? `${escapeGlob(this.prefix)}-*-control` : undefined;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Observe every namespace from now on: the process mounts a console (the durable dashboard), whose
|
|
104
|
+
* live tail follows runs of every namespace whatever the engine's own namespace is. Adds the
|
|
105
|
+
* pattern subscription even after {@link onControl} subscribed. A no-op with `observe: 'own'`.
|
|
106
|
+
*/
|
|
107
|
+
observeAll() {
|
|
108
|
+
if (this.observe === 'own')
|
|
109
|
+
return;
|
|
110
|
+
this.observeAllRequested = true;
|
|
111
|
+
this.armPattern();
|
|
112
|
+
}
|
|
113
|
+
/** Subscribe the namespaces pattern once, when this instance observes all and has subscribed. */
|
|
114
|
+
armPattern() {
|
|
115
|
+
const pattern = this.namespacesPattern;
|
|
116
|
+
if (pattern === undefined || this.patternSubscribed || !this.subscribePattern)
|
|
117
|
+
return;
|
|
118
|
+
this.patternSubscribed = true;
|
|
119
|
+
this.subscribePattern(pattern);
|
|
120
|
+
}
|
|
121
|
+
/** The channel of `namespace` (`''`, `default` and unset are all the bare `<prefix>-control`). */
|
|
122
|
+
channelFor(namespace) {
|
|
123
|
+
return controlChannel(effectivePrefix(this.prefix, namespace || undefined));
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Adopt the engine's namespace — unless one was passed to the constructor (an explicit one always
|
|
127
|
+
* wins), or the channel is already subscribed. The engine calls it before it subscribes.
|
|
128
|
+
*/
|
|
129
|
+
useNamespace(namespace) {
|
|
130
|
+
if (this.explicitNamespace || this.subscribed)
|
|
131
|
+
return;
|
|
132
|
+
this.namespace = namespace;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Publish `msg`. A message about a run (`target.namespace` known) goes to the channel of that run's
|
|
136
|
+
* namespace, so the instances serving the run hear it whichever namespace the publisher is in: a
|
|
137
|
+
* console with no namespace cancels a run on a namespaced worker in real time. Anything else goes to
|
|
138
|
+
* this control plane's own channel. The payload is the same either way.
|
|
139
|
+
*/
|
|
140
|
+
async publishControl(msg, target) {
|
|
141
|
+
const channel = target?.namespace !== undefined ? this.channelFor(target.namespace) : this.channel;
|
|
142
|
+
await this.connection.publish(channel, JSON.stringify(msg));
|
|
62
143
|
}
|
|
63
144
|
onControl(handler) {
|
|
64
145
|
if (this.subscribed)
|
|
65
146
|
return; // one subscription per control plane
|
|
66
147
|
this.subscribed = true;
|
|
67
|
-
const deliver = (payload) => {
|
|
148
|
+
const deliver = (payload, fromPattern = false) => {
|
|
68
149
|
let msg;
|
|
69
150
|
try {
|
|
70
151
|
msg = JSON.parse(payload);
|
|
@@ -72,6 +153,11 @@ export class RedisControlPlane {
|
|
|
72
153
|
catch {
|
|
73
154
|
return; // swallow malformed payloads — a control message must never crash the engine
|
|
74
155
|
}
|
|
156
|
+
// A pattern can match a channel some other publisher named `…-control`: take control messages
|
|
157
|
+
// only, so a stray payload on such a channel never reaches the engine.
|
|
158
|
+
if (fromPattern && !CONTROL_KINDS.has(msg?.kind)) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
75
161
|
handler(msg);
|
|
76
162
|
};
|
|
77
163
|
if (isIoredisClient(this.connection)) {
|
|
@@ -80,11 +166,26 @@ export class RedisControlPlane {
|
|
|
80
166
|
this.subscriber = sub;
|
|
81
167
|
swallowSubscribe(sub.subscribe(this.channel), () => this.closed, 'control-plane');
|
|
82
168
|
sub.on?.('message', (_channel, payload) => deliver(payload));
|
|
169
|
+
this.subscribePattern = (pattern) => {
|
|
170
|
+
if (typeof sub.psubscribe !== 'function')
|
|
171
|
+
return;
|
|
172
|
+
// ioredis's `autoResubscribe` restores pattern subscriptions on reconnect too.
|
|
173
|
+
swallowSubscribe(sub.psubscribe(pattern), () => this.closed, 'control-plane');
|
|
174
|
+
sub.on?.('pmessage', (_pattern, _channel, payload) => deliver(payload, true));
|
|
175
|
+
};
|
|
176
|
+
this.armPattern();
|
|
83
177
|
this.trackSubscriber(sub);
|
|
84
178
|
}
|
|
85
179
|
else {
|
|
86
180
|
// `@adonisjs/redis` connection: manages its own subscriber connection; handler gets the message.
|
|
87
181
|
swallowSubscribe(this.connection.subscribe(this.channel, (payload) => deliver(payload)), () => this.closed, 'control-plane');
|
|
182
|
+
const connection = this.connection;
|
|
183
|
+
this.subscribePattern = (pattern) => {
|
|
184
|
+
if (typeof connection.psubscribe !== 'function')
|
|
185
|
+
return;
|
|
186
|
+
swallowSubscribe(connection.psubscribe(pattern, (_channel, payload) => deliver(payload, true)), () => this.closed, 'control-plane');
|
|
187
|
+
};
|
|
188
|
+
this.armPattern();
|
|
88
189
|
// The connection keeps its ioredis subscriber on the public `ioSubscriberConnection` field
|
|
89
190
|
// (created by the subscribe above, replaced if it ends). Watch THAT one: it has the same
|
|
90
191
|
// silent-death failure mode as the duplicated subscriber on the ioredis path. Read on every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-control-plane.js","sourceRoot":"","sources":["../../../src/control-plane-redis/redis-control-plane.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"redis-control-plane.js","sourceRoot":"","sources":["../../../src/control-plane-redis/redis-control-plane.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,10 +31,22 @@ export interface RedisControlPlaneConfig {
|
|
|
31
31
|
*/
|
|
32
32
|
connection?: string;
|
|
33
33
|
/**
|
|
34
|
-
* Channel prefix. Defaults to `durable`; the channel is `` `${prefix}-control` ``,
|
|
35
|
-
*
|
|
34
|
+
* Channel prefix. Defaults to `durable`; the channel is `` `${prefix}-control` ``, or
|
|
35
|
+
* `` `${prefix}-${namespace}-control` `` under a non-`default` namespace, matched exactly to the
|
|
36
|
+
* NestJS BullMQ transport so an AdonisJS fleet interoperates with a NestJS fleet on one Redis.
|
|
36
37
|
*/
|
|
37
38
|
prefix?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Namespace folded into the channel name. Defaults to the engine's `namespace`; set it only to
|
|
41
|
+
* listen on another namespace's channel.
|
|
42
|
+
*/
|
|
43
|
+
namespace?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Which namespaces this instance observes: `'own'` (its channel only) or `'all'` (every
|
|
46
|
+
* namespace's channel too). Default: `'all'` for an engine with no namespace or a process that
|
|
47
|
+
* mounts the durable dashboard, `'own'` otherwise.
|
|
48
|
+
*/
|
|
49
|
+
observe?: 'all' | 'own';
|
|
38
50
|
/**
|
|
39
51
|
* How often (ms) to PING the connection's pub/sub subscriber, so one a VPN/NAT/idle timeout dropped
|
|
40
52
|
* silently is reconnected (and resubscribed) instead of sitting deaf until a restart. `0` or `false`
|
|
@@ -50,7 +62,7 @@ export interface RedisControlPlaneConfig {
|
|
|
50
62
|
*
|
|
51
63
|
* export default defineConfig({
|
|
52
64
|
* transport: 'queue',
|
|
53
|
-
* transports: { queue: transports.queue({ connection: 'redis'
|
|
65
|
+
* transports: { queue: transports.queue({ connection: 'redis' }) },
|
|
54
66
|
* // Fan out lifecycle events + cancellation across every replica over Redis pub/sub.
|
|
55
67
|
* controlPlane: controlPlanes.redis({ connection: 'main' }),
|
|
56
68
|
* })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/control-planes/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,GAAG,EAAE;QACH,SAAS,EAAE;YAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;SAAE,CAAC;QACxD,MAAM,EAAE;YAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;SAAE,CAAC;KACtD,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAEtF,uEAAuE;AACvE,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/control-planes/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,GAAG,EAAE;QACH,SAAS,EAAE;YAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;SAAE,CAAC;QACxD,MAAM,EAAE;YAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;SAAE,CAAC;KACtD,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAEtF,uEAAuE;AACvE,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa;IACxB;;;;OAIG;IACH,KAAK,UAAS,uBAAuB,GAAQ,mBAAmB;CAcjE,CAAC"}
|
|
@@ -7,7 +7,7 @@ import { resolveRedisService } from '../redis-service.js';
|
|
|
7
7
|
*
|
|
8
8
|
* export default defineConfig({
|
|
9
9
|
* transport: 'queue',
|
|
10
|
-
* transports: { queue: transports.queue({ connection: 'redis'
|
|
10
|
+
* transports: { queue: transports.queue({ connection: 'redis' }) },
|
|
11
11
|
* // Fan out lifecycle events + cancellation across every replica over Redis pub/sub.
|
|
12
12
|
* controlPlane: controlPlanes.redis({ connection: 'main' }),
|
|
13
13
|
* })
|
|
@@ -31,6 +31,8 @@ export const controlPlanes = {
|
|
|
31
31
|
return new RedisControlPlane({
|
|
32
32
|
connection,
|
|
33
33
|
...(config.prefix !== undefined ? { prefix: config.prefix } : {}),
|
|
34
|
+
...(config.namespace !== undefined ? { namespace: config.namespace } : {}),
|
|
35
|
+
...(config.observe !== undefined ? { observe: config.observe } : {}),
|
|
34
36
|
...(config.pingIntervalMs !== undefined ? { pingIntervalMs: config.pingIntervalMs } : {}),
|
|
35
37
|
});
|
|
36
38
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/control-planes/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/control-planes/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAwD1D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;;;;OAIG;IACH,KAAK,CAAC,MAAM,GAA4B,EAAE;QACxC,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE;YACnB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC;YAC5F,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAU,CAAC;YAC1E,OAAO,IAAI,iBAAiB,CAAC;gBAC3B,UAAU;gBACV,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1E,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -88,7 +88,7 @@ export declare function storeDashboardEngine(engine: StoreEngineLike): Dashboard
|
|
|
88
88
|
* `retry`, `continue`, `retryWithInput`, `runValueFacets` and `waitingFor` ride the wire too (aviary's
|
|
89
89
|
* verbs), so a tenant pod's console retries in place, continues a breakpoint, fixes and replays,
|
|
90
90
|
* fills its value pickers and names what a suspended run waits on. Against a control plane that
|
|
91
|
-
* predates them (it answers `unsupported-request`
|
|
91
|
+
* predates them (it answers `unsupported-request`) each degrades the way it
|
|
92
92
|
* did before those verbs existed: `requeue` re-dispatches the run's pending steps, `continue` and
|
|
93
93
|
* `retryWithInput` answer `null` (the handlers 404), the pickers count a bounded `listRuns` scan,
|
|
94
94
|
* and the list rows carry no `waiting` stamp.
|
|
@@ -103,7 +103,7 @@ export function storeDashboardEngine(engine) {
|
|
|
103
103
|
* `retry`, `continue`, `retryWithInput`, `runValueFacets` and `waitingFor` ride the wire too (aviary's
|
|
104
104
|
* verbs), so a tenant pod's console retries in place, continues a breakpoint, fixes and replays,
|
|
105
105
|
* fills its value pickers and names what a suspended run waits on. Against a control plane that
|
|
106
|
-
* predates them (it answers `unsupported-request`
|
|
106
|
+
* predates them (it answers `unsupported-request`) each degrades the way it
|
|
107
107
|
* did before those verbs existed: `requeue` re-dispatches the run's pending steps, `continue` and
|
|
108
108
|
* `retryWithInput` answer `null` (the handlers 404), the pickers count a bounded `listRuns` scan,
|
|
109
109
|
* and the list rows carry no `waiting` stamp.
|
|
@@ -255,7 +255,7 @@ export declare function continueRun(deps: Deps, req: ApiRequest): Promise<ApiRes
|
|
|
255
255
|
*/
|
|
256
256
|
export declare function signalRun(deps: Deps, req: ApiRequest): Promise<ApiResponse>;
|
|
257
257
|
/**
|
|
258
|
-
* `POST /runs/:id/
|
|
258
|
+
* `POST /runs/:id/updates/:name` — deliver `{ arg? }` to a run's `ctx.onUpdate(name)` point. The
|
|
259
259
|
* workflow's registered validator arbitrates server-side: a rejection comes back 422 with the
|
|
260
260
|
* reason, and nothing is delivered.
|
|
261
261
|
*/
|
|
@@ -517,7 +517,7 @@ export async function signalRun(deps, req) {
|
|
|
517
517
|
return ok({ result });
|
|
518
518
|
}
|
|
519
519
|
/**
|
|
520
|
-
* `POST /runs/:id/
|
|
520
|
+
* `POST /runs/:id/updates/:name` — deliver `{ arg? }` to a run's `ctx.onUpdate(name)` point. The
|
|
521
521
|
* workflow's registered validator arbitrates server-side: a rejection comes back 422 with the
|
|
522
522
|
* reason, and nothing is delivered.
|
|
523
523
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "1.0.0-rc.0";
|
|
3
3
|
export type { AccessDeniedInfo, AccessDeniedPageOptions, AccessDeniedReason, } from './access_denied_page.js';
|
|
4
4
|
export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
|
|
5
5
|
export type { AuthMode, DashboardAuthOptions, LoginHook, LoginOutcome, ResolvedDashboardAuth, SessionHook, SessionOutcome, } from './auth.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,OAAO,eAAe,CAAC;AAEpC,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,OAAO,IAAI,qBAAqB,EAChC,UAAU,EACV,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,QAAQ,EACR,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,cAAc,GACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnF,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,wBAAwB,EACxB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,EAAE,EACF,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '1.0.0-rc.0';
|
|
3
3
|
// The built-in "access denied" page (what a browser sees on a refused page navigation).
|
|
4
4
|
export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
|
|
5
5
|
// Built-in `dashboardAuth` login screen (optional; opt-in via `config/durable_dashboard.ts`).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AAOpC,wFAAwF;AACxF,OAAO,EACL,OAAO,IAAI,qBAAqB,EAChC,UAAU,EACV,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAUjC,8FAA8F;AAC9F,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAEnB,kEAAkE;AAClE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUnF,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,wBAAwB,EACxB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAGvE,sGAAsG;AACtG,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,EAAE,EACF,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,OAAO,EACP,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOhE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
|
|
@@ -347,7 +347,7 @@ export function openApiDocument(apiBase) {
|
|
|
347
347
|
},
|
|
348
348
|
},
|
|
349
349
|
},
|
|
350
|
-
'/runs/{id}/
|
|
350
|
+
'/runs/{id}/updates/{name}': {
|
|
351
351
|
post: {
|
|
352
352
|
summary: "Deliver a validated update to the run's ctx.onUpdate(name) point",
|
|
353
353
|
parameters: [idParam, nameParam('The update name.')],
|