@versori/run 0.3.0-veta.2 → 0.4.0-alpha.2

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 (209) hide show
  1. package/esm/src/connection/DirectConnectionFactory.d.ts +1 -1
  2. package/esm/src/connection/DirectConnectionFactory.d.ts.map +1 -1
  3. package/esm/src/connection/DirectConnectionFactory.js +6 -9
  4. package/esm/src/connection/StaticFetchFactory.d.ts.map +1 -1
  5. package/esm/src/connection/internal/CredentialHolder.d.ts.map +1 -1
  6. package/esm/src/connection/internal/CredentialHolder.js +11 -2
  7. package/esm/src/connection/internal/FetchBuilder.d.ts +3 -2
  8. package/esm/src/connection/internal/FetchBuilder.d.ts.map +1 -1
  9. package/esm/src/connection/internal/FetchBuilder.js +103 -4
  10. package/esm/src/connection/internal/OutboundConnectionFactory.d.ts +1 -1
  11. package/esm/src/connection/internal/OutboundConnectionFactory.d.ts.map +1 -1
  12. package/esm/src/connection/internal/OutboundConnectionFactory.js +2 -3
  13. package/esm/src/context/AsyncWorkflow.js +1 -1
  14. package/esm/src/context/Context.d.ts +7 -6
  15. package/esm/src/context/Context.d.ts.map +1 -1
  16. package/esm/src/context/Context.js +3 -13
  17. package/esm/src/context/ContextProvider.d.ts +1 -3
  18. package/esm/src/context/ContextProvider.d.ts.map +1 -1
  19. package/esm/src/context/ContextProvider.js +3 -6
  20. package/esm/src/dsl/Workflow.d.ts.map +1 -1
  21. package/esm/src/dsl/Workflow.js +2 -0
  22. package/esm/src/dsl/http/versori/configloader.js +1 -1
  23. package/esm/src/dsl/http/versori/cronapi.d.ts +2 -3
  24. package/esm/src/dsl/http/versori/cronapi.d.ts.map +1 -1
  25. package/esm/src/dsl/http/versori/cronapi.js +14 -14
  26. package/esm/src/dsl/http/versori/kvapi/core/OpenAPI.js +1 -1
  27. package/esm/src/dsl/http/versori/webhookmiddleware.d.ts +1 -1
  28. package/esm/src/dsl/http/versori/webhookmiddleware.d.ts.map +1 -1
  29. package/esm/src/dsl/http/versori/webhookmiddleware.js +24 -19
  30. package/esm/src/dsl/tasks/HttpTask.d.ts +1 -2
  31. package/esm/src/dsl/tasks/HttpTask.d.ts.map +1 -1
  32. package/esm/src/dsl/tasks/HttpTask.js +0 -3
  33. package/esm/src/dsl/triggers/DurableTrigger.d.ts +1 -0
  34. package/esm/src/dsl/triggers/DurableTrigger.d.ts.map +1 -1
  35. package/esm/src/dsl/triggers/WebhookTrigger.d.ts.map +1 -1
  36. package/esm/src/dsl/triggers/WebhookTrigger.js +3 -1
  37. package/esm/src/internal/constants.d.ts +3 -1
  38. package/esm/src/internal/constants.d.ts.map +1 -1
  39. package/esm/src/internal/constants.js +4 -1
  40. package/esm/src/internal/supervisor.d.ts +21 -0
  41. package/esm/src/internal/supervisor.d.ts.map +1 -0
  42. package/esm/src/internal/supervisor.js +122 -0
  43. package/esm/src/interpreter/durable/DurableInterpreter.d.ts +8 -2
  44. package/esm/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
  45. package/esm/src/interpreter/durable/DurableInterpreter.js +62 -22
  46. package/esm/src/interpreter/durable/ObservableCompiler.d.ts +6 -1
  47. package/esm/src/interpreter/durable/ObservableCompiler.d.ts.map +1 -1
  48. package/esm/src/interpreter/durable/Queue.d.ts +16 -24
  49. package/esm/src/interpreter/durable/Queue.d.ts.map +1 -1
  50. package/esm/src/interpreter/durable/Queue.js +5 -4
  51. package/esm/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
  52. package/esm/src/interpreter/durable/compilers/catch.js +3 -2
  53. package/esm/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
  54. package/esm/src/interpreter/durable/compilers/durableworkflow.js +19 -19
  55. package/esm/src/interpreter/durable/compilers/fn.d.ts.map +1 -1
  56. package/esm/src/interpreter/durable/compilers/fn.js +17 -4
  57. package/esm/src/interpreter/durable/compilers/http.d.ts.map +1 -1
  58. package/esm/src/interpreter/durable/compilers/http.js +8 -2
  59. package/esm/src/interpreter/durable/compilers/schedule.d.ts.map +1 -1
  60. package/esm/src/interpreter/durable/compilers/schedule.js +2 -1
  61. package/esm/src/interpreter/durable/compilers/webhook.d.ts.map +1 -1
  62. package/esm/src/interpreter/durable/compilers/webhook.js +4 -1
  63. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts +8 -2
  64. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  65. package/esm/src/interpreter/memory/MemoryInterpreter.js +46 -18
  66. package/esm/src/interpreter/memory/ObservableCompiler.d.ts +6 -1
  67. package/esm/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
  68. package/esm/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
  69. package/esm/src/interpreter/memory/compilers/catch.js +3 -2
  70. package/esm/src/interpreter/memory/compilers/fn.d.ts.map +1 -1
  71. package/esm/src/interpreter/memory/compilers/fn.js +17 -4
  72. package/esm/src/interpreter/memory/compilers/http.d.ts.map +1 -1
  73. package/esm/src/interpreter/memory/compilers/http.js +33 -3
  74. package/esm/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
  75. package/esm/src/interpreter/memory/compilers/schedule.js +2 -1
  76. package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  77. package/esm/src/interpreter/memory/compilers/webhook.js +5 -1
  78. package/esm/src/issues/Issues.js +1 -1
  79. package/esm/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
  80. package/esm/src/kv/sdk/SDKKeyValue.js +3 -9
  81. package/esm/src/services/createConnectRpcClient.d.ts +16 -0
  82. package/esm/src/services/createConnectRpcClient.d.ts.map +1 -0
  83. package/esm/src/services/createConnectRpcClient.js +63 -0
  84. package/package.json +3 -1
  85. package/script/src/connection/DirectConnectionFactory.d.ts +1 -1
  86. package/script/src/connection/DirectConnectionFactory.d.ts.map +1 -1
  87. package/script/src/connection/DirectConnectionFactory.js +5 -8
  88. package/script/src/connection/StaticFetchFactory.d.ts.map +1 -1
  89. package/script/src/connection/internal/CredentialHolder.d.ts.map +1 -1
  90. package/script/src/connection/internal/CredentialHolder.js +11 -2
  91. package/script/src/connection/internal/FetchBuilder.d.ts +3 -2
  92. package/script/src/connection/internal/FetchBuilder.d.ts.map +1 -1
  93. package/script/src/connection/internal/FetchBuilder.js +126 -4
  94. package/script/src/connection/internal/OutboundConnectionFactory.d.ts +1 -1
  95. package/script/src/connection/internal/OutboundConnectionFactory.d.ts.map +1 -1
  96. package/script/src/connection/internal/OutboundConnectionFactory.js +2 -3
  97. package/script/src/context/AsyncWorkflow.js +1 -1
  98. package/script/src/context/Context.d.ts +7 -6
  99. package/script/src/context/Context.d.ts.map +1 -1
  100. package/script/src/context/Context.js +3 -13
  101. package/script/src/context/ContextProvider.d.ts +1 -3
  102. package/script/src/context/ContextProvider.d.ts.map +1 -1
  103. package/script/src/context/ContextProvider.js +3 -6
  104. package/script/src/dsl/Workflow.d.ts.map +1 -1
  105. package/script/src/dsl/Workflow.js +2 -0
  106. package/script/src/dsl/http/versori/configloader.js +1 -1
  107. package/script/src/dsl/http/versori/cronapi.d.ts +2 -3
  108. package/script/src/dsl/http/versori/cronapi.d.ts.map +1 -1
  109. package/script/src/dsl/http/versori/cronapi.js +14 -14
  110. package/script/src/dsl/http/versori/kvapi/core/OpenAPI.js +1 -1
  111. package/script/src/dsl/http/versori/webhookmiddleware.d.ts +1 -1
  112. package/script/src/dsl/http/versori/webhookmiddleware.d.ts.map +1 -1
  113. package/script/src/dsl/http/versori/webhookmiddleware.js +24 -19
  114. package/script/src/dsl/tasks/HttpTask.d.ts +1 -2
  115. package/script/src/dsl/tasks/HttpTask.d.ts.map +1 -1
  116. package/script/src/dsl/tasks/HttpTask.js +0 -3
  117. package/script/src/dsl/triggers/DurableTrigger.d.ts +1 -0
  118. package/script/src/dsl/triggers/DurableTrigger.d.ts.map +1 -1
  119. package/script/src/dsl/triggers/WebhookTrigger.d.ts.map +1 -1
  120. package/script/src/dsl/triggers/WebhookTrigger.js +3 -1
  121. package/script/src/internal/constants.d.ts +3 -1
  122. package/script/src/internal/constants.d.ts.map +1 -1
  123. package/script/src/internal/constants.js +5 -2
  124. package/script/src/internal/supervisor.d.ts +21 -0
  125. package/script/src/internal/supervisor.d.ts.map +1 -0
  126. package/script/src/internal/supervisor.js +129 -0
  127. package/script/src/interpreter/durable/DurableInterpreter.d.ts +8 -2
  128. package/script/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
  129. package/script/src/interpreter/durable/DurableInterpreter.js +62 -22
  130. package/script/src/interpreter/durable/ObservableCompiler.d.ts +6 -1
  131. package/script/src/interpreter/durable/ObservableCompiler.d.ts.map +1 -1
  132. package/script/src/interpreter/durable/Queue.d.ts +16 -24
  133. package/script/src/interpreter/durable/Queue.d.ts.map +1 -1
  134. package/script/src/interpreter/durable/Queue.js +5 -4
  135. package/script/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
  136. package/script/src/interpreter/durable/compilers/catch.js +3 -2
  137. package/script/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
  138. package/script/src/interpreter/durable/compilers/durableworkflow.js +19 -19
  139. package/script/src/interpreter/durable/compilers/fn.d.ts.map +1 -1
  140. package/script/src/interpreter/durable/compilers/fn.js +17 -4
  141. package/script/src/interpreter/durable/compilers/http.d.ts.map +1 -1
  142. package/script/src/interpreter/durable/compilers/http.js +8 -2
  143. package/script/src/interpreter/durable/compilers/schedule.d.ts.map +1 -1
  144. package/script/src/interpreter/durable/compilers/schedule.js +2 -1
  145. package/script/src/interpreter/durable/compilers/webhook.d.ts.map +1 -1
  146. package/script/src/interpreter/durable/compilers/webhook.js +4 -1
  147. package/script/src/interpreter/memory/MemoryInterpreter.d.ts +8 -2
  148. package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  149. package/script/src/interpreter/memory/MemoryInterpreter.js +46 -18
  150. package/script/src/interpreter/memory/ObservableCompiler.d.ts +6 -1
  151. package/script/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
  152. package/script/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
  153. package/script/src/interpreter/memory/compilers/catch.js +3 -2
  154. package/script/src/interpreter/memory/compilers/fn.d.ts.map +1 -1
  155. package/script/src/interpreter/memory/compilers/fn.js +17 -4
  156. package/script/src/interpreter/memory/compilers/http.d.ts.map +1 -1
  157. package/script/src/interpreter/memory/compilers/http.js +33 -3
  158. package/script/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
  159. package/script/src/interpreter/memory/compilers/schedule.js +2 -1
  160. package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  161. package/script/src/interpreter/memory/compilers/webhook.js +5 -1
  162. package/script/src/issues/Issues.js +1 -1
  163. package/script/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
  164. package/script/src/kv/sdk/SDKKeyValue.js +3 -9
  165. package/script/src/services/createConnectRpcClient.d.ts +16 -0
  166. package/script/src/services/createConnectRpcClient.d.ts.map +1 -0
  167. package/script/src/services/createConnectRpcClient.js +66 -0
  168. package/esm/src/context/WorkflowClient.d.ts +0 -29
  169. package/esm/src/context/WorkflowClient.d.ts.map +0 -1
  170. package/esm/src/context/WorkflowClient.js +0 -95
  171. package/esm/src/dsl/http/versori/activation.d.ts +0 -13
  172. package/esm/src/dsl/http/versori/activation.d.ts.map +0 -1
  173. package/esm/src/dsl/http/versori/activation.js +0 -65
  174. package/esm/src/dsl/http/versori/cli.d.ts +0 -2
  175. package/esm/src/dsl/http/versori/cli.d.ts.map +0 -1
  176. package/esm/src/dsl/http/versori/cli.js +0 -20
  177. package/esm/src/dsl/http/versori/constants.d.ts +0 -20
  178. package/esm/src/dsl/http/versori/constants.d.ts.map +0 -1
  179. package/esm/src/dsl/http/versori/constants.js +0 -25
  180. package/esm/src/dsl/http/versori/internalauth.d.ts +0 -15
  181. package/esm/src/dsl/http/versori/internalauth.d.ts.map +0 -1
  182. package/esm/src/dsl/http/versori/internalauth.js +0 -90
  183. package/esm/src/dsl/http/versori/platformapi.d.ts +0 -19
  184. package/esm/src/dsl/http/versori/platformapi.d.ts.map +0 -1
  185. package/esm/src/dsl/http/versori/platformapi.js +0 -148
  186. package/esm/src/dsl/http/versori/proxyroundtripper.d.ts +0 -23
  187. package/esm/src/dsl/http/versori/proxyroundtripper.d.ts.map +0 -1
  188. package/esm/src/dsl/http/versori/proxyroundtripper.js +0 -196
  189. package/script/src/context/WorkflowClient.d.ts +0 -29
  190. package/script/src/context/WorkflowClient.d.ts.map +0 -1
  191. package/script/src/context/WorkflowClient.js +0 -99
  192. package/script/src/dsl/http/versori/activation.d.ts +0 -13
  193. package/script/src/dsl/http/versori/activation.d.ts.map +0 -1
  194. package/script/src/dsl/http/versori/activation.js +0 -69
  195. package/script/src/dsl/http/versori/cli.d.ts +0 -2
  196. package/script/src/dsl/http/versori/cli.d.ts.map +0 -1
  197. package/script/src/dsl/http/versori/cli.js +0 -23
  198. package/script/src/dsl/http/versori/constants.d.ts +0 -20
  199. package/script/src/dsl/http/versori/constants.d.ts.map +0 -1
  200. package/script/src/dsl/http/versori/constants.js +0 -28
  201. package/script/src/dsl/http/versori/internalauth.d.ts +0 -15
  202. package/script/src/dsl/http/versori/internalauth.d.ts.map +0 -1
  203. package/script/src/dsl/http/versori/internalauth.js +0 -94
  204. package/script/src/dsl/http/versori/platformapi.d.ts +0 -19
  205. package/script/src/dsl/http/versori/platformapi.d.ts.map +0 -1
  206. package/script/src/dsl/http/versori/platformapi.js +0 -152
  207. package/script/src/dsl/http/versori/proxyroundtripper.d.ts +0 -23
  208. package/script/src/dsl/http/versori/proxyroundtripper.d.ts.map +0 -1
  209. package/script/src/dsl/http/versori/proxyroundtripper.js +0 -200
@@ -1,23 +1,16 @@
1
+ import { enabled as supervisorEnabled } from '../../../internal/supervisor.js';
1
2
  // TODO: this gets called for every request for all endpoints, can we cache this?
2
3
  async function getStaticActivation(opts) {
3
- let activations;
4
- try {
5
- const { data } = await opts.platformApi.listActivations({
6
- path: {
7
- organisation_id: opts.organisationId,
8
- environment_id: opts.environmentId,
9
- },
10
- query: {
11
- static: true,
12
- },
13
- throwOnError: true,
14
- });
15
- activations = data;
16
- }
17
- catch (err) {
18
- opts.log.error('Failed to list activations', { error: err });
19
- throw new Error('Failed to list activations');
20
- }
4
+ const { data: activations } = await opts.platformApi.listActivations({
5
+ path: {
6
+ organisation_id: opts.organisationId,
7
+ environment_id: opts.environmentId,
8
+ },
9
+ query: {
10
+ static: true,
11
+ },
12
+ throwOnError: true,
13
+ });
21
14
  let activation;
22
15
  if (activations && activations.length > 0) {
23
16
  if (activations.length > 1) {
@@ -37,7 +30,19 @@ export function createStaticWebhookMiddleware(opts) {
37
30
  if (opts.connName === undefined) {
38
31
  opts.log.warn(`No connection ID found for webhook, accepting any requests which is unsecure!`, { webhookId: opts.id });
39
32
  return async (_req, res, next) => {
40
- res.locals.activation = await getStaticActivation(opts);
33
+ try {
34
+ res.locals.activation = await getStaticActivation(opts);
35
+ }
36
+ catch (err) {
37
+ if (supervisorEnabled) {
38
+ res.locals.activation = {};
39
+ next();
40
+ return;
41
+ }
42
+ opts.log.error('Failed to get static activation', { error: err });
43
+ res.status(500).json({ error: 'Failed to get static activation' });
44
+ return;
45
+ }
41
46
  next();
42
47
  };
43
48
  }
@@ -1,9 +1,9 @@
1
1
  import type * as express from 'express';
2
2
  import { AsyncWorkflow } from '../../context/AsyncWorkflow.js';
3
3
  import { Context, ContextImpl, CreateIssue } from '../../context/Context.js';
4
- import { WorkflowInterface, WorkflowOpts } from '../../context/WorkflowClient.js';
5
4
  import { Issue } from '../../issues/Issues.js';
6
5
  import { KeyValue, KeyValueScope } from '../../kv/KeyValue.js';
6
+ import { WorkflowOpts } from '../../mod.js';
7
7
  import { Logger } from '../../observability/logging/Logger.js';
8
8
  import { CredentialsProvider } from '../http/versori/contextcredentials.js';
9
9
  import { ArrayTask, Task, Taskable, TaskType } from '../Task.js';
@@ -59,7 +59,6 @@ export declare class HttpContextImpl<D, PageParams> implements HttpContext<D, Pa
59
59
  }): Promise<Issue | null>;
60
60
  nextPage(_nextParams: PageParams): Promise<void>;
61
61
  request(): express.Request | undefined;
62
- workflowClient(): WorkflowInterface;
63
62
  }
64
63
  export declare function http<In = any, Out = any, PageParams = unknown>(taskId: string, opts: HttpOptions<In, Out, PageParams>, fn: HttpContextFunc<In, Out, PageParams>): Task<In, Out>;
65
64
  //# sourceMappingURL=HttpTask.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpTask.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/tasks/HttpTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpTask.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/tasks/HttpTask.ts"],"names":[],"mappings":"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"}
@@ -142,9 +142,6 @@ export class HttpContextImpl {
142
142
  request() {
143
143
  return __classPrivateFieldGet(this, _HttpContextImpl_inner, "f").request();
144
144
  }
145
- workflowClient() {
146
- return __classPrivateFieldGet(this, _HttpContextImpl_inner, "f").workflowClient();
147
- }
148
145
  }
149
146
  _HttpContextImpl_inner = new WeakMap();
150
147
  export function http(taskId, opts, fn) {
@@ -4,6 +4,7 @@ import { Workflow } from '../Workflow.js';
4
4
  export type DurableWorkflowOptions = {
5
5
  ttl?: number;
6
6
  limit?: number;
7
+ maxAttempts?: number;
7
8
  };
8
9
  export type DurableWorkflowData = Record<string, unknown>;
9
10
  export declare class DurableWorkflowTrigger implements Trigger<DurableWorkflowData> {
@@ -1 +1 @@
1
- {"version":3,"file":"DurableTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/DurableTrigger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,sBAAsB,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,OAAO,CAAC,mBAAmB,CAAC;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,sBAAsB,CAAC;IAEhC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAqB;gBAE9B,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;IAK5D,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;CAIlE;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAEnG"}
1
+ {"version":3,"file":"DurableTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/DurableTrigger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,sBAAsB,GAAG;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,OAAO,CAAC,mBAAmB,CAAC;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,sBAAsB,CAAC;IAEhC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAqB;gBAE9B,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;IAK5D,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;CAIlE;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAEnG"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/WebhookTrigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAE7C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;CAC9C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAClF,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACnC,CAAA;AAED,qBAAa,cAAe,YAAW,OAAO,CAAC,WAAW,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IAExB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAa;gBAEtB,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;IAKpD,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;CAG1D;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAElF"}
1
+ {"version":3,"file":"WebhookTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/WebhookTrigger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAE7C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;CAC9C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAClF,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACnC,CAAA;AAED,qBAAa,cAAe,YAAW,OAAO,CAAC,WAAW,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IAExB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAa;gBAEtB,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;IAOpD,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;CAK1D;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAElF"}
@@ -24,9 +24,11 @@ export class WebhookTrigger {
24
24
  });
25
25
  this.id = id;
26
26
  this.options = options;
27
+ this.then = this.then.bind(this);
27
28
  }
28
29
  then(task) {
29
- return new WorkflowImpl(this, ensureTask(task));
30
+ const actualTask = ensureTask(task);
31
+ return new WorkflowImpl(this, actualTask);
30
32
  }
31
33
  }
32
34
  _a = TriggerType;
@@ -10,11 +10,13 @@ export declare const envVarSelfRefURL = "RUN_SELF_REF_URL";
10
10
  export declare const envVarCredsBaseURL = "RUN_CREDENTIALS_SERVICE_INTERNAL_URL";
11
11
  export declare const envVarOtelTracesURL = "RUN_OTEL_TRACES_URL";
12
12
  export declare const envVarVersion = "RUN_SERVICE_VERSION";
13
+ export declare const envReadyCheckURL = "READY_CHECK_URL";
14
+ export declare const envPort = "PORT";
15
+ export declare const envCronPort = "CRON_PORT";
13
16
  export declare const envVarConfigFile = "RUN_CONFIG_FILE";
14
17
  export declare const envVarClientId = "RUN_CLIENT_ID";
15
18
  export declare const envVarClientSecret = "RUN_CLIENT_SECRET";
16
19
  export declare const envVarTokenEndpoint = "RUN_TOKEN_ENDPOINT";
17
20
  export declare const envVarInternalToken = "RUN_INTERNAL_TOKEN";
18
- export declare const envVarLocalRun = "RUN_LOCAL";
19
21
  export declare const cronPort = 3001;
20
22
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/src/internal/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AACxE,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAGlD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAGxD,eAAO,MAAM,cAAc,cAAc,CAAC;AAG1C,eAAO,MAAM,QAAQ,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/src/internal/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AACxE,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,aAAa,wBAAwB,CAAC;AACnD,eAAO,MAAM,gBAAgB,oBAAoB,CAAA;AACjD,eAAO,MAAM,OAAO,SAAS,CAAC;AAC9B,eAAO,MAAM,WAAW,cAAc,CAAC;AAGvC,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAGlD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAMxD,eAAO,MAAM,QAAQ,OAAO,CAAC"}
@@ -11,6 +11,9 @@ export const envVarSelfRefURL = 'RUN_SELF_REF_URL';
11
11
  export const envVarCredsBaseURL = 'RUN_CREDENTIALS_SERVICE_INTERNAL_URL';
12
12
  export const envVarOtelTracesURL = 'RUN_OTEL_TRACES_URL';
13
13
  export const envVarVersion = 'RUN_SERVICE_VERSION';
14
+ export const envReadyCheckURL = 'READY_CHECK_URL';
15
+ export const envPort = 'PORT';
16
+ export const envCronPort = 'CRON_PORT';
14
17
  // The following environment variables are used for the config file
15
18
  export const envVarConfigFile = 'RUN_CONFIG_FILE';
16
19
  // The following environment variables are used for internal authentication
@@ -19,6 +22,6 @@ export const envVarClientSecret = 'RUN_CLIENT_SECRET';
19
22
  export const envVarTokenEndpoint = 'RUN_TOKEN_ENDPOINT';
20
23
  export const envVarInternalToken = 'RUN_INTERNAL_TOKEN';
21
24
  // The following are for running locally
22
- export const envVarLocalRun = 'RUN_LOCAL';
25
+ // export const envVarLocalRun = 'RUN_LOCAL';
23
26
  // please no changerino
24
27
  export const cronPort = 3001; // The port on which the cron API communicates with the service
@@ -0,0 +1,21 @@
1
+ import { ExportResult } from '@opentelemetry/core';
2
+ import { ReadableSpan, SpanExporter } from '@opentelemetry/sdk-trace-node';
3
+ import { Connection } from '../services/platform/mod.js';
4
+ export declare const enabled: boolean;
5
+ type Webhooks = Map<string, {
6
+ method: string;
7
+ path: string;
8
+ options: any;
9
+ }>;
10
+ type Crons = Map<string, string>;
11
+ export declare function registerWebhooks(webhooks: Webhooks): Promise<void>;
12
+ export declare function registerCrons(crons: Crons): Promise<void>;
13
+ export declare function mockAPIRequest(info: RequestInfo | URL, cnx?: Connection, options?: RequestInit): Promise<Response>;
14
+ export declare class Fake implements SpanExporter {
15
+ constructor();
16
+ export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
17
+ shutdown(): Promise<void>;
18
+ forceFlush(): Promise<void>;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=supervisor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../../src/src/internal/supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6D,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAMzD,eAAO,MAAM,OAAO,SAEjB,CAAA;AAIH,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAAC;AAC5E,KAAK,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjC,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBxE;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/D;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqCxH;AAoBD,qBAAa,IAAK,YAAW,YAAY;;IAOrC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAiBnF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
@@ -0,0 +1,122 @@
1
+ import { ExportResultCode, hrTimeToMilliseconds, hrTimeToTimeStamp } from '@opentelemetry/core';
2
+ import { ConsoleLogger } from '../observability/logging/ConsoleLogger.js';
3
+ const supervisorURL = function () {
4
+ return Deno.env.get('RUN_SUPERVISOR_URL') || '';
5
+ }();
6
+ export const enabled = function () {
7
+ return Deno.env.get('RUN_SUPERVISOR_URL') ? true : false;
8
+ }();
9
+ const logger = new ConsoleLogger('debug');
10
+ export async function registerWebhooks(webhooks) {
11
+ if (!enabled) {
12
+ return;
13
+ }
14
+ try {
15
+ await fetch(`${supervisorURL}/register-webhooks`, {
16
+ method: "POST",
17
+ body: JSON.stringify(Object.fromEntries(webhooks)),
18
+ headers: {
19
+ "Content-Type": "application/json",
20
+ },
21
+ });
22
+ }
23
+ catch (err) {
24
+ logger.error('Failed to register webhooks with supervisor', { error: err });
25
+ }
26
+ }
27
+ export async function registerCrons(crons) {
28
+ if (!enabled) {
29
+ return;
30
+ }
31
+ try {
32
+ await fetch(`${supervisorURL}/register-schedulers`, {
33
+ method: "POST",
34
+ body: JSON.stringify(Object.fromEntries(crons)),
35
+ headers: {
36
+ "Content-Type": "application/json",
37
+ },
38
+ });
39
+ }
40
+ catch (err) {
41
+ logger.error('Failed to register crons with supervisor', { error: err });
42
+ }
43
+ }
44
+ export async function mockAPIRequest(info, cnx, options) {
45
+ if (!enabled) {
46
+ return new Response();
47
+ }
48
+ const mockRequest = {
49
+ url: info.toString(),
50
+ payload: options?.body || '',
51
+ method: options?.method || "GET",
52
+ headers: options?.headers,
53
+ connection: cnx?.name,
54
+ connectionId: cnx?.id,
55
+ };
56
+ try {
57
+ const response = await fetch(`${supervisorURL}/ai/fake-fetch-call`, {
58
+ method: "POST",
59
+ body: JSON.stringify(mockRequest),
60
+ headers: {
61
+ "Content-Type": "application/json",
62
+ },
63
+ });
64
+ if (!response.ok) {
65
+ logger.error('Failed to mock api request', { response });
66
+ const text = await response.text();
67
+ return new Response();
68
+ }
69
+ const text = await response.text();
70
+ return new Response(text);
71
+ }
72
+ catch (err) {
73
+ logger.error('Failed to mock api request', { error: err });
74
+ return new Response();
75
+ }
76
+ }
77
+ function printableSpan(s) {
78
+ return {
79
+ name: s.name,
80
+ startTime: hrTimeToTimeStamp(s.startTime),
81
+ endTime: hrTimeToTimeStamp(s.endTime),
82
+ duration: hrTimeToMilliseconds(s.duration),
83
+ attributes: s.attributes,
84
+ status: s.status,
85
+ ended: s.ended,
86
+ events: s.events,
87
+ parentSpanContenxt: s.parentSpanContext,
88
+ // resource: {
89
+ // attributes: s.resource.attributes,
90
+ // },
91
+ spanContext: s.spanContext(),
92
+ };
93
+ }
94
+ export class Fake {
95
+ constructor() {
96
+ this.export = this.export.bind(this);
97
+ this.shutdown = this.shutdown.bind(this);
98
+ this.forceFlush = this.forceFlush.bind(this);
99
+ }
100
+ export(spans, resultCallback) {
101
+ const ss = spans.map(printableSpan);
102
+ try {
103
+ fetch(`${supervisorURL}/receive-spans`, {
104
+ method: "POST",
105
+ body: JSON.stringify({ spans: ss }),
106
+ headers: {
107
+ "Content-Type": "application/json",
108
+ },
109
+ });
110
+ }
111
+ catch (err) {
112
+ logger.error('Failed to send spans to supervisor', { error: err });
113
+ }
114
+ resultCallback({ code: ExportResultCode.SUCCESS });
115
+ }
116
+ shutdown() {
117
+ return Promise.resolve();
118
+ }
119
+ forceFlush() {
120
+ return Promise.resolve();
121
+ }
122
+ }
@@ -33,13 +33,19 @@ type Registration = {
33
33
  sigintListener: () => void;
34
34
  subscription?: Subscription;
35
35
  };
36
+ type WebhookRegistry = Map<string, {
37
+ method: string;
38
+ path: string;
39
+ options: any;
40
+ }>;
36
41
  export declare class DurableInterpreter {
37
42
  private readonly log;
38
43
  private readonly compiler;
39
44
  private readonly contextProvider;
40
45
  private readonly webhookRouter;
41
46
  private readonly cronRouter;
42
- private readonly cronRegistry;
47
+ private cronRegistry;
48
+ private webhookRegistry;
43
49
  private readonly platformApi;
44
50
  private readonly cnxFetchFactory;
45
51
  private readonly cronProvider;
@@ -53,7 +59,7 @@ export declare class DurableInterpreter {
53
59
  private cronServer?;
54
60
  private shutdownServer?;
55
61
  private isShuttingDown;
56
- constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, webhookRouter: Router, cronRouter: Router, cronRegistry: Map<string, string>, platformApi: PlatformApi, cnxFetchFactory: DirectConnectionFactory, cronProvider: CronProvider, tracer: Tracer, issue: IssueAPI, cfgReader: ConfigReader, queueProvider: QueueAPI, otelSDK?: NodeSDK | undefined);
62
+ constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, webhookRouter: Router, cronRouter: Router, cronRegistry: Map<string, string>, webhookRegistry: WebhookRegistry, platformApi: PlatformApi, cnxFetchFactory: DirectConnectionFactory, cronProvider: CronProvider, tracer: Tracer, issue: IssueAPI, cfgReader: ConfigReader, queueProvider: QueueAPI, otelSDK?: NodeSDK | undefined);
57
63
  static newInstance(options?: DurableInterpreterOptions): Promise<DurableInterpreter>;
58
64
  register<O>(workflow: Workflow<O>, options?: DurableInterpreterOptions): Registration;
59
65
  start(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"DurableInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/DurableInterpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DurableInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/DurableInterpreter.ts"],"names":[],"mappings":"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"}
@@ -8,29 +8,29 @@ import { DirectConnectionFactory } from '../../connection/DirectConnectionFactor
8
8
  import { ContextProviderImpl } from '../../context/ContextProvider.js';
9
9
  import { DefaultRoundTripperFactory } from '../../dsl/http/default.js';
10
10
  import { VersoriConfigReader } from '../../dsl/http/versori/configloader.js';
11
- import { envVarEnvId, envVarEnvironmentName, envVarLocalRun, envVarOrgId, envVarOrgSlug, envVarOtelTracesURL, envVarProjectId, envVarVersion, } from '../../dsl/http/versori/constants.js';
12
11
  import { CronAPIClient } from '../../dsl/http/versori/cronapi.js';
13
- import { ProxyRoundTripper } from '../../dsl/http/versori/proxyroundtripper.js';
14
12
  import { WorkflowImpl } from '../../dsl/Workflow.js';
13
+ import { envCronPort, envPort, envReadyCheckURL, envVarEnvId, envVarEnvironmentName, envVarOrgId, envVarOrgSlug, envVarOtelTracesURL, envVarProjectId, envVarSDKApiBaseURL, envVarVersion, } from '../../internal/constants.js';
14
+ import { Fake, registerCrons, registerWebhooks, enabled as supervisorEnabled } from '../../internal/supervisor.js';
15
15
  import { IssueImpl } from '../../issues/Issues.js';
16
+ import { MemoryKeyValueProvider } from '../../kv/memory/MemoryKeyValueProvider.js';
16
17
  import { SDKKeyValueProvider } from '../../kv/sdk/SDKKeyValueProvider.js';
17
18
  import { ConsoleLogger } from '../../observability/logging/ConsoleLogger.js';
18
19
  import { PlatformApiImpl } from '../../services/platform/PlatformApi.js';
19
20
  import { ObservableCompiler } from './ObservableCompiler.js';
20
21
  import { QueueImpl } from './Queue.js';
21
- function getKVProvider(runLocal) {
22
+ function getKVProvider() {
23
+ if (supervisorEnabled) {
24
+ return Promise.resolve(new MemoryKeyValueProvider());
25
+ }
22
26
  return SDKKeyValueProvider.fromEnv();
23
27
  }
24
- function getRoundTripperFactory(log, tracer, opts) {
25
- if (opts && opts.runLocal) {
26
- log.info('Running in local mode, using ProxyRoundTripperFactory');
27
- return ProxyRoundTripper.fromEnv(log);
28
- }
28
+ function getRoundTripperFactory(log) {
29
29
  log.info('Running with default round tripper factory');
30
30
  return new DefaultRoundTripperFactory();
31
31
  }
32
32
  export class DurableInterpreter {
33
- constructor(log, compiler, contextProvider, webhookRouter, cronRouter, cronRegistry, platformApi, cnxFetchFactory, cronProvider, tracer, issue, cfgReader, queueProvider, otelSDK) {
33
+ constructor(log, compiler, contextProvider, webhookRouter, cronRouter, cronRegistry, webhookRegistry, platformApi, cnxFetchFactory, cronProvider, tracer, issue, cfgReader, queueProvider, otelSDK) {
34
34
  Object.defineProperty(this, "log", {
35
35
  enumerable: true,
36
36
  configurable: true,
@@ -67,6 +67,12 @@ export class DurableInterpreter {
67
67
  writable: true,
68
68
  value: cronRegistry
69
69
  });
70
+ Object.defineProperty(this, "webhookRegistry", {
71
+ enumerable: true,
72
+ configurable: true,
73
+ writable: true,
74
+ value: webhookRegistry
75
+ });
70
76
  Object.defineProperty(this, "platformApi", {
71
77
  enumerable: true,
72
78
  configurable: true,
@@ -156,14 +162,15 @@ export class DurableInterpreter {
156
162
  const compiler = options.compiler || new ObservableCompiler();
157
163
  const serviceName = Deno.env.get(envVarProjectId) || 'example-service';
158
164
  const environmentID = Deno.env.get(envVarEnvId) || 'development';
165
+ const serviceId = Deno.env.get(envVarProjectId) || 'development';
159
166
  const version = Deno.env.get(envVarVersion) || '1.0.0';
160
167
  const environment = Deno.env.get(envVarEnvironmentName) || 'development';
168
+ const sdkAPIBaseURL = Deno.env.get(envVarSDKApiBaseURL) || 'http://localhost:8902';
161
169
  const orgId = Deno.env.get(envVarOrgId) || 'development';
162
170
  const orgSlug = Deno.env.get(envVarOrgSlug) || 'development';
163
171
  const otelTracesURL = Deno.env.get(envVarOtelTracesURL);
164
172
  let otelSDK;
165
173
  const configReader = VersoriConfigReader.fromEnv(log);
166
- const runLocal = Deno.env.get(envVarLocalRun) === 'true';
167
174
  await waitForReady(log);
168
175
  // Do NOT change those attributes, they are used by the API to filter on
169
176
  const resource = resourceFromAttributes({
@@ -185,24 +192,30 @@ export class DurableInterpreter {
185
192
  log.info('Starting OpenTelemetry SDK');
186
193
  otelSDK.start();
187
194
  }
195
+ else if (supervisorEnabled) {
196
+ otelSDK = new NodeSDK({
197
+ traceExporter: new Fake(),
198
+ serviceName: serviceName,
199
+ resource: resource,
200
+ });
201
+ log.info('Starting Testing OpenTelemetry SDK');
202
+ otelSDK.start();
203
+ }
188
204
  const tracer = opentelemetry.trace.getTracer(serviceName, version);
189
- const roundTripperFactory = getRoundTripperFactory(log, tracer, {
190
- skipVersoriCredentials: options.skipVersoriCredentials,
191
- runLocal: runLocal,
192
- });
205
+ const roundTripperFactory = getRoundTripperFactory(log);
193
206
  const queueProvider = await QueueImpl.fromEnv(log);
194
207
  const issuesProvider = new IssueImpl(log);
195
208
  if (options.contextProvider) {
196
209
  // no need to set up a key-value provider if options.contextProvider is already
197
210
  // initialised.
198
- return new DurableInterpreter(log, compiler, options.contextProvider, express.Router(), express.Router(), new Map(), PlatformApiImpl.fromEnv(), DirectConnectionFactory.fromEnv(log), CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, queueProvider, otelSDK);
211
+ return new DurableInterpreter(log, compiler, options.contextProvider, express.Router(), express.Router(), new Map(), new Map(), PlatformApiImpl.fromEnv(), DirectConnectionFactory.fromEnv(log), CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, queueProvider, otelSDK);
199
212
  }
200
- const kvp = await getKVProvider(runLocal);
213
+ const kvp = await getKVProvider();
201
214
  const platformApi = PlatformApiImpl.fromEnv();
202
215
  const organisationId = Deno.env.get(envVarOrgId) || 'development';
203
216
  const environmentId = Deno.env.get(envVarEnvId) || 'development';
204
- const ctxProvider = new ContextProviderImpl(log, kvp, roundTripperFactory.credentials(), platformApi, organisationId, environmentId, issuesProvider, queueProvider);
205
- return new DurableInterpreter(log, compiler, ctxProvider, express.Router(), express.Router(), new Map(), PlatformApiImpl.fromEnv(), DirectConnectionFactory.fromEnv(log), CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, queueProvider, otelSDK);
217
+ const ctxProvider = new ContextProviderImpl(log, kvp, roundTripperFactory.credentials(), platformApi, organisationId, environmentId, issuesProvider);
218
+ return new DurableInterpreter(log, compiler, ctxProvider, express.Router(), express.Router(), new Map(), new Map(), PlatformApiImpl.fromEnv(), DirectConnectionFactory.fromEnv(log), CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, queueProvider, otelSDK);
206
219
  }
207
220
  register(workflow, options) {
208
221
  const localAbortController = new AbortController();
@@ -219,6 +232,7 @@ export class DurableInterpreter {
219
232
  tracer: this.tracer,
220
233
  contextProvider: this.contextProvider,
221
234
  webhookRouter: this.webhookRouter,
235
+ webhookRegistry: this.webhookRegistry,
222
236
  queueProvider: this.queueProvider,
223
237
  cronRouter: this.cronRouter,
224
238
  cronRegistry: this.cronRegistry,
@@ -243,8 +257,8 @@ export class DurableInterpreter {
243
257
  return registration;
244
258
  }
245
259
  async start() {
246
- const port = Deno.env.get('PORT') || 3000;
247
- const cronPort = Deno.env.get('CRON_PORT') || 3001;
260
+ const port = Deno.env.get(envPort) || 3000;
261
+ const cronPort = Deno.env.get(envCronPort) || 3001;
248
262
  const webhookApp = express();
249
263
  const cronApp = express();
250
264
  cronApp.use(express.json());
@@ -268,11 +282,17 @@ export class DurableInterpreter {
268
282
  ctx.log.error('DurableInterpreter.executionError', {
269
283
  error: err instanceof Error ? err.toString() : err,
270
284
  });
285
+ this.tracer.startActiveSpan('done', (span) => {
286
+ span.setAttribute('error.message', err instanceof Error ? err.toString() : err);
287
+ span.setAttribute('execution.id', ctx.executionId);
288
+ span.setAttribute('result', 'fail');
289
+ span.end();
290
+ });
271
291
  try {
272
292
  ctx.options.onError?.(ctx.withData(err));
273
293
  }
274
294
  catch (err) {
275
- ctx.log.error('DurableInterpreter.onErrorError: failed to call onError handler', { error: err instanceof Error ? err.toString() : err });
295
+ ctx.log.error('DurableInterpreter.onError Error: failed to call onError handler', { error: err instanceof Error ? err.toString() : err });
276
296
  ctx.options.onError?.(ctx.withData({
277
297
  message: 'Internal server error',
278
298
  error: err instanceof Error ? err.toString() : err,
@@ -287,6 +307,11 @@ export class DurableInterpreter {
287
307
  durationMs,
288
308
  data: ctx.data,
289
309
  });
310
+ this.tracer.startActiveSpan('done', (span) => {
311
+ span.setAttribute('execution.id', ctx.executionId);
312
+ span.setAttribute('result', 'pass');
313
+ span.end();
314
+ });
290
315
  try {
291
316
  ctx.options.onSuccess?.(ctx);
292
317
  }
@@ -297,6 +322,17 @@ export class DurableInterpreter {
297
322
  error: err instanceof Error ? err.toString() : err,
298
323
  }));
299
324
  }
325
+ if (ctx.workflowId) {
326
+ this.log.info('Async workflow completed', {
327
+ workflowId: ctx.workflowId,
328
+ });
329
+ const output = ctx.data ? btoa(JSON.stringify(ctx.data)) : undefined;
330
+ await ctx.queue?.complete({
331
+ id: ctx.workflowId,
332
+ output,
333
+ status: 'completed',
334
+ });
335
+ }
300
336
  this.contextProvider.destroy(ctx);
301
337
  },
302
338
  error: (err) => {
@@ -323,6 +359,9 @@ export class DurableInterpreter {
323
359
  });
324
360
  throw new Error('Unable to register scheduler tasks with central cron provider');
325
361
  }
362
+ // register with supervisor
363
+ await registerCrons(this.cronRegistry);
364
+ await registerWebhooks(this.webhookRegistry);
326
365
  this.webhookServer = webhookApp.listen(port, () => {
327
366
  this.log.info(`Express server listening on port ${port}`);
328
367
  });
@@ -342,6 +381,7 @@ export class DurableInterpreter {
342
381
  if (this.cronServer) {
343
382
  this.cronServer.close();
344
383
  }
384
+ this.otelSDK?.shutdown();
345
385
  // Remove all signal listeners
346
386
  for (const registration of this.registeredWorkflows) {
347
387
  Deno.removeSignalListener('SIGINT', registration.sigintListener);
@@ -393,7 +433,7 @@ export class DurableInterpreter {
393
433
  }
394
434
  }
395
435
  async function waitForReady(log) {
396
- const readyCheckUrl = Deno.env.get('READY_CHECK_URL');
436
+ const readyCheckUrl = Deno.env.get(envReadyCheckURL);
397
437
  if (!readyCheckUrl) {
398
438
  return Promise.resolve();
399
439
  }
@@ -1,6 +1,7 @@
1
1
  import { Tracer } from '@opentelemetry/api';
2
2
  import { Router } from 'express';
3
3
  import { Observable, OperatorFunction } from 'rxjs';
4
+ import { ConnectionFactory } from '../../connection/types.js';
4
5
  import { ContextImpl } from '../../context/Context.js';
5
6
  import { ContextProvider } from '../../context/ContextProvider.js';
6
7
  import { ConfigReader } from '../../dsl/http/types.js';
@@ -11,7 +12,6 @@ import { Logger } from '../../observability/logging/Logger.js';
11
12
  import { PlatformApi } from '../../services/platform/mod.js';
12
13
  import { ContextOperatorFunction, TaskCompiler, TriggerCompiler } from './compilers/types.js';
13
14
  import { QueueAPI } from './Queue.js';
14
- import { ConnectionFactory } from '../../connection/types.js';
15
15
  export type DurableCompilerContext = {
16
16
  compiler: ObservableCompiler;
17
17
  log: Logger;
@@ -22,6 +22,11 @@ export type DurableCompilerContext = {
22
22
  queueProvider: QueueAPI;
23
23
  issueProvider: IssueAPI;
24
24
  webhookRouter: Router;
25
+ webhookRegistry: Map<string, {
26
+ method: string;
27
+ path: string;
28
+ options: any;
29
+ }>;
25
30
  cronRouter: Router;
26
31
  configReader: ConfigReader;
27
32
  cronRegistry: Map<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/ObservableCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAY,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAe,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAU7D,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG9F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,QAAQ,CAAC;IACxB,aAAa,EAAE,QAAQ,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CACrF,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,CAAC,KACN,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAE/B,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,gBAAgB,CAAgD;;IAkBxE,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,EACzC,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GACpB,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;IAe1C,cAAc,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAC3D,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAerC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAKjF,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;CAIjF"}
1
+ {"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/ObservableCompiler.ts"],"names":[],"mappings":"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"}