@blokjs/runner 0.4.0 → 0.6.1

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.
Files changed (163) hide show
  1. package/dist/Blok.js +32 -3
  2. package/dist/Blok.js.map +1 -1
  3. package/dist/Configuration.d.ts +41 -5
  4. package/dist/Configuration.js +215 -92
  5. package/dist/Configuration.js.map +1 -1
  6. package/dist/ForEachNode.d.ts +59 -0
  7. package/dist/ForEachNode.js +522 -0
  8. package/dist/ForEachNode.js.map +1 -0
  9. package/dist/LoopMaxIterationsError.d.ts +11 -0
  10. package/dist/LoopMaxIterationsError.js +18 -0
  11. package/dist/LoopMaxIterationsError.js.map +1 -0
  12. package/dist/LoopNode.d.ts +36 -0
  13. package/dist/LoopNode.js +182 -0
  14. package/dist/LoopNode.js.map +1 -0
  15. package/dist/Runner.d.ts +11 -1
  16. package/dist/Runner.js +9 -2
  17. package/dist/Runner.js.map +1 -1
  18. package/dist/RunnerSteps.js +419 -112
  19. package/dist/RunnerSteps.js.map +1 -1
  20. package/dist/RuntimeAdapterNode.d.ts +2 -1
  21. package/dist/RuntimeAdapterNode.js +2 -2
  22. package/dist/RuntimeAdapterNode.js.map +1 -1
  23. package/dist/RuntimeRegistry.d.ts +23 -2
  24. package/dist/RuntimeRegistry.js +31 -2
  25. package/dist/RuntimeRegistry.js.map +1 -1
  26. package/dist/SubworkflowNode.d.ts +106 -0
  27. package/dist/SubworkflowNode.js +261 -3
  28. package/dist/SubworkflowNode.js.map +1 -1
  29. package/dist/SwitchNode.d.ts +37 -0
  30. package/dist/SwitchNode.js +153 -0
  31. package/dist/SwitchNode.js.map +1 -0
  32. package/dist/TriggerBase.d.ts +50 -0
  33. package/dist/TriggerBase.js +262 -4
  34. package/dist/TriggerBase.js.map +1 -1
  35. package/dist/TryCatchNode.d.ts +32 -0
  36. package/dist/TryCatchNode.js +207 -0
  37. package/dist/TryCatchNode.js.map +1 -0
  38. package/dist/adapters/grpc/GrpcCodec.js +2 -2
  39. package/dist/adapters/grpc/GrpcRuntimeAdapter.d.ts +6 -4
  40. package/dist/adapters/grpc/GrpcRuntimeAdapter.js +6 -4
  41. package/dist/adapters/grpc/GrpcRuntimeAdapter.js.map +1 -1
  42. package/dist/adapters/grpc/types.d.ts +7 -5
  43. package/dist/adapters/grpc/types.js.map +1 -1
  44. package/dist/adapters/transport.d.ts +12 -41
  45. package/dist/adapters/transport.js +21 -70
  46. package/dist/adapters/transport.js.map +1 -1
  47. package/dist/cache/NodeResultCache.js +7 -0
  48. package/dist/cache/NodeResultCache.js.map +1 -1
  49. package/dist/concurrency/NatsKvConcurrencyBackend.js +18 -5
  50. package/dist/concurrency/NatsKvConcurrencyBackend.js.map +1 -1
  51. package/dist/concurrency/RedisConcurrencyBackend.d.ts +64 -0
  52. package/dist/concurrency/RedisConcurrencyBackend.js +374 -0
  53. package/dist/concurrency/RedisConcurrencyBackend.js.map +1 -0
  54. package/dist/concurrency/createConcurrencyBackend.d.ts +1 -0
  55. package/dist/concurrency/createConcurrencyBackend.js +5 -1
  56. package/dist/concurrency/createConcurrencyBackend.js.map +1 -1
  57. package/dist/defineNode.d.ts +8 -0
  58. package/dist/defineNode.js +25 -5
  59. package/dist/defineNode.js.map +1 -1
  60. package/dist/graphql/GraphQLSchemaGenerator.js +1 -1
  61. package/dist/graphql/GraphQLSchemaGenerator.js.map +1 -1
  62. package/dist/index.d.ts +10 -6
  63. package/dist/index.js +13 -9
  64. package/dist/index.js.map +1 -1
  65. package/dist/marketplace/RuntimeCatalog.d.ts +6 -0
  66. package/dist/marketplace/RuntimeCatalog.js.map +1 -1
  67. package/dist/marketplace/RuntimeDiscovery.d.ts +2 -2
  68. package/dist/marketplace/RuntimeDiscovery.js +18 -6
  69. package/dist/marketplace/RuntimeDiscovery.js.map +1 -1
  70. package/dist/monitoring/ConcurrencyMetrics.d.ts +26 -0
  71. package/dist/monitoring/ConcurrencyMetrics.js +36 -4
  72. package/dist/monitoring/ConcurrencyMetrics.js.map +1 -1
  73. package/dist/monitoring/ForEachWaitMetrics.d.ts +22 -0
  74. package/dist/monitoring/ForEachWaitMetrics.js +36 -0
  75. package/dist/monitoring/ForEachWaitMetrics.js.map +1 -0
  76. package/dist/openapi/OpenAPIGenerator.js +7 -2
  77. package/dist/openapi/OpenAPIGenerator.js.map +1 -1
  78. package/dist/runtime/PrimitiveStack.d.ts +64 -0
  79. package/dist/runtime/PrimitiveStack.js +92 -0
  80. package/dist/runtime/PrimitiveStack.js.map +1 -0
  81. package/dist/scheduling/DebounceBackend.d.ts +108 -0
  82. package/dist/scheduling/DebounceBackend.js +23 -0
  83. package/dist/scheduling/DebounceBackend.js.map +1 -0
  84. package/dist/scheduling/DebounceCoordinator.d.ts +65 -12
  85. package/dist/scheduling/DebounceCoordinator.js +234 -13
  86. package/dist/scheduling/DebounceCoordinator.js.map +1 -1
  87. package/dist/scheduling/DeferredRunScheduler.d.ts +28 -0
  88. package/dist/scheduling/DeferredRunScheduler.js +105 -3
  89. package/dist/scheduling/DeferredRunScheduler.js.map +1 -1
  90. package/dist/scheduling/NatsKvDebounceBackend.d.ts +53 -0
  91. package/dist/scheduling/NatsKvDebounceBackend.js +334 -0
  92. package/dist/scheduling/NatsKvDebounceBackend.js.map +1 -0
  93. package/dist/scheduling/RedisDebounceBackend.d.ts +49 -0
  94. package/dist/scheduling/RedisDebounceBackend.js +356 -0
  95. package/dist/scheduling/RedisDebounceBackend.js.map +1 -0
  96. package/dist/scheduling/createDebounceBackend.d.ts +25 -0
  97. package/dist/scheduling/createDebounceBackend.js +39 -0
  98. package/dist/scheduling/createDebounceBackend.js.map +1 -0
  99. package/dist/security/AuditLogger.js +1 -1
  100. package/dist/security/AuditLogger.js.map +1 -1
  101. package/dist/security/AuthMiddleware.d.ts +19 -20
  102. package/dist/security/AuthMiddleware.js +35 -20
  103. package/dist/security/AuthMiddleware.js.map +1 -1
  104. package/dist/security/OAuthProvider.js +2 -2
  105. package/dist/security/OAuthProvider.js.map +1 -1
  106. package/dist/security/SecretManager.js +14 -13
  107. package/dist/security/SecretManager.js.map +1 -1
  108. package/dist/security/index.d.ts +3 -1
  109. package/dist/security/index.js +3 -1
  110. package/dist/security/index.js.map +1 -1
  111. package/dist/testing/TestHarness.d.ts +27 -12
  112. package/dist/testing/TestHarness.js +19 -3
  113. package/dist/testing/TestHarness.js.map +1 -1
  114. package/dist/testing/WorkflowTestRunner.js +0 -7
  115. package/dist/testing/WorkflowTestRunner.js.map +1 -1
  116. package/dist/tracing/InMemoryRunStore.d.ts +14 -1
  117. package/dist/tracing/InMemoryRunStore.js +95 -6
  118. package/dist/tracing/InMemoryRunStore.js.map +1 -1
  119. package/dist/tracing/PostgresRunStore.d.ts +28 -2
  120. package/dist/tracing/PostgresRunStore.js +276 -3
  121. package/dist/tracing/PostgresRunStore.js.map +1 -1
  122. package/dist/tracing/RoutingDiagnostics.d.ts +55 -0
  123. package/dist/tracing/RoutingDiagnostics.js +50 -0
  124. package/dist/tracing/RoutingDiagnostics.js.map +1 -0
  125. package/dist/tracing/RunStore.d.ts +82 -1
  126. package/dist/tracing/RunTracker.d.ts +7 -1
  127. package/dist/tracing/RunTracker.js +23 -0
  128. package/dist/tracing/RunTracker.js.map +1 -1
  129. package/dist/tracing/SqliteRunStore.d.ts +57 -2
  130. package/dist/tracing/SqliteRunStore.js +408 -48
  131. package/dist/tracing/SqliteRunStore.js.map +1 -1
  132. package/dist/tracing/TraceRouter.js +380 -18
  133. package/dist/tracing/TraceRouter.js.map +1 -1
  134. package/dist/tracing/createStore.js +14 -3
  135. package/dist/tracing/createStore.js.map +1 -1
  136. package/dist/tracing/metadataFilter.d.ts +63 -0
  137. package/dist/tracing/metadataFilter.js +224 -0
  138. package/dist/tracing/metadataFilter.js.map +1 -0
  139. package/dist/tracing/types.d.ts +331 -7
  140. package/dist/utils/envAllowlist.d.ts +35 -0
  141. package/dist/utils/envAllowlist.js +113 -0
  142. package/dist/utils/envAllowlist.js.map +1 -0
  143. package/dist/version/RuntimeVersionValidator.d.ts +38 -0
  144. package/dist/version/RuntimeVersionValidator.js +121 -0
  145. package/dist/version/RuntimeVersionValidator.js.map +1 -0
  146. package/dist/visualization/WorkflowVisualizer.js +4 -4
  147. package/dist/visualization/WorkflowVisualizer.js.map +1 -1
  148. package/dist/workflow/PersistenceHelper.d.ts +18 -10
  149. package/dist/workflow/PersistenceHelper.js +35 -9
  150. package/dist/workflow/PersistenceHelper.js.map +1 -1
  151. package/dist/workflow/WorkflowNormalizer.d.ts +19 -1
  152. package/dist/workflow/WorkflowNormalizer.js +469 -19
  153. package/dist/workflow/WorkflowNormalizer.js.map +1 -1
  154. package/dist/workflow/WorkflowRegistry.d.ts +122 -0
  155. package/dist/workflow/WorkflowRegistry.js +121 -0
  156. package/dist/workflow/WorkflowRegistry.js.map +1 -1
  157. package/dist/workflow/sampleBody.d.ts +54 -0
  158. package/dist/workflow/sampleBody.js +320 -0
  159. package/dist/workflow/sampleBody.js.map +1 -0
  160. package/package.json +3 -8
  161. package/dist/adapters/HttpRuntimeAdapter.d.ts +0 -79
  162. package/dist/adapters/HttpRuntimeAdapter.js +0 -233
  163. package/dist/adapters/HttpRuntimeAdapter.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowNormalizer.js","sourceRoot":"","sources":["../../src/workflow/WorkflowNormalizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowNormalizer.js","sourceRoot":"","sources":["../../src/workflow/WorkflowNormalizer.ts"],"names":[],"mappings":"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"}
@@ -17,12 +17,28 @@
17
17
  * `clear()` before re-registering when workflow files change (HMR);
18
18
  * the in-repo HTTP trigger does this on every scan.
19
19
  *
20
+ * **Authorization** (optional): operators can install a process-wide
21
+ * `(parentName, childName, ctx) => boolean | Promise<boolean>` hook via
22
+ * `setAuthorizeFn()` to gate which parent workflows may invoke which
23
+ * children. Default behavior (no fn set) is allow-all — preserves
24
+ * backwards compatibility. See `docs/d/security/cookbook.mdx` for the
25
+ * multi-tenant patterns.
26
+ *
20
27
  * **Why a separate class** (vs reusing the HTTP trigger's RouteEntry[]):
21
28
  * - Decoupled from HTTP — worker/cron triggers feed the same registry.
22
29
  * - Lookup by `name:` is what authors write; route table is keyed on
23
30
  * `(method, path)` which sub-workflow callers don't know.
24
31
  * - Test isolation — `resetInstance()` is cheap.
25
32
  */
33
+ import type { Context } from "@blokjs/shared";
34
+ /**
35
+ * Hook that decides whether a parent workflow may invoke a child via a
36
+ * sub-workflow step. Return `true` (or a promise resolving to `true`) to
37
+ * allow; `false` to deny. The `ctx` is the parent's running context, so
38
+ * the hook can do per-request decisions (e.g. read tenant id from
39
+ * `ctx.req.headers`).
40
+ */
41
+ export type WorkflowAuthorizeFn = (parentName: string, childName: string, ctx: Context) => boolean | Promise<boolean>;
26
42
  export interface RegisteredWorkflow {
27
43
  /** The workflow's `name:` field. Sub-workflow steps reference this. */
28
44
  readonly name: string;
@@ -34,13 +50,108 @@ export interface RegisteredWorkflow {
34
50
  * runs it through `normalizeWorkflow` → resolved nodes.
35
51
  */
36
52
  readonly workflow: unknown;
53
+ /**
54
+ * v0.5 — true when the workflow is registered as middleware (has
55
+ * `middleware: true` set at the workflow root). Middleware workflows
56
+ * are not exposed as public routes; they're invoked from another
57
+ * workflow's `trigger.http.middleware: [...]` array. Looked up via
58
+ * `getMiddleware(name)`.
59
+ */
60
+ readonly isMiddleware?: boolean;
37
61
  }
38
62
  export declare class WorkflowRegistry {
39
63
  private static instance;
40
64
  private workflows;
65
+ private authorizeFn;
66
+ /**
67
+ * v0.5.4 — process-global middleware chain. When set, EVERY workflow
68
+ * run in this process prepends these middleware to its own chain
69
+ * (workflow-level `middleware: [...]` and trigger-level
70
+ * `trigger.http.middleware: [...]` if present). Use this for ops
71
+ * concerns that must apply uniformly: request-id correlation, audit
72
+ * logging, OpenTelemetry spans. Unlike workflow- or trigger-level
73
+ * middleware, global middleware doesn't require touching individual
74
+ * workflow files.
75
+ *
76
+ * **Resolution order** at request time, outer to inner:
77
+ * 1. Process-global (this list)
78
+ * 2. Workflow-level (`workflow.middleware: [...]`, v0.5.2)
79
+ * 3. Trigger-level (`trigger.<kind>.middleware: [...]`, v0.5)
80
+ * 4. Workflow body (regular steps)
81
+ *
82
+ * **Lifecycle**: write-once-per-process is the typical pattern, but
83
+ * the setter accepts repeated calls and the LAST call wins. Empty
84
+ * array clears the global chain. The list itself is stored as a
85
+ * frozen snapshot so callers reading via `getGlobalMiddleware()`
86
+ * can't mutate it accidentally.
87
+ */
88
+ private globalMiddleware;
41
89
  static getInstance(): WorkflowRegistry;
42
90
  /** Test-only — drop the singleton so suites start fresh. */
43
91
  static resetInstance(): void;
92
+ /**
93
+ * Install a process-wide authorize hook for sub-workflow composition.
94
+ * Pass `null` to clear (default behavior is allow-all). The hook fires
95
+ * on every sub-workflow invocation, before the child is materialized.
96
+ *
97
+ * Multi-tenant operators typically read a tenant id off `ctx` and
98
+ * consult an allow-list. The synchronous variant is fine for
99
+ * in-memory lookups; return a promise if the decision needs an
100
+ * external store.
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * WorkflowRegistry.getInstance().setAuthorizeFn((parent, child, ctx) => {
105
+ * const tenant = ctx.req.headers["x-tenant"];
106
+ * return tenantAllowList[tenant]?.includes(child) ?? false;
107
+ * });
108
+ * ```
109
+ */
110
+ setAuthorizeFn(fn: WorkflowAuthorizeFn | null): void;
111
+ /**
112
+ * Returns `true` when no authorize hook is installed (default-allow),
113
+ * otherwise delegates to the hook. Called by `SubworkflowNode` before
114
+ * materializing the child workflow.
115
+ */
116
+ authorize(parentName: string, childName: string, ctx: Context): Promise<boolean>;
117
+ /**
118
+ * Register a process-global middleware chain. Every workflow run in
119
+ * this process will prepend these middleware to its own chain BEFORE
120
+ * any workflow- or trigger-level middleware execute. Use for ops
121
+ * concerns that should apply uniformly across the fleet: request-id
122
+ * correlation, audit logging, OpenTelemetry spans, etc.
123
+ *
124
+ * **Lifecycle**: write-once-per-process is the typical pattern (call
125
+ * once at boot, before `trigger.listen()`), but repeated calls are
126
+ * allowed and the last call wins. Pass `[]` to clear the global
127
+ * chain. The list is frozen on store so the snapshot returned by
128
+ * `getGlobalMiddleware()` is safe to expose without copying.
129
+ *
130
+ * Names that don't resolve to a registered middleware workflow are
131
+ * accepted at registration time but will throw at request time when
132
+ * `runMiddlewareChain` tries to look them up — mirrors trigger- and
133
+ * workflow-level middleware semantics. The trigger logs the
134
+ * resolved global chain at boot so operators can verify the names
135
+ * were spelled correctly without a request.
136
+ *
137
+ * @example
138
+ * ```ts
139
+ * // Boot-time setup before trigger.listen()
140
+ * WorkflowRegistry.getInstance().setGlobalMiddleware([
141
+ * "request-id",
142
+ * "audit-log",
143
+ * ]);
144
+ * ```
145
+ */
146
+ setGlobalMiddleware(names: readonly string[]): void;
147
+ /**
148
+ * Snapshot of the process-global middleware chain. Returns the
149
+ * frozen list set by `setGlobalMiddleware`, or an empty list when
150
+ * unset. Triggers consume this in `runMiddlewareChain` to prepend
151
+ * to the per-request chain. Always returns the same reference until
152
+ * the next setter call.
153
+ */
154
+ getGlobalMiddleware(): readonly string[];
44
155
  /**
45
156
  * Register a single workflow. Throws on collision when a workflow
46
157
  * with the same `name` is already registered from a different
@@ -52,6 +163,13 @@ export declare class WorkflowRegistry {
52
163
  registerAll(entries: readonly RegisteredWorkflow[]): void;
53
164
  /** Fetch the registered workflow by name, or undefined on miss. */
54
165
  get(name: string): RegisteredWorkflow | undefined;
166
+ /**
167
+ * v0.5 — fetch a registered MIDDLEWARE workflow by name (must have
168
+ * been registered with `isMiddleware: true`). Returns undefined when
169
+ * the name is unknown OR the entry isn't a middleware. Used by
170
+ * `HttpTrigger` to dispatch the trigger-level `middleware: [...]` chain.
171
+ */
172
+ getMiddleware(name: string): RegisteredWorkflow | undefined;
55
173
  /** Cheap existence check (avoids the `?: undefined` dance). */
56
174
  has(name: string): boolean;
57
175
  /** Snapshot of all registered workflows — used for error messages. */
@@ -59,6 +177,10 @@ export declare class WorkflowRegistry {
59
177
  /**
60
178
  * Drop every registered workflow. Triggers call this before
61
179
  * re-scanning on HMR so stale entries don't survive a file rename.
180
+ * Does NOT reset the authorize hook OR the global middleware chain
181
+ * — both are operator-installed and should persist across HMR.
182
+ * Use `setAuthorizeFn(null)` / `setGlobalMiddleware([])` explicitly
183
+ * to clear.
62
184
  */
63
185
  clear(): void;
64
186
  }
@@ -17,6 +17,13 @@
17
17
  * `clear()` before re-registering when workflow files change (HMR);
18
18
  * the in-repo HTTP trigger does this on every scan.
19
19
  *
20
+ * **Authorization** (optional): operators can install a process-wide
21
+ * `(parentName, childName, ctx) => boolean | Promise<boolean>` hook via
22
+ * `setAuthorizeFn()` to gate which parent workflows may invoke which
23
+ * children. Default behavior (no fn set) is allow-all — preserves
24
+ * backwards compatibility. See `docs/d/security/cookbook.mdx` for the
25
+ * multi-tenant patterns.
26
+ *
20
27
  * **Why a separate class** (vs reusing the HTTP trigger's RouteEntry[]):
21
28
  * - Decoupled from HTTP — worker/cron triggers feed the same registry.
22
29
  * - Lookup by `name:` is what authors write; route table is keyed on
@@ -26,6 +33,30 @@
26
33
  export class WorkflowRegistry {
27
34
  static instance = null;
28
35
  workflows = new Map();
36
+ authorizeFn = null;
37
+ /**
38
+ * v0.5.4 — process-global middleware chain. When set, EVERY workflow
39
+ * run in this process prepends these middleware to its own chain
40
+ * (workflow-level `middleware: [...]` and trigger-level
41
+ * `trigger.http.middleware: [...]` if present). Use this for ops
42
+ * concerns that must apply uniformly: request-id correlation, audit
43
+ * logging, OpenTelemetry spans. Unlike workflow- or trigger-level
44
+ * middleware, global middleware doesn't require touching individual
45
+ * workflow files.
46
+ *
47
+ * **Resolution order** at request time, outer to inner:
48
+ * 1. Process-global (this list)
49
+ * 2. Workflow-level (`workflow.middleware: [...]`, v0.5.2)
50
+ * 3. Trigger-level (`trigger.<kind>.middleware: [...]`, v0.5)
51
+ * 4. Workflow body (regular steps)
52
+ *
53
+ * **Lifecycle**: write-once-per-process is the typical pattern, but
54
+ * the setter accepts repeated calls and the LAST call wins. Empty
55
+ * array clears the global chain. The list itself is stored as a
56
+ * frozen snapshot so callers reading via `getGlobalMiddleware()`
57
+ * can't mutate it accidentally.
58
+ */
59
+ globalMiddleware = [];
29
60
  static getInstance() {
30
61
  if (!WorkflowRegistry.instance) {
31
62
  WorkflowRegistry.instance = new WorkflowRegistry();
@@ -36,6 +67,80 @@ export class WorkflowRegistry {
36
67
  static resetInstance() {
37
68
  WorkflowRegistry.instance = null;
38
69
  }
70
+ /**
71
+ * Install a process-wide authorize hook for sub-workflow composition.
72
+ * Pass `null` to clear (default behavior is allow-all). The hook fires
73
+ * on every sub-workflow invocation, before the child is materialized.
74
+ *
75
+ * Multi-tenant operators typically read a tenant id off `ctx` and
76
+ * consult an allow-list. The synchronous variant is fine for
77
+ * in-memory lookups; return a promise if the decision needs an
78
+ * external store.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * WorkflowRegistry.getInstance().setAuthorizeFn((parent, child, ctx) => {
83
+ * const tenant = ctx.req.headers["x-tenant"];
84
+ * return tenantAllowList[tenant]?.includes(child) ?? false;
85
+ * });
86
+ * ```
87
+ */
88
+ setAuthorizeFn(fn) {
89
+ this.authorizeFn = fn;
90
+ }
91
+ /**
92
+ * Returns `true` when no authorize hook is installed (default-allow),
93
+ * otherwise delegates to the hook. Called by `SubworkflowNode` before
94
+ * materializing the child workflow.
95
+ */
96
+ async authorize(parentName, childName, ctx) {
97
+ if (!this.authorizeFn)
98
+ return true;
99
+ return await this.authorizeFn(parentName, childName, ctx);
100
+ }
101
+ /**
102
+ * Register a process-global middleware chain. Every workflow run in
103
+ * this process will prepend these middleware to its own chain BEFORE
104
+ * any workflow- or trigger-level middleware execute. Use for ops
105
+ * concerns that should apply uniformly across the fleet: request-id
106
+ * correlation, audit logging, OpenTelemetry spans, etc.
107
+ *
108
+ * **Lifecycle**: write-once-per-process is the typical pattern (call
109
+ * once at boot, before `trigger.listen()`), but repeated calls are
110
+ * allowed and the last call wins. Pass `[]` to clear the global
111
+ * chain. The list is frozen on store so the snapshot returned by
112
+ * `getGlobalMiddleware()` is safe to expose without copying.
113
+ *
114
+ * Names that don't resolve to a registered middleware workflow are
115
+ * accepted at registration time but will throw at request time when
116
+ * `runMiddlewareChain` tries to look them up — mirrors trigger- and
117
+ * workflow-level middleware semantics. The trigger logs the
118
+ * resolved global chain at boot so operators can verify the names
119
+ * were spelled correctly without a request.
120
+ *
121
+ * @example
122
+ * ```ts
123
+ * // Boot-time setup before trigger.listen()
124
+ * WorkflowRegistry.getInstance().setGlobalMiddleware([
125
+ * "request-id",
126
+ * "audit-log",
127
+ * ]);
128
+ * ```
129
+ */
130
+ setGlobalMiddleware(names) {
131
+ const filtered = names.filter((n) => typeof n === "string" && n.length > 0).slice();
132
+ this.globalMiddleware = Object.freeze(filtered);
133
+ }
134
+ /**
135
+ * Snapshot of the process-global middleware chain. Returns the
136
+ * frozen list set by `setGlobalMiddleware`, or an empty list when
137
+ * unset. Triggers consume this in `runMiddlewareChain` to prepend
138
+ * to the per-request chain. Always returns the same reference until
139
+ * the next setter call.
140
+ */
141
+ getGlobalMiddleware() {
142
+ return this.globalMiddleware;
143
+ }
39
144
  /**
40
145
  * Register a single workflow. Throws on collision when a workflow
41
146
  * with the same `name` is already registered from a different
@@ -62,6 +167,18 @@ export class WorkflowRegistry {
62
167
  get(name) {
63
168
  return this.workflows.get(name);
64
169
  }
170
+ /**
171
+ * v0.5 — fetch a registered MIDDLEWARE workflow by name (must have
172
+ * been registered with `isMiddleware: true`). Returns undefined when
173
+ * the name is unknown OR the entry isn't a middleware. Used by
174
+ * `HttpTrigger` to dispatch the trigger-level `middleware: [...]` chain.
175
+ */
176
+ getMiddleware(name) {
177
+ const entry = this.workflows.get(name);
178
+ if (!entry || !entry.isMiddleware)
179
+ return undefined;
180
+ return entry;
181
+ }
65
182
  /** Cheap existence check (avoids the `?: undefined` dance). */
66
183
  has(name) {
67
184
  return this.workflows.has(name);
@@ -73,6 +190,10 @@ export class WorkflowRegistry {
73
190
  /**
74
191
  * Drop every registered workflow. Triggers call this before
75
192
  * re-scanning on HMR so stale entries don't survive a file rename.
193
+ * Does NOT reset the authorize hook OR the global middleware chain
194
+ * — both are operator-installed and should persist across HMR.
195
+ * Use `setAuthorizeFn(null)` / `setGlobalMiddleware([])` explicitly
196
+ * to clear.
76
197
  */
77
198
  clear() {
78
199
  this.workflows.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowRegistry.js","sourceRoot":"","sources":["../../src/workflow/WorkflowRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAeH,MAAM,OAAO,gBAAgB;IACpB,MAAM,CAAC,QAAQ,GAA4B,IAAI,CAAC;IAChD,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAE1D,MAAM,CAAC,WAAW;QACjB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAChC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpD,CAAC;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,4DAA4D;IAC5D,MAAM,CAAC,aAAa;QACnB,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,KAAyB;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACd,uDAAuD,KAAK,CAAC,IAAI,iCAAiC,QAAQ,CAAC,MAAM,iCAAiC,KAAK,CAAC,MAAM,sDAAsD,CACpN,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,qEAAqE;IACrE,WAAW,CAAC,OAAsC;QACjD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IAED,mEAAmE;IACnE,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,+DAA+D;IAC/D,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,sEAAsE;IACtE,IAAI;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK;QACJ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC"}
1
+ {"version":3,"file":"WorkflowRegistry.js","sourceRoot":"","sources":["../../src/workflow/WorkflowRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Sample-body inference for the Studio empty-state curl snippet.
3
+ *
4
+ * Generates a JSON payload shape that a workflow's HTTP trigger
5
+ * would accept, so the "no runs yet" curl example on the workflow
6
+ * detail page can show an example body that actually exercises the
7
+ * workflow — instead of the previous `-d '{}'` which immediately
8
+ * crashed every workflow that read from `ctx.request.body`.
9
+ *
10
+ * Two layers (B + A in the design discussion):
11
+ *
12
+ * B. Static analysis. Walk every step's inputs + control-flow
13
+ * expressions, collect every `ctx.request.body.<path>` and
14
+ * `$.req.body.<path>` reference, and build a nested object
15
+ * mirroring those paths. Array shapes are inferred from
16
+ * `forEach.in` references — if a path feeds a forEach, it's
17
+ * an array, and references to `ctx.state.<asVar>.<sub>` inside
18
+ * the body translate back into element-shape fields.
19
+ *
20
+ * A. Author override. If the workflow declares
21
+ * `trigger.http.examples.body: {...}`, that value wins
22
+ * verbatim and the static inference is skipped.
23
+ *
24
+ * Inference is best-effort and intentionally permissive — the
25
+ * placeholder values are "string" everywhere, since the goal is to
26
+ * produce a payload that satisfies the workflow's *shape*, not its
27
+ * semantics. A workflow author who cares about value semantics
28
+ * declares an explicit example.
29
+ */
30
+ /**
31
+ * Result of running inference + override resolution.
32
+ *
33
+ * - `body`: the inferred or author-supplied payload object.
34
+ * - `source`: `"author"` if the workflow declared an explicit
35
+ * `trigger.http.examples.body`, `"inferred"` if we synthesized it
36
+ * from step references, `"empty"` if there were no references and
37
+ * no override (fallback to `{}`).
38
+ */
39
+ export interface InferredSample {
40
+ body: unknown;
41
+ source: "author" | "inferred" | "empty";
42
+ }
43
+ /**
44
+ * Infer a sample HTTP body for a workflow, or return the author's
45
+ * declared example. Returns `null` only when the workflow value is
46
+ * not a recognisable object — every other shape gets at least an
47
+ * `empty` result with `body: {}`.
48
+ *
49
+ * @param workflow The raw workflow JSON (the same value the
50
+ * `WorkflowRegistry` stores). Accepts `unknown` because the API
51
+ * surface that calls this — `TraceRouter` — keeps `definition`
52
+ * typed loosely.
53
+ */
54
+ export declare function inferSampleBody(workflow: unknown): InferredSample | null;