@versori/run 0.4.7 → 0.5.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 (151) hide show
  1. package/esm/src/connection/internal/CredentialHolder.d.ts.map +1 -1
  2. package/esm/src/connection/internal/CredentialHolder.js +1 -1
  3. package/esm/src/connection/internal/FetchBuilder.d.ts +9 -2
  4. package/esm/src/connection/internal/FetchBuilder.d.ts.map +1 -1
  5. package/esm/src/connection/internal/FetchBuilder.js +120 -4
  6. package/esm/src/connection/internal/OutboundConnectionFactory.d.ts.map +1 -1
  7. package/esm/src/connection/internal/OutboundConnectionFactory.js +2 -2
  8. package/esm/src/context/Context.d.ts +1 -0
  9. package/esm/src/context/Context.d.ts.map +1 -1
  10. package/esm/src/context/Context.js +3 -0
  11. package/esm/src/context/ContextProvider.d.ts +1 -1
  12. package/esm/src/context/ContextProvider.d.ts.map +1 -1
  13. package/esm/src/context/ContextProvider.js +2 -1
  14. package/esm/src/dsl/Workflow.d.ts.map +1 -1
  15. package/esm/src/dsl/Workflow.js +2 -0
  16. package/esm/src/dsl/http/types.d.ts +2 -0
  17. package/esm/src/dsl/http/types.d.ts.map +1 -1
  18. package/esm/src/dsl/http/versori/configloader.d.ts.map +1 -1
  19. package/esm/src/dsl/http/versori/configloader.js +1 -1
  20. package/esm/src/dsl/http/versori/cronapi.d.ts +2 -3
  21. package/esm/src/dsl/http/versori/cronapi.d.ts.map +1 -1
  22. package/esm/src/dsl/http/versori/cronapi.js +14 -15
  23. package/esm/src/dsl/http/versori/kvapi/core/OpenAPI.js +1 -1
  24. package/esm/src/dsl/http/versori/webhookmiddleware.d.ts.map +1 -1
  25. package/esm/src/dsl/http/versori/webhookmiddleware.js +77 -38
  26. package/esm/src/dsl/triggers/WebhookTrigger.d.ts.map +1 -1
  27. package/esm/src/dsl/triggers/WebhookTrigger.js +3 -1
  28. package/esm/src/internal/InternalAuth.d.ts +0 -1
  29. package/esm/src/internal/InternalAuth.d.ts.map +1 -1
  30. package/esm/src/internal/InternalAuth.js +1 -14
  31. package/esm/src/internal/constants.d.ts +3 -1
  32. package/esm/src/internal/constants.d.ts.map +1 -1
  33. package/esm/src/internal/constants.js +4 -1
  34. package/esm/src/internal/supervisor.d.ts +27 -0
  35. package/esm/src/internal/supervisor.d.ts.map +1 -0
  36. package/esm/src/internal/supervisor.js +179 -0
  37. package/esm/src/interpreter/durable/DurableInterpreter.d.ts +8 -2
  38. package/esm/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
  39. package/esm/src/interpreter/durable/DurableInterpreter.js +44 -13
  40. package/esm/src/interpreter/durable/ObservableCompiler.d.ts +6 -1
  41. package/esm/src/interpreter/durable/ObservableCompiler.d.ts.map +1 -1
  42. package/esm/src/interpreter/durable/Queue.js +1 -1
  43. package/esm/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
  44. package/esm/src/interpreter/durable/compilers/catch.js +6 -7
  45. package/esm/src/interpreter/durable/compilers/fn.d.ts.map +1 -1
  46. package/esm/src/interpreter/durable/compilers/fn.js +19 -4
  47. package/esm/src/interpreter/durable/compilers/http.d.ts.map +1 -1
  48. package/esm/src/interpreter/durable/compilers/http.js +40 -7
  49. package/esm/src/interpreter/durable/compilers/schedule.d.ts.map +1 -1
  50. package/esm/src/interpreter/durable/compilers/schedule.js +2 -1
  51. package/esm/src/interpreter/durable/compilers/webhook.d.ts.map +1 -1
  52. package/esm/src/interpreter/durable/compilers/webhook.js +14 -4
  53. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts +7 -1
  54. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  55. package/esm/src/interpreter/memory/MemoryInterpreter.js +43 -12
  56. package/esm/src/interpreter/memory/ObservableCompiler.d.ts +6 -1
  57. package/esm/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
  58. package/esm/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
  59. package/esm/src/interpreter/memory/compilers/catch.js +8 -7
  60. package/esm/src/interpreter/memory/compilers/fn.d.ts.map +1 -1
  61. package/esm/src/interpreter/memory/compilers/fn.js +20 -16
  62. package/esm/src/interpreter/memory/compilers/http.d.ts.map +1 -1
  63. package/esm/src/interpreter/memory/compilers/http.js +40 -6
  64. package/esm/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
  65. package/esm/src/interpreter/memory/compilers/schedule.js +4 -1
  66. package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  67. package/esm/src/interpreter/memory/compilers/webhook.js +22 -7
  68. package/esm/src/issues/Issues.js +1 -1
  69. package/esm/src/observability/logging/ConsoleLogger.d.ts.map +1 -1
  70. package/package.json +3 -1
  71. package/script/src/connection/internal/CredentialHolder.d.ts.map +1 -1
  72. package/script/src/connection/internal/CredentialHolder.js +1 -1
  73. package/script/src/connection/internal/FetchBuilder.d.ts +9 -2
  74. package/script/src/connection/internal/FetchBuilder.d.ts.map +1 -1
  75. package/script/src/connection/internal/FetchBuilder.js +143 -4
  76. package/script/src/connection/internal/OutboundConnectionFactory.d.ts.map +1 -1
  77. package/script/src/connection/internal/OutboundConnectionFactory.js +2 -2
  78. package/script/src/context/Context.d.ts +1 -0
  79. package/script/src/context/Context.d.ts.map +1 -1
  80. package/script/src/context/Context.js +3 -0
  81. package/script/src/context/ContextProvider.d.ts +1 -1
  82. package/script/src/context/ContextProvider.d.ts.map +1 -1
  83. package/script/src/context/ContextProvider.js +2 -1
  84. package/script/src/dsl/Workflow.d.ts.map +1 -1
  85. package/script/src/dsl/Workflow.js +2 -0
  86. package/script/src/dsl/http/types.d.ts +2 -0
  87. package/script/src/dsl/http/types.d.ts.map +1 -1
  88. package/script/src/dsl/http/versori/configloader.d.ts.map +1 -1
  89. package/script/src/dsl/http/versori/configloader.js +1 -1
  90. package/script/src/dsl/http/versori/cronapi.d.ts +2 -3
  91. package/script/src/dsl/http/versori/cronapi.d.ts.map +1 -1
  92. package/script/src/dsl/http/versori/cronapi.js +14 -15
  93. package/script/src/dsl/http/versori/kvapi/core/OpenAPI.js +1 -1
  94. package/script/src/dsl/http/versori/webhookmiddleware.d.ts.map +1 -1
  95. package/script/src/dsl/http/versori/webhookmiddleware.js +77 -38
  96. package/script/src/dsl/triggers/WebhookTrigger.d.ts.map +1 -1
  97. package/script/src/dsl/triggers/WebhookTrigger.js +3 -1
  98. package/script/src/internal/InternalAuth.d.ts +0 -1
  99. package/script/src/internal/InternalAuth.d.ts.map +1 -1
  100. package/script/src/internal/InternalAuth.js +0 -13
  101. package/script/src/internal/constants.d.ts +3 -1
  102. package/script/src/internal/constants.d.ts.map +1 -1
  103. package/script/src/internal/constants.js +5 -2
  104. package/script/src/internal/supervisor.d.ts +27 -0
  105. package/script/src/internal/supervisor.d.ts.map +1 -0
  106. package/script/src/internal/supervisor.js +187 -0
  107. package/script/src/interpreter/durable/DurableInterpreter.d.ts +8 -2
  108. package/script/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
  109. package/script/src/interpreter/durable/DurableInterpreter.js +49 -18
  110. package/script/src/interpreter/durable/ObservableCompiler.d.ts +6 -1
  111. package/script/src/interpreter/durable/ObservableCompiler.d.ts.map +1 -1
  112. package/script/src/interpreter/durable/Queue.js +1 -1
  113. package/script/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
  114. package/script/src/interpreter/durable/compilers/catch.js +6 -7
  115. package/script/src/interpreter/durable/compilers/fn.d.ts.map +1 -1
  116. package/script/src/interpreter/durable/compilers/fn.js +19 -4
  117. package/script/src/interpreter/durable/compilers/http.d.ts.map +1 -1
  118. package/script/src/interpreter/durable/compilers/http.js +40 -7
  119. package/script/src/interpreter/durable/compilers/schedule.d.ts.map +1 -1
  120. package/script/src/interpreter/durable/compilers/schedule.js +2 -1
  121. package/script/src/interpreter/durable/compilers/webhook.d.ts.map +1 -1
  122. package/script/src/interpreter/durable/compilers/webhook.js +14 -4
  123. package/script/src/interpreter/memory/MemoryInterpreter.d.ts +7 -1
  124. package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  125. package/script/src/interpreter/memory/MemoryInterpreter.js +42 -11
  126. package/script/src/interpreter/memory/ObservableCompiler.d.ts +6 -1
  127. package/script/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
  128. package/script/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
  129. package/script/src/interpreter/memory/compilers/catch.js +8 -7
  130. package/script/src/interpreter/memory/compilers/fn.d.ts.map +1 -1
  131. package/script/src/interpreter/memory/compilers/fn.js +20 -16
  132. package/script/src/interpreter/memory/compilers/http.d.ts.map +1 -1
  133. package/script/src/interpreter/memory/compilers/http.js +40 -6
  134. package/script/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
  135. package/script/src/interpreter/memory/compilers/schedule.js +4 -1
  136. package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  137. package/script/src/interpreter/memory/compilers/webhook.js +22 -7
  138. package/script/src/issues/Issues.js +1 -1
  139. package/script/src/observability/logging/ConsoleLogger.d.ts.map +1 -1
  140. package/esm/src/dsl/http/versori/constants.d.ts +0 -20
  141. package/esm/src/dsl/http/versori/constants.d.ts.map +0 -1
  142. package/esm/src/dsl/http/versori/constants.js +0 -37
  143. package/esm/src/internal/cli.d.ts +0 -2
  144. package/esm/src/internal/cli.d.ts.map +0 -1
  145. package/esm/src/internal/cli.js +0 -32
  146. package/script/src/dsl/http/versori/constants.d.ts +0 -20
  147. package/script/src/dsl/http/versori/constants.d.ts.map +0 -1
  148. package/script/src/dsl/http/versori/constants.js +0 -40
  149. package/script/src/internal/cli.d.ts +0 -2
  150. package/script/src/internal/cli.d.ts.map +0 -1
  151. package/script/src/internal/cli.js +0 -35
@@ -25,6 +25,7 @@ function compileCatch(compilerCtx, task) {
25
25
  return compilerCtx.tracer.startActiveSpan(`catch`, (span) => {
26
26
  span.setAttribute('execution.id', ctx.executionId);
27
27
  span.setAttribute('task.type', 'catch');
28
+ span.setAttribute('type', 'task');
28
29
  if (error instanceof Error) {
29
30
  span.recordException(error);
30
31
  span.setAttribute('error.message', error.message);
@@ -38,10 +39,9 @@ function compileCatch(compilerCtx, task) {
38
39
  annotations: {
39
40
  'error': error.message,
40
41
  'stack': error.stack || '',
41
- 'workflowId': ctx.options.workflowId || ctx.workflowId || '',
42
+ 'workflowId': ctx.options.workflowId || ctx.workflowId ||
43
+ '',
42
44
  'executionId': ctx.executionId,
43
- 'activationId': ctx.activation.id,
44
- 'activationExternalId': ctx.activation?.user.externalId,
45
45
  },
46
46
  reason: 'error',
47
47
  severity: 'high',
@@ -53,12 +53,11 @@ function compileCatch(compilerCtx, task) {
53
53
  });
54
54
  compilerCtx.issueProvider.submitIssue({
55
55
  annotations: {
56
- 'error': error.message,
56
+ 'error': error.message || '',
57
57
  'stack': error.stack || '',
58
- 'workflowId': ctx.options.workflowId || ctx.workflowId || '',
58
+ 'workflowId': ctx.options.workflowId || ctx.workflowId ||
59
+ '',
59
60
  'executionId': ctx.executionId,
60
- 'activationId': ctx.activation.id,
61
- 'activationExternalId': ctx.activation?.user.externalId,
62
61
  },
63
62
  reason: 'error',
64
63
  severity: 'low',
@@ -1 +1 @@
1
- {"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/fn.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AA+BnE,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAG/D,CAAC"}
1
+ {"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/fn.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAGtD,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AA0CnE,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAG/D,CAAC"}
@@ -15,19 +15,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.fnCompiler = void 0;
16
16
  const rxjs_1 = require("rxjs");
17
17
  const FnTask_js_1 = require("../../../dsl/tasks/FnTask.js");
18
+ const supervisor_js_1 = require("../../../internal/supervisor.js");
18
19
  function compileFn(compilerCtx, task) {
19
20
  return (src) => src.pipe((0, rxjs_1.tap)({
20
21
  complete: () => compilerCtx.log.debug('fn.complete'),
21
22
  }), (0, rxjs_1.mergeMap)(async (ctx) => {
22
23
  return await compilerCtx.tracer.startActiveSpan(`fn-${task.id}`, async (span) => {
23
24
  span.setAttribute('task.id', task.id);
25
+ span.setAttribute('type', 'task');
26
+ span.setAttribute('task.type', 'fn');
24
27
  span.setAttribute('execution.id', ctx.executionId);
25
- if (typeof ctx.idx === 'number') {
28
+ try {
29
+ const spanContext = span.spanContext();
30
+ const ctxWithLogger = ctx.withLogger(ctx.log.child({ spanId: spanContext.spanId, traceId: spanContext.traceId }));
31
+ let result;
32
+ if (typeof ctx.idx === 'number') {
33
+ result = ctx.withData(await task._fn(ctxWithLogger, ctx.idx));
34
+ }
35
+ else {
36
+ result = ctx.withData(await task._fn(ctxWithLogger));
37
+ }
38
+ if (supervisor_js_1.enabled) {
39
+ span.setAttribute('response.body', JSON.stringify(result.data));
40
+ }
41
+ return result;
42
+ }
43
+ finally {
26
44
  span.end();
27
- return ctx.withData(await task._fn(ctx, ctx.idx));
28
45
  }
29
- span.end();
30
- return ctx.withData(await task._fn(ctx));
31
46
  });
32
47
  }));
33
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/http.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAmB,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAwFnE,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAG5E,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/http.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAmB,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG/E,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAuHnE,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAG5E,CAAC"}
@@ -15,18 +15,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.httpCompiler = void 0;
16
16
  const rxjs_1 = require("rxjs");
17
17
  const operators_1 = require("rxjs/operators");
18
- const HttpTask_js_1 = require("../../../dsl/tasks/HttpTask.js");
19
18
  const DynamicFetchFactory_js_1 = require("../../../connection/DynamicFetchFactory.js");
19
+ const FetchBuilder_js_1 = require("../../../connection/internal/FetchBuilder.js");
20
20
  const StaticFetchFactory_js_1 = require("../../../connection/StaticFetchFactory.js");
21
+ const HttpTask_js_1 = require("../../../dsl/tasks/HttpTask.js");
22
+ const supervisor_js_1 = require("../../../internal/supervisor.js");
21
23
  function compileHttp(compilerCtx, task) {
22
24
  const cnxMap = compilerCtx.configReader.getCnxMapping(task.opts.connection);
23
25
  let fetchFactory;
24
26
  if (!cnxMap) {
25
- compilerCtx.log.error(`Connection ${task.opts.connection} not found, using default fetch with no credentials`);
26
- fetchFactory = Promise.resolve(new StaticFetchFactory_js_1.StaticFetchFactory(globalThis.fetch));
27
+ compilerCtx.log.warn(`Connection ${task.opts.connection} not found, using default fetch with no credentials`);
28
+ if (supervisor_js_1.enabled) {
29
+ // missing connection map and we are in supervised mode, so we use the fake fetcher
30
+ fetchFactory = Promise.resolve(new StaticFetchFactory_js_1.StaticFetchFactory(new FetchBuilder_js_1.FetchBuilder(globalThis.fetch, { name: task.opts.connection }).buildSupervisedFetch()));
31
+ }
32
+ else {
33
+ // missing connection map and not in supervised mode, so we use global fetch
34
+ fetchFactory = Promise.resolve(new StaticFetchFactory_js_1.StaticFetchFactory(globalThis.fetch));
35
+ }
27
36
  }
28
37
  else if (cnxMap.dynamic) {
29
- fetchFactory = Promise.resolve(new DynamicFetchFactory_js_1.DynamicFetchFactory(compilerCtx.cnxFactory, compilerCtx.platformApi, compilerCtx.organisationId, cnxMap.templateId));
38
+ if (cnxMap.mockWithAI) {
39
+ fetchFactory = Promise.resolve(new StaticFetchFactory_js_1.StaticFetchFactory(new FetchBuilder_js_1.FetchBuilder(globalThis.fetch, { name: task.opts.connection }).buildSupervisedFetch()));
40
+ }
41
+ else {
42
+ fetchFactory = Promise.resolve(new DynamicFetchFactory_js_1.DynamicFetchFactory(compilerCtx.cnxFactory, compilerCtx.platformApi, compilerCtx.organisationId, cnxMap.templateId));
43
+ }
30
44
  }
31
45
  else {
32
46
  fetchFactory = compilerCtx.platformApi.getConnection({
@@ -36,8 +50,21 @@ function compileHttp(compilerCtx, task) {
36
50
  },
37
51
  throwOnError: true,
38
52
  })
39
- .then(({ data }) => Promise.all([compilerCtx.cnxFactory.fetcher(data), data.baseUrl ?? '']))
40
- .then(([fetcher, baseUrl]) => new StaticFetchFactory_js_1.StaticFetchFactory(fetcher, baseUrl));
53
+ .then(({ data }) => {
54
+ if (cnxMap.mockWithAI) {
55
+ // use the fake fetcher that calls the supervisor to generate a mock reponse
56
+ return new StaticFetchFactory_js_1.StaticFetchFactory(new FetchBuilder_js_1.FetchBuilder(globalThis.fetch, data).buildSupervisedFetch());
57
+ }
58
+ return Promise.all([compilerCtx.cnxFactory.fetcher(data), data.baseUrl ?? ''])
59
+ .then(([fetcher, baseUrl]) => new StaticFetchFactory_js_1.StaticFetchFactory(fetcher, baseUrl));
60
+ })
61
+ .catch((err) => {
62
+ compilerCtx.log.error(`Failed to get connection ${task.opts.connection}`, err);
63
+ if (supervisor_js_1.enabled) {
64
+ return new StaticFetchFactory_js_1.StaticFetchFactory(new FetchBuilder_js_1.FetchBuilder(globalThis.fetch, { name: task.opts.connection }).build());
65
+ }
66
+ throw err;
67
+ });
41
68
  }
42
69
  async function http(ctx) {
43
70
  const [fetch, baseUrl] = await fetchFactory.then((ff) => Promise.all([ff.fetcher(ctx), ff.baseUrl(ctx)]));
@@ -51,10 +78,16 @@ function compileHttp(compilerCtx, task) {
51
78
  return compilerCtx.tracer.startActiveSpan(`http-${task.id}`, async (span) => {
52
79
  span.setAttribute('task.id', task.id);
53
80
  span.setAttribute('task.type', 'http');
81
+ span.setAttribute('type', 'task');
54
82
  span.setAttribute('execution.id', ctx.executionId);
55
83
  span.setAttribute('connection.name', task.opts.connection);
84
+ const spanContext = span.spanContext();
56
85
  try {
57
- return await http(ctx);
86
+ const result = await http(ctx.withLogger(ctx.log.child({ spanId: spanContext.spanId, traceId: spanContext.traceId })));
87
+ if (supervisor_js_1.enabled) {
88
+ span.setAttribute('response.body', JSON.stringify(result.data));
89
+ }
90
+ return result;
58
91
  }
59
92
  catch (error) {
60
93
  if (error instanceof Error) {
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/schedule.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAkJ7C,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAG3E,CAAC"}
1
+ {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/schedule.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAQzF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmJ7C,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,YAAY,EAAE,eAAe,CAG3E,CAAC"}
@@ -14,8 +14,8 @@
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.scheduleCompiler = void 0;
16
16
  const rxjs_1 = require("rxjs");
17
- const constants_js_1 = require("../../../dsl/http/versori/constants.js");
18
17
  const ScheduleTrigger_js_1 = require("../../../dsl/triggers/ScheduleTrigger.js");
18
+ const constants_js_1 = require("../../../internal/constants.js");
19
19
  function compileSchedule(ctx, trigger, signal) {
20
20
  return new rxjs_1.Observable((subscriber) => {
21
21
  // Add HTTP endpoint for manual triggering
@@ -106,6 +106,7 @@ function compileSchedule(ctx, trigger, signal) {
106
106
  await ctx.tracer.startActiveSpan(`schedule-${trigger.id}`, async (span) => {
107
107
  span.setAttribute('task.id', trigger.id);
108
108
  span.setAttribute('task.type', 'schedule');
109
+ span.setAttribute('type', 'task');
109
110
  span.setAttribute('schedule', trigger.schedule);
110
111
  span.setAttribute('project.id', projectId);
111
112
  span.setAttribute('environment.id', environmentId);
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/webhook.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAyD7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CA2SxE,CAAC"}
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/webhook.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAuD7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CAwTxE,CAAC"}
@@ -18,12 +18,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.webhookCompiler = void 0;
19
19
  const cors_1 = __importDefault(require("cors"));
20
20
  const express_1 = __importDefault(require("express"));
21
+ const express_xml_bodyparser_1 = __importDefault(require("express-xml-bodyparser"));
21
22
  const promises_1 = require("node:stream/promises");
22
23
  const rxjs_1 = require("rxjs");
23
24
  const webhookmiddleware_js_1 = require("../../../dsl/http/versori/webhookmiddleware.js");
24
25
  const WebhookTrigger_js_1 = require("../../../dsl/triggers/WebhookTrigger.js");
25
26
  const constants_js_1 = require("../../../internal/constants.js");
26
- const express_xml_bodyparser_1 = __importDefault(require("express-xml-bodyparser"));
27
27
  const xml2jsDefaults = {
28
28
  explicitArray: false,
29
29
  normalize: false,
@@ -109,6 +109,7 @@ exports.webhookCompiler = {
109
109
  else {
110
110
  ctx.webhookRouter.use(express_1.default.raw({ type: '*/*', limit: '50mb' }));
111
111
  }
112
+ ctx.webhookRegistry.set(trigger.id, { method, path: `/${trigger.id}`, options: trigger.options });
112
113
  return new rxjs_1.Observable((subscriber) => {
113
114
  if (!ctx.webhookRouter) {
114
115
  throw new Error('Router not available in compiler context');
@@ -137,8 +138,11 @@ exports.webhookCompiler = {
137
138
  await ctx.tracer.startActiveSpan(`webhook-${trigger.id}`, (span) => {
138
139
  span.setAttribute('task.id', trigger.id);
139
140
  span.setAttribute('task.type', 'webhook');
141
+ span.setAttribute('type', 'task');
140
142
  const staticActivation = res.locals.activation;
141
- const executionCtx = ctx.contextProvider.create(staticActivation, req.body, ctxOptionsFn(req, res));
143
+ let executionCtx = ctx.contextProvider.create(staticActivation, req.body, ctxOptionsFn(req, res));
144
+ const spanContext = span.spanContext();
145
+ executionCtx = executionCtx.withLogger(executionCtx.log.child({ spanId: spanContext.spanId, traceId: spanContext.traceId }));
142
146
  span.setAttribute('execution.id', executionCtx.executionId);
143
147
  try {
144
148
  subscriber.next(executionCtx);
@@ -173,6 +177,7 @@ exports.webhookCompiler = {
173
177
  await ctx.tracer.startActiveSpan(`webhook-${trigger.id}`, (span) => {
174
178
  span.setAttribute('task.id', trigger.id);
175
179
  span.setAttribute('task.type', 'webhook');
180
+ span.setAttribute('type', 'task');
176
181
  span.setAttribute('user.id', req.params.userId);
177
182
  const userId = req.params.userId;
178
183
  const activation = res.locals.activation;
@@ -189,7 +194,9 @@ exports.webhookCompiler = {
189
194
  span.end();
190
195
  return;
191
196
  }
192
- const executionCtx = ctx.contextProvider.create(activation, req.body, ctxOptionsFn(req, res));
197
+ let executionCtx = ctx.contextProvider.create(activation, req.body, ctxOptionsFn(req, res));
198
+ const spanContext = span.spanContext();
199
+ executionCtx = executionCtx.withLogger(executionCtx.log.child({ spanId: spanContext.spanId, traceId: spanContext.traceId }));
193
200
  span.setAttribute('execution.id', executionCtx.executionId);
194
201
  const errors = [];
195
202
  try {
@@ -228,6 +235,7 @@ exports.webhookCompiler = {
228
235
  }), async (req, res) => {
229
236
  await ctx.tracer.startActiveSpan(`webhook-${trigger.id}`, (span) => {
230
237
  span.setAttribute('task.id', trigger.id);
238
+ span.setAttribute('type', 'task');
231
239
  span.setAttribute('task.type', 'webhook');
232
240
  span.setAttribute('activation.id', req.params.activationId);
233
241
  const activation = res.locals.activation;
@@ -243,7 +251,9 @@ exports.webhookCompiler = {
243
251
  span.end();
244
252
  return;
245
253
  }
246
- const activationCtx = ctx.contextProvider.create(activation, req.body, ctxOptionsFn(req, res));
254
+ let activationCtx = ctx.contextProvider.create(activation, req.body, ctxOptionsFn(req, res));
255
+ const spanContext = span.spanContext();
256
+ activationCtx = activationCtx.withLogger(activationCtx.log.child({ spanId: spanContext.spanId, traceId: spanContext.traceId }));
247
257
  span.setAttribute('execution.id', activationCtx.executionId);
248
258
  try {
249
259
  subscriber.next(activationCtx);
@@ -43,6 +43,11 @@ type Registration = {
43
43
  sigintListener: () => void;
44
44
  subscription?: Subscription;
45
45
  };
46
+ type WebhookRegistry = Map<string, {
47
+ method: string;
48
+ path: string;
49
+ options: any;
50
+ }>;
46
51
  /**
47
52
  * MemoryInterpreter is the default interpreter for executing Versori workflows. It handles registration and execution
48
53
  * of workflows triggered by schedules and webhooks.
@@ -71,6 +76,7 @@ export declare class MemoryInterpreter {
71
76
  private readonly webhookRouter;
72
77
  private readonly cronRouter;
73
78
  private cronRegistry;
79
+ private webhookRegistry;
74
80
  private readonly cnxFactory;
75
81
  private readonly cronProvider;
76
82
  private readonly tracer;
@@ -82,7 +88,7 @@ export declare class MemoryInterpreter {
82
88
  private cronServer?;
83
89
  private shutdownServer?;
84
90
  private isShuttingDown;
85
- constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, webhookRouter: Router, cronRouter: Router, cronRegistry: Map<string, string>, cnxFactory: DirectConnectionFactory, cronProvider: CronProvider, tracer: Tracer, issuesProvider: IssueAPI, cfgReader: ConfigReader, otelSDK?: NodeSDK | undefined);
91
+ constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, webhookRouter: Router, cronRouter: Router, cronRegistry: Map<string, string>, webhookRegistry: WebhookRegistry, cnxFactory: DirectConnectionFactory, cronProvider: CronProvider, tracer: Tracer, issuesProvider: IssueAPI, cfgReader: ConfigReader, otelSDK?: NodeSDK | undefined);
86
92
  static newInstance(options?: MemoryInterpreterOptions): Promise<MemoryInterpreter>;
87
93
  register<O>(workflow: Workflow<O>, options?: MemoryInterpreterOptions): Registration;
88
94
  start(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"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"}
@@ -29,14 +29,15 @@ const configloader_js_1 = require("../../dsl/http/versori/configloader.js");
29
29
  const cronapi_js_1 = require("../../dsl/http/versori/cronapi.js");
30
30
  const Workflow_js_1 = require("../../dsl/Workflow.js");
31
31
  const constants_js_1 = require("../../internal/constants.js");
32
+ const supervisor_js_1 = require("../../internal/supervisor.js");
32
33
  const Issues_js_1 = require("../../issues/Issues.js");
33
34
  const MemoryKeyValueProvider_js_1 = require("../../kv/memory/MemoryKeyValueProvider.js");
34
35
  const NatsKeyValueProvider_js_1 = require("../../kv/nats/NatsKeyValueProvider.js");
35
36
  const ConsoleLogger_js_1 = require("../../observability/logging/ConsoleLogger.js");
36
37
  const PlatformApi_js_1 = require("../../services/platform/PlatformApi.js");
37
38
  const ObservableCompiler_js_1 = require("./ObservableCompiler.js");
38
- function getKVProvider(runLocal) {
39
- if (runLocal) {
39
+ function getKVProvider() {
40
+ if (supervisor_js_1.enabled) {
40
41
  return Promise.resolve(new MemoryKeyValueProvider_js_1.MemoryKeyValueProvider());
41
42
  }
42
43
  return NatsKeyValueProvider_js_1.NatsKeyValueProvider.fromEnv();
@@ -63,7 +64,7 @@ function getKVProvider(runLocal) {
63
64
  * ```
64
65
  */
65
66
  class MemoryInterpreter {
66
- constructor(log, compiler, contextProvider, webhookRouter, cronRouter, cronRegistry, cnxFactory, cronProvider, tracer, issuesProvider, cfgReader, otelSDK) {
67
+ constructor(log, compiler, contextProvider, webhookRouter, cronRouter, cronRegistry, webhookRegistry, cnxFactory, cronProvider, tracer, issuesProvider, cfgReader, otelSDK) {
67
68
  Object.defineProperty(this, "log", {
68
69
  enumerable: true,
69
70
  configurable: true,
@@ -100,6 +101,12 @@ class MemoryInterpreter {
100
101
  writable: true,
101
102
  value: cronRegistry
102
103
  });
104
+ Object.defineProperty(this, "webhookRegistry", {
105
+ enumerable: true,
106
+ configurable: true,
107
+ writable: true,
108
+ value: webhookRegistry
109
+ });
103
110
  Object.defineProperty(this, "cnxFactory", {
104
111
  enumerable: true,
105
112
  configurable: true,
@@ -184,7 +191,6 @@ class MemoryInterpreter {
184
191
  const otelTracesURL = Deno.env.get(constants_js_1.envVarOtelTracesURL);
185
192
  let otelSDK;
186
193
  const configReader = configloader_js_1.VersoriConfigReader.fromEnv(log);
187
- const runLocal = Deno.env.get(constants_js_1.envVarLocalRun) === 'true';
188
194
  await waitForReady(log);
189
195
  // Do NOT change those attributes, they are used by the API to filter on
190
196
  const resource = (0, resources_1.resourceFromAttributes)({
@@ -206,20 +212,29 @@ class MemoryInterpreter {
206
212
  log.info('Starting OpenTelemetry SDK');
207
213
  otelSDK.start();
208
214
  }
215
+ else if (supervisor_js_1.enabled) {
216
+ otelSDK = new sdk_node_1.NodeSDK({
217
+ traceExporter: new supervisor_js_1.Fake(),
218
+ serviceName: serviceName,
219
+ resource: resource,
220
+ });
221
+ log.info('Starting Testing OpenTelemetry SDK');
222
+ otelSDK.start();
223
+ }
209
224
  const tracer = api_1.default.trace.getTracer(serviceName, version);
210
225
  const connectionFactory = DirectConnectionFactory_js_1.DirectConnectionFactory.fromEnv(log);
211
226
  const issuesProvider = new Issues_js_1.IssueImpl(log);
212
227
  if (options.contextProvider) {
213
228
  // no need to set up a key-value provider if options.contextProvider is already
214
229
  // initialised.
215
- return new MemoryInterpreter(log, compiler, options.contextProvider, express_1.default.Router(), express_1.default.Router(), new Map(), DirectConnectionFactory_js_1.DirectConnectionFactory.fromEnv(log), cronapi_js_1.CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, otelSDK);
230
+ return new MemoryInterpreter(log, compiler, options.contextProvider, express_1.default.Router(), express_1.default.Router(), new Map(), new Map(), connectionFactory, cronapi_js_1.CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, otelSDK);
216
231
  }
217
- const kvp = await getKVProvider(runLocal);
232
+ const kvp = await getKVProvider();
218
233
  const platformApi = PlatformApi_js_1.PlatformApiImpl.fromEnv();
219
234
  const organisationId = Deno.env.get(constants_js_1.envVarOrgId) || 'development';
220
235
  const environmentId = Deno.env.get(constants_js_1.envVarEnvId) || 'development';
221
236
  const ctxProvider = new ContextProvider_js_1.ContextProviderImpl(log, kvp, new CredentialsProvider_js_1.CredentialsProviderImpl(connectionFactory.credentials, connectionFactory.tokens, connectionFactory.oauth1, configReader, platformApi), platformApi, organisationId, environmentId, issuesProvider);
222
- return new MemoryInterpreter(log, compiler, ctxProvider, express_1.default.Router(), express_1.default.Router(), new Map(), connectionFactory, cronapi_js_1.CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, otelSDK);
237
+ return new MemoryInterpreter(log, compiler, ctxProvider, express_1.default.Router(), express_1.default.Router(), new Map(), new Map(), connectionFactory, cronapi_js_1.CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, otelSDK);
223
238
  }
224
239
  register(workflow, options) {
225
240
  const localAbortController = new AbortController();
@@ -238,6 +253,7 @@ class MemoryInterpreter {
238
253
  cnxFactory: this.cnxFactory,
239
254
  platformApi: PlatformApi_js_1.PlatformApiImpl.fromEnv(),
240
255
  webhookRouter: this.webhookRouter,
256
+ webhookRegistry: this.webhookRegistry,
241
257
  cronRouter: this.cronRouter,
242
258
  cronRegistry: this.cronRegistry,
243
259
  configReader: this.cfgReader,
@@ -258,9 +274,9 @@ class MemoryInterpreter {
258
274
  this.registeredWorkflows.push(registration);
259
275
  return registration;
260
276
  }
261
- start() {
262
- const port = Deno.env.get('PORT') || 3000;
263
- const cronPort = Deno.env.get('CRON_PORT') || 3001;
277
+ async start() {
278
+ const port = Deno.env.get(constants_js_1.envPort) || 3000;
279
+ const cronPort = Deno.env.get(constants_js_1.envCronPort) || 3001;
264
280
  const webhookApp = (0, express_1.default)();
265
281
  const cronApp = (0, express_1.default)();
266
282
  cronApp.use(express_1.default.json());
@@ -284,6 +300,12 @@ class MemoryInterpreter {
284
300
  ctx.log.error('MemoryInterpreter.executionError', {
285
301
  error: err instanceof Error ? err.toString() : err,
286
302
  });
303
+ this.tracer.startActiveSpan('done', (span) => {
304
+ span.setAttribute('error.message', err instanceof Error ? err.toString() : err);
305
+ span.setAttribute('execution.id', ctx.executionId);
306
+ span.setAttribute('result', 'fail');
307
+ span.end();
308
+ });
287
309
  try {
288
310
  ctx.options.onError?.(ctx.withData(err));
289
311
  }
@@ -303,6 +325,11 @@ class MemoryInterpreter {
303
325
  durationMs,
304
326
  data: ctx.data,
305
327
  });
328
+ this.tracer.startActiveSpan('done', (span) => {
329
+ span.setAttribute('execution.id', ctx.executionId);
330
+ span.setAttribute('result', 'pass');
331
+ span.end();
332
+ });
306
333
  try {
307
334
  ctx.options.onSuccess?.(ctx);
308
335
  }
@@ -339,6 +366,9 @@ class MemoryInterpreter {
339
366
  });
340
367
  throw new Error('Unable to register scheduler tasks with central cron provider');
341
368
  }
369
+ // register with suopervisor
370
+ await (0, supervisor_js_1.registerCrons)(this.cronRegistry);
371
+ await (0, supervisor_js_1.registerWebhooks)(this.webhookRegistry);
342
372
  this.webhookServer = webhookApp.listen(port, () => {
343
373
  this.log.info(`Express server listening on port ${port}`);
344
374
  });
@@ -358,6 +388,7 @@ class MemoryInterpreter {
358
388
  if (this.cronServer) {
359
389
  this.cronServer.close();
360
390
  }
391
+ this.otelSDK?.shutdown();
361
392
  // Remove all signal listeners
362
393
  for (const registration of this.registeredWorkflows) {
363
394
  Deno.removeSignalListener('SIGINT', registration.sigintListener);
@@ -411,7 +442,7 @@ class MemoryInterpreter {
411
442
  }
412
443
  exports.MemoryInterpreter = MemoryInterpreter;
413
444
  async function waitForReady(log) {
414
- const readyCheckUrl = Deno.env.get('READY_CHECK_URL');
445
+ const readyCheckUrl = Deno.env.get(constants_js_1.envReadyCheckURL);
415
446
  if (!readyCheckUrl) {
416
447
  return Promise.resolve();
417
448
  }
@@ -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';
@@ -10,7 +11,6 @@ import { IssueAPI } from '../../issues/Issues.js';
10
11
  import { Logger } from '../../observability/logging/Logger.js';
11
12
  import { PlatformApi } from '../../services/platform/PlatformApi.js';
12
13
  import { ContextOperatorFunction, TaskCompiler, TriggerCompiler } from './compilers/types.js';
13
- import { ConnectionFactory } from '../../connection/types.js';
14
14
  export type CompilerContext = {
15
15
  compiler: ObservableCompiler;
16
16
  log: Logger;
@@ -23,6 +23,11 @@ export type CompilerContext = {
23
23
  issueProvider: IssueAPI;
24
24
  configReader: ConfigReader;
25
25
  cronRegistry: Map<string, string>;
26
+ webhookRegistry: Map<string, {
27
+ method: string;
28
+ path: string;
29
+ options: any;
30
+ }>;
26
31
  organisationId: string;
27
32
  };
28
33
  export type CompilerFunc<In = any, Out = any, T extends Task<In, Out> = Task<In, Out>> = (ctx: CompilerContext, task: T) => OperatorFunction<In, Out>;
@@ -1 +1 @@
1
- {"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/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;AAEpD,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,wCAAwC,CAAC;AASrE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,MAAM,eAAe,GAAG;IAC1B,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,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,QAAQ,CAAC;IACxB,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,eAAe,EACpB,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;;IAgBxE,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,EACzC,GAAG,EAAE,eAAe,EACpB,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,eAAe,EACpB,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/memory/ObservableCompiler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAoFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
1
+ {"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAsFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
@@ -22,8 +22,11 @@ function compileCatch(compilerCtx, task) {
22
22
  return (src) => src.pipe((0, rxjs_1.mergeMap)((ctx) => {
23
23
  return baseOperator((0, rxjs_1.of)(ctx)).pipe((0, rxjs_1.catchError)((error) => {
24
24
  return compilerCtx.tracer.startActiveSpan(`catch`, (span) => {
25
+ // TODO: do we even want this here? Can't be async in here I believe
26
+ // await sendTaskStartEvent(task.id, span);
25
27
  span.setAttribute('execution.id', ctx.executionId);
26
28
  span.setAttribute('task.type', 'catch');
29
+ span.setAttribute('type', 'task');
27
30
  if (error instanceof Error) {
28
31
  span.recordException(error);
29
32
  span.setAttribute('error.message', error.message);
@@ -37,10 +40,9 @@ function compileCatch(compilerCtx, task) {
37
40
  annotations: {
38
41
  'error': error.message,
39
42
  'stack': error.stack || '',
40
- 'workflowId': ctx.options.workflowId || ctx.workflowId || '',
43
+ 'workflowId': ctx.options.workflowId || ctx.workflowId ||
44
+ '',
41
45
  'executionId': ctx.executionId,
42
- 'activationId': ctx.activation.id,
43
- 'activationExternalId': ctx.activation?.user.externalId,
44
46
  },
45
47
  reason: 'error',
46
48
  severity: 'high',
@@ -49,12 +51,11 @@ function compileCatch(compilerCtx, task) {
49
51
  }
50
52
  compilerCtx.issueProvider.submitIssue({
51
53
  annotations: {
52
- 'error': error.message,
54
+ 'error': error.message || '',
53
55
  'stack': error.stack || '',
54
- 'workflowId': ctx.options.workflowId || ctx.workflowId || '',
56
+ 'workflowId': ctx.options.workflowId || ctx.workflowId ||
57
+ '',
55
58
  'executionId': ctx.executionId,
56
- 'activationId': ctx.activation.id,
57
- 'activationExternalId': ctx.activation?.user.externalId,
58
59
  },
59
60
  reason: 'error',
60
61
  severity: 'low',
@@ -1 +1 @@
1
- {"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/fn.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AA+BnE,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAG/D,CAAC"}
1
+ {"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/fn.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAGtD,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AA6CnE,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAG/D,CAAC"}
@@ -1,33 +1,37 @@
1
1
  "use strict";
2
- /*
3
- * Copyright (c) 2025 Versori Group Inc
4
- *
5
- * Use of this software is governed by the Business Source License 1.1
6
- * included in the LICENSE file at the root of this repository.
7
- *
8
- * Change Date: 2029-01-01
9
- * Change License: Apache License, Version 2.0
10
- *
11
- * As of the Change Date, in accordance with the Business Source License,
12
- * use of this software will be governed by the Apache License, Version 2.0.
13
- */
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.fnCompiler = void 0;
16
4
  const rxjs_1 = require("rxjs");
17
5
  const FnTask_js_1 = require("../../../dsl/tasks/FnTask.js");
6
+ const supervisor_js_1 = require("../../../internal/supervisor.js");
18
7
  function compileFn(compilerCtx, task) {
19
8
  return (src) => src.pipe((0, rxjs_1.tap)({
20
9
  complete: () => compilerCtx.log.debug('fn.complete'),
21
10
  }), (0, rxjs_1.mergeMap)(async (ctx) => {
22
11
  return await compilerCtx.tracer.startActiveSpan(`fn-${task.id}`, async (span) => {
12
+ await (0, supervisor_js_1.sendTaskStartEvent)(task.id, span);
23
13
  span.setAttribute('task.id', task.id);
14
+ span.setAttribute('type', 'task');
15
+ span.setAttribute('task.type', 'fn');
24
16
  span.setAttribute('execution.id', ctx.executionId);
25
- if (typeof ctx.idx === 'number') {
17
+ try {
18
+ let result;
19
+ const spanContext = span.spanContext();
20
+ const ctxWithLogger = ctx.withLogger(ctx.log.child({ spanId: spanContext.spanId, traceId: spanContext.traceId }));
21
+ if (typeof ctx.idx === 'number') {
22
+ result = ctx.withData(await task._fn(ctxWithLogger, ctx.idx));
23
+ }
24
+ else {
25
+ result = ctx.withData(await task._fn(ctxWithLogger));
26
+ }
27
+ if (supervisor_js_1.enabled) {
28
+ span.setAttribute('response.body', JSON.stringify(result.data));
29
+ }
30
+ return result;
31
+ }
32
+ finally {
26
33
  span.end();
27
- return ctx.withData(await task._fn(ctx, ctx.idx));
28
34
  }
29
- span.end();
30
- return ctx.withData(await task._fn(ctx));
31
35
  });
32
36
  }));
33
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/http.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAmB,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAqFnE,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAG5E,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/http.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAmB,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG/E,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAyHnE,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAG5E,CAAC"}