n8n 1.67.1 → 1.69.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/README.md +1 -1
  2. package/dist/auth/auth.service.js +2 -0
  3. package/dist/auth/auth.service.js.map +1 -1
  4. package/dist/build.tsbuildinfo +1 -1
  5. package/dist/commands/start.js +1 -1
  6. package/dist/commands/start.js.map +1 -1
  7. package/dist/commands/worker.js +4 -1
  8. package/dist/commands/worker.js.map +1 -1
  9. package/dist/config/index.d.ts +0 -11
  10. package/dist/config/index.js +1 -0
  11. package/dist/config/index.js.map +1 -1
  12. package/dist/config/schema.d.ts +0 -36
  13. package/dist/config/schema.js +0 -36
  14. package/dist/config/schema.js.map +1 -1
  15. package/dist/constants.d.ts +1 -6
  16. package/dist/constants.js +4 -9
  17. package/dist/constants.js.map +1 -1
  18. package/dist/controllers/oauth/abstract-oauth.controller.d.ts +13 -6
  19. package/dist/controllers/oauth/abstract-oauth.controller.js +29 -5
  20. package/dist/controllers/oauth/abstract-oauth.controller.js.map +1 -1
  21. package/dist/controllers/oauth/oauth1-credential.controller.js +13 -47
  22. package/dist/controllers/oauth/oauth1-credential.controller.js.map +1 -1
  23. package/dist/controllers/oauth/oauth2-credential.controller.js +5 -31
  24. package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
  25. package/dist/databases/entities/execution-entity.js.map +1 -1
  26. package/dist/databases/entities/index.d.ts +1 -1
  27. package/dist/databases/entities/index.js +2 -2
  28. package/dist/databases/entities/index.js.map +1 -1
  29. package/dist/databases/entities/{test-definition.d.ts → test-definition.ee.d.ts} +4 -3
  30. package/dist/databases/entities/{test-definition.js → test-definition.ee.js} +14 -9
  31. package/dist/databases/entities/test-definition.ee.js.map +1 -0
  32. package/dist/databases/migrations/common/1731404028106-AddDescriptionToTestDefinition.d.ts +5 -0
  33. package/dist/databases/migrations/common/1731404028106-AddDescriptionToTestDefinition.js +13 -0
  34. package/dist/databases/migrations/common/1731404028106-AddDescriptionToTestDefinition.js.map +1 -0
  35. package/dist/databases/migrations/mysqldb/1690000000001-MigrateIntegerKeysToString.js +6 -5
  36. package/dist/databases/migrations/mysqldb/1690000000001-MigrateIntegerKeysToString.js.map +1 -1
  37. package/dist/databases/migrations/mysqldb/1731582748663-MigrateTestDefinitionKeyToString.d.ts +4 -0
  38. package/dist/databases/migrations/mysqldb/1731582748663-MigrateTestDefinitionKeyToString.js +14 -0
  39. package/dist/databases/migrations/mysqldb/1731582748663-MigrateTestDefinitionKeyToString.js.map +1 -0
  40. package/dist/databases/migrations/mysqldb/index.js +4 -0
  41. package/dist/databases/migrations/mysqldb/index.js.map +1 -1
  42. package/dist/databases/migrations/postgresdb/1731582748663-MigrateTestDefinitionKeyToString.d.ts +4 -0
  43. package/dist/databases/migrations/postgresdb/1731582748663-MigrateTestDefinitionKeyToString.js +20 -0
  44. package/dist/databases/migrations/postgresdb/1731582748663-MigrateTestDefinitionKeyToString.js.map +1 -0
  45. package/dist/databases/migrations/postgresdb/index.js +4 -0
  46. package/dist/databases/migrations/postgresdb/index.js.map +1 -1
  47. package/dist/databases/migrations/sqlite/1731404028106-AddDescriptionToTestDefinition.d.ts +4 -0
  48. package/dist/databases/migrations/sqlite/1731404028106-AddDescriptionToTestDefinition.js +12 -0
  49. package/dist/databases/migrations/sqlite/1731404028106-AddDescriptionToTestDefinition.js.map +1 -0
  50. package/dist/databases/migrations/sqlite/1731582748663-MigrateTestDefinitionKeyToString.d.ts +5 -0
  51. package/dist/databases/migrations/sqlite/1731582748663-MigrateTestDefinitionKeyToString.js +20 -0
  52. package/dist/databases/migrations/sqlite/1731582748663-MigrateTestDefinitionKeyToString.js.map +1 -0
  53. package/dist/databases/migrations/sqlite/index.js +4 -0
  54. package/dist/databases/migrations/sqlite/index.js.map +1 -1
  55. package/dist/databases/repositories/execution.repository.js +5 -5
  56. package/dist/databases/repositories/execution.repository.js.map +1 -1
  57. package/dist/databases/repositories/license-metrics.repository.js +2 -8
  58. package/dist/databases/repositories/license-metrics.repository.js.map +1 -1
  59. package/dist/databases/repositories/test-definition.repository.ee.d.ts +17 -0
  60. package/dist/databases/repositories/test-definition.repository.ee.js +66 -0
  61. package/dist/databases/repositories/test-definition.repository.ee.js.map +1 -0
  62. package/dist/evaluation/test-definition.schema.d.ts +36 -0
  63. package/dist/evaluation/test-definition.schema.js +22 -0
  64. package/dist/evaluation/test-definition.schema.js.map +1 -0
  65. package/dist/evaluation/test-definition.service.ee.d.ts +42 -0
  66. package/dist/evaluation/test-definition.service.ee.js +99 -0
  67. package/dist/evaluation/test-definition.service.ee.js.map +1 -0
  68. package/dist/evaluation/test-definitions.controller.ee.d.ts +22 -0
  69. package/dist/evaluation/test-definitions.controller.ee.js +123 -0
  70. package/dist/evaluation/test-definitions.controller.ee.js.map +1 -0
  71. package/dist/evaluation/test-definitions.types.ee.d.ts +25 -0
  72. package/dist/evaluation/test-definitions.types.ee.js +3 -0
  73. package/dist/evaluation/test-definitions.types.ee.js.map +1 -0
  74. package/dist/events/relays/telemetry.event-relay.js +3 -3
  75. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  76. package/dist/execution-lifecycle-hooks/save-execution-progress.js +1 -1
  77. package/dist/execution-lifecycle-hooks/save-execution-progress.js.map +1 -1
  78. package/dist/execution-lifecycle-hooks/to-save-settings.d.ts +2 -2
  79. package/dist/execution-lifecycle-hooks/to-save-settings.js +7 -12
  80. package/dist/execution-lifecycle-hooks/to-save-settings.js.map +1 -1
  81. package/dist/generic-helpers.d.ts +1 -1
  82. package/dist/interfaces.d.ts +1 -7
  83. package/dist/interfaces.js.map +1 -1
  84. package/dist/load-nodes-and-credentials.js +9 -1
  85. package/dist/load-nodes-and-credentials.js.map +1 -1
  86. package/dist/posthog/index.js +3 -7
  87. package/dist/posthog/index.js.map +1 -1
  88. package/dist/requests.d.ts +2 -2
  89. package/dist/response-helper.js +5 -0
  90. package/dist/response-helper.js.map +1 -1
  91. package/dist/runners/default-task-runner-disconnect-analyzer.d.ts +2 -3
  92. package/dist/runners/default-task-runner-disconnect-analyzer.js +11 -2
  93. package/dist/runners/default-task-runner-disconnect-analyzer.js.map +1 -1
  94. package/dist/runners/errors/missing-auth-token.error.d.ts +3 -0
  95. package/dist/runners/errors/missing-auth-token.error.js +10 -0
  96. package/dist/runners/errors/missing-auth-token.error.js.map +1 -0
  97. package/dist/runners/errors/task-runner-failed-heartbeat.error.d.ts +5 -0
  98. package/dist/runners/errors/task-runner-failed-heartbeat.error.js +25 -0
  99. package/dist/runners/errors/task-runner-failed-heartbeat.error.js.map +1 -0
  100. package/dist/runners/errors/task-runner-oom-error.d.ts +1 -0
  101. package/dist/runners/errors/task-runner-oom-error.js +6 -5
  102. package/dist/runners/errors/task-runner-oom-error.js.map +1 -1
  103. package/dist/runners/errors/task-runner-timeout.error.d.ts +5 -0
  104. package/dist/runners/errors/task-runner-timeout.error.js +25 -0
  105. package/dist/runners/errors/task-runner-timeout.error.js.map +1 -0
  106. package/dist/runners/errors.d.ts +3 -0
  107. package/dist/runners/errors.js +7 -1
  108. package/dist/runners/errors.js.map +1 -1
  109. package/dist/runners/internal-task-runner-disconnect-analyzer.d.ts +2 -2
  110. package/dist/runners/internal-task-runner-disconnect-analyzer.js +3 -3
  111. package/dist/runners/internal-task-runner-disconnect-analyzer.js.map +1 -1
  112. package/dist/runners/runner-lifecycle-events.d.ts +8 -0
  113. package/dist/runners/runner-lifecycle-events.js +18 -0
  114. package/dist/runners/runner-lifecycle-events.js.map +1 -0
  115. package/dist/runners/runner-types.d.ts +7 -7
  116. package/dist/runners/runner-ws-server.d.ts +22 -3
  117. package/dist/runners/runner-ws-server.js +58 -6
  118. package/dist/runners/runner-ws-server.js.map +1 -1
  119. package/dist/runners/task-broker.service.d.ts +10 -3
  120. package/dist/runners/task-broker.service.js +56 -8
  121. package/dist/runners/task-broker.service.js.map +1 -1
  122. package/dist/runners/task-managers/data-request-response-builder.d.ts +3 -15
  123. package/dist/runners/task-managers/data-request-response-builder.js +30 -110
  124. package/dist/runners/task-managers/data-request-response-builder.js.map +1 -1
  125. package/dist/runners/task-managers/data-request-response-stripper.d.ts +15 -0
  126. package/dist/runners/task-managers/data-request-response-stripper.js +85 -0
  127. package/dist/runners/task-managers/data-request-response-stripper.js.map +1 -0
  128. package/dist/runners/task-managers/task-manager.d.ts +2 -0
  129. package/dist/runners/task-managers/task-manager.js +37 -4
  130. package/dist/runners/task-managers/task-manager.js.map +1 -1
  131. package/dist/runners/task-runner-module.js +26 -11
  132. package/dist/runners/task-runner-module.js.map +1 -1
  133. package/dist/runners/task-runner-process.d.ts +4 -4
  134. package/dist/runners/task-runner-process.js +27 -41
  135. package/dist/runners/task-runner-process.js.map +1 -1
  136. package/dist/runners/task-runner-server.d.ts +2 -2
  137. package/dist/runners/task-runner-server.js +16 -16
  138. package/dist/runners/task-runner-server.js.map +1 -1
  139. package/dist/scaling/multi-main-setup.ee.js +1 -1
  140. package/dist/scaling/multi-main-setup.ee.js.map +1 -1
  141. package/dist/security-audit/risk-reporters/instance-risk-reporter.js +1 -1
  142. package/dist/security-audit/risk-reporters/instance-risk-reporter.js.map +1 -1
  143. package/dist/server.d.ts +1 -0
  144. package/dist/server.js +1 -0
  145. package/dist/server.js.map +1 -1
  146. package/dist/services/cache/cache.service.js +1 -1
  147. package/dist/services/cache/cache.service.js.map +1 -1
  148. package/dist/services/community-packages.service.js +1 -0
  149. package/dist/services/community-packages.service.js.map +1 -1
  150. package/dist/services/frontend.service.js +10 -9
  151. package/dist/services/frontend.service.js.map +1 -1
  152. package/dist/services/ownership.service.js +1 -3
  153. package/dist/services/ownership.service.js.map +1 -1
  154. package/dist/services/pruning/pruning.service.d.ts +3 -3
  155. package/dist/services/pruning/pruning.service.js +6 -6
  156. package/dist/services/pruning/pruning.service.js.map +1 -1
  157. package/dist/sso/saml/errors/invalid-saml-metadata.error.d.ts +4 -0
  158. package/dist/sso/saml/errors/invalid-saml-metadata.error.js +11 -0
  159. package/dist/sso/saml/errors/invalid-saml-metadata.error.js.map +1 -0
  160. package/dist/sso/saml/saml-validator.js +18 -49
  161. package/dist/sso/saml/saml-validator.js.map +1 -1
  162. package/dist/sso/saml/saml.service.ee.d.ts +1 -0
  163. package/dist/sso/saml/saml.service.ee.js +22 -6
  164. package/dist/sso/saml/saml.service.ee.js.map +1 -1
  165. package/dist/sso/saml/schema/metadata-exchange.xsd.d.ts +2 -0
  166. package/dist/sso/saml/schema/metadata-exchange.xsd.js +119 -0
  167. package/dist/sso/saml/schema/metadata-exchange.xsd.js.map +1 -0
  168. package/dist/sso/saml/schema/oasis-200401-wss-wssecurity-secext-1.0.xsd.d.ts +2 -0
  169. package/dist/sso/saml/schema/oasis-200401-wss-wssecurity-secext-1.0.xsd.js +202 -0
  170. package/dist/sso/saml/schema/oasis-200401-wss-wssecurity-secext-1.0.xsd.js.map +1 -0
  171. package/dist/sso/saml/schema/oasis-200401-wss-wssecurity-utility-1.0.xsd.d.ts +2 -0
  172. package/dist/sso/saml/schema/oasis-200401-wss-wssecurity-utility-1.0.xsd.js +115 -0
  173. package/dist/sso/saml/schema/oasis-200401-wss-wssecurity-utility-1.0.xsd.js.map +1 -0
  174. package/dist/sso/saml/schema/saml-schema-assertion-2.0.xsd.d.ts +2 -1
  175. package/dist/sso/saml/schema/saml-schema-assertion-2.0.xsd.js +6 -3
  176. package/dist/sso/saml/schema/saml-schema-assertion-2.0.xsd.js.map +1 -1
  177. package/dist/sso/saml/schema/saml-schema-metadata-2.0.xsd.d.ts +2 -1
  178. package/dist/sso/saml/schema/saml-schema-metadata-2.0.xsd.js +8 -3
  179. package/dist/sso/saml/schema/saml-schema-metadata-2.0.xsd.js.map +1 -1
  180. package/dist/sso/saml/schema/saml-schema-protocol-2.0.xsd.d.ts +2 -1
  181. package/dist/sso/saml/schema/saml-schema-protocol-2.0.xsd.js +6 -3
  182. package/dist/sso/saml/schema/saml-schema-protocol-2.0.xsd.js.map +1 -1
  183. package/dist/sso/saml/schema/ws-addr.xsd.d.ts +2 -0
  184. package/dist/sso/saml/schema/ws-addr.xsd.js +144 -0
  185. package/dist/sso/saml/schema/ws-addr.xsd.js.map +1 -0
  186. package/dist/sso/saml/schema/ws-authorization.xsd.d.ts +2 -0
  187. package/dist/sso/saml/schema/ws-authorization.xsd.js +152 -0
  188. package/dist/sso/saml/schema/ws-authorization.xsd.js.map +1 -0
  189. package/dist/sso/saml/schema/ws-federation.xsd.d.ts +2 -0
  190. package/dist/sso/saml/schema/ws-federation.xsd.js +477 -0
  191. package/dist/sso/saml/schema/ws-federation.xsd.js.map +1 -0
  192. package/dist/sso/saml/schema/ws-securitypolicy-1.2.xsd.d.ts +2 -0
  193. package/dist/sso/saml/schema/ws-securitypolicy-1.2.xsd.js +1212 -0
  194. package/dist/sso/saml/schema/ws-securitypolicy-1.2.xsd.js.map +1 -0
  195. package/dist/sso/saml/schema/xenc-schema.xsd.d.ts +2 -1
  196. package/dist/sso/saml/schema/xenc-schema.xsd.js +6 -3
  197. package/dist/sso/saml/schema/xenc-schema.xsd.js.map +1 -1
  198. package/dist/sso/saml/schema/xml.xsd.d.ts +2 -1
  199. package/dist/sso/saml/schema/xml.xsd.js +6 -3
  200. package/dist/sso/saml/schema/xml.xsd.js.map +1 -1
  201. package/dist/sso/saml/schema/xmldsig-core-schema.xsd.d.ts +2 -1
  202. package/dist/sso/saml/schema/xmldsig-core-schema.xsd.js +6 -3
  203. package/dist/sso/saml/schema/xmldsig-core-schema.xsd.js.map +1 -1
  204. package/dist/subworkflows/subworkflow-policy-checker.service.js +1 -3
  205. package/dist/subworkflows/subworkflow-policy-checker.service.js.map +1 -1
  206. package/dist/telemetry/index.js +2 -4
  207. package/dist/telemetry/index.js.map +1 -1
  208. package/dist/webhooks/waiting-forms.d.ts +3 -0
  209. package/dist/webhooks/waiting-forms.js +24 -20
  210. package/dist/webhooks/waiting-forms.js.map +1 -1
  211. package/dist/webhooks/waiting-webhooks.js +1 -1
  212. package/dist/webhooks/waiting-webhooks.js.map +1 -1
  213. package/dist/webhooks/webhook-helpers.js +3 -0
  214. package/dist/webhooks/webhook-helpers.js.map +1 -1
  215. package/dist/workflow-execute-additional-data.d.ts +3 -4
  216. package/dist/workflow-execute-additional-data.js +36 -44
  217. package/dist/workflow-execute-additional-data.js.map +1 -1
  218. package/dist/workflows/workflow-history/workflow-history-manager.ee.js +2 -2
  219. package/dist/workflows/workflow-history/workflow-history-manager.ee.js.map +1 -1
  220. package/package.json +11 -10
  221. package/templates/form-trigger-409.handlebars +74 -0
  222. package/templates/form-trigger.handlebars +1 -8
  223. package/dist/databases/entities/test-definition.js.map +0 -1
  224. package/dist/workflows/workflow-history/constants.d.ts +0 -1
  225. package/dist/workflows/workflow-history/constants.js +0 -6
  226. package/dist/workflows/workflow-history/constants.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"task-runner-oom-error.js","sourceRoot":"","sources":["../../../src/runners/errors/task-runner-oom-error.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAIhD,MAAa,kBAAmB,SAAQ,+BAAgB;IAGvD,YAAY,QAA0B,EAAE,iBAA0B;QACjE,KAAK,CAAC,gBAAgB,QAAQ,sBAAsB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAE1E,MAAM,cAAc,GAAG;YACtB,WAAW,EAAE,uEAAuE;YACpF,cAAc,EACb,8GAA8G;YAC/G,WAAW,EAAE,2DAA2D;SACxE,CAAC;QAEF,MAAM,QAAQ,GACb,4IAA4I,CAAC;QAC9I,MAAM,WAAW,GAAG,iBAAiB;YACpC,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC;YAC1D,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,WAAW;aACjC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;aACzD,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhB,MAAM,WAAW,GAAG,GAAG,QAAQ,aAAa,eAAe,EAAE,CAAC;QAE9D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;CACD;AA1BD,gDA0BC"}
1
+ {"version":3,"file":"task-runner-oom-error.js","sourceRoot":"","sources":["../../../src/runners/errors/task-runner-oom-error.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAIhD,MAAa,kBAAmB,SAAQ,+BAAgB;IAGvD,YACiB,QAA0B,EAC1C,iBAA0B;QAE1B,KAAK,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAHrC,aAAQ,GAAR,QAAQ,CAAkB;QAK1C,MAAM,cAAc,GAAG;YACtB,WAAW,EACV,oFAAoF;YACrF,cAAc,EACb,6GAA6G;YAC9G,WAAW,EAAE,0DAA0D;SACvE,CAAC;QAEF,MAAM,QAAQ,GACb,2FAA2F,CAAC;QAC7F,MAAM,WAAW,GAAG,iBAAiB;YACpC,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC;YAC1D,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,WAAW;aACjC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;aACzD,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhB,MAAM,WAAW,GAAG,GAAG,QAAQ,aAAa,eAAe,EAAE,CAAC;QAE9D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;CACD;AA9BD,gDA8BC"}
@@ -0,0 +1,5 @@
1
+ import { ApplicationError } from 'n8n-workflow';
2
+ export declare class TaskRunnerTimeoutError extends ApplicationError {
3
+ description: string;
4
+ constructor(taskTimeout: number, isSelfHosted: boolean);
5
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskRunnerTimeoutError = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class TaskRunnerTimeoutError extends n8n_workflow_1.ApplicationError {
6
+ constructor(taskTimeout, isSelfHosted) {
7
+ super(`Task execution timed out after ${taskTimeout} ${taskTimeout === 1 ? 'second' : 'seconds'}`);
8
+ const subtitle = 'The task runner was taking too long on this task, so it was suspected of being unresponsive and restarted, and the task was aborted. You can try the following:';
9
+ const fixes = {
10
+ optimizeScript: 'Optimize your script to prevent long-running tasks, e.g. by processing data in smaller batches.',
11
+ ensureTermination: 'Ensure that all paths in your script are able to terminate, i.e. no infinite loops.',
12
+ increaseTimeout: `If your task can reasonably take more than ${taskTimeout} ${taskTimeout === 1 ? 'second' : 'seconds'}, increase the timeout using the N8N_RUNNERS_TASK_TIMEOUT environment variable.`,
13
+ };
14
+ const suggestions = [fixes.optimizeScript, fixes.ensureTermination];
15
+ if (isSelfHosted)
16
+ suggestions.push(fixes.increaseTimeout);
17
+ const suggestionsText = suggestions
18
+ .map((suggestion, index) => `${index + 1}. ${suggestion}`)
19
+ .join('<br/>');
20
+ const description = `${subtitle}<br/><br/>${suggestionsText}`;
21
+ this.description = description;
22
+ }
23
+ }
24
+ exports.TaskRunnerTimeoutError = TaskRunnerTimeoutError;
25
+ //# sourceMappingURL=task-runner-timeout.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-runner-timeout.error.js","sourceRoot":"","sources":["../../../src/runners/errors/task-runner-timeout.error.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,MAAa,sBAAuB,SAAQ,+BAAgB;IAG3D,YAAY,WAAmB,EAAE,YAAqB;QACrD,KAAK,CACJ,kCAAkC,WAAW,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAC3F,CAAC;QAEF,MAAM,QAAQ,GACb,iKAAiK,CAAC;QAEnK,MAAM,KAAK,GAAG;YACb,cAAc,EACb,iGAAiG;YAClG,iBAAiB,EAChB,qFAAqF;YACtF,eAAe,EAAE,8CAA8C,WAAW,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,iFAAiF;SACvM,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEpE,IAAI,YAAY;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAE1D,MAAM,eAAe,GAAG,WAAW;aACjC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;aACzD,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhB,MAAM,WAAW,GAAG,GAAG,QAAQ,aAAa,eAAe,EAAE,CAAC;QAE9D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;CACD;AA/BD,wDA+BC"}
@@ -3,5 +3,8 @@ export declare class TaskRejectError extends ApplicationError {
3
3
  reason: string;
4
4
  constructor(reason: string);
5
5
  }
6
+ export declare class TaskDeferredError extends ApplicationError {
7
+ constructor();
8
+ }
6
9
  export declare class TaskError extends ApplicationError {
7
10
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TaskError = exports.TaskRejectError = void 0;
3
+ exports.TaskError = exports.TaskDeferredError = exports.TaskRejectError = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
5
  class TaskRejectError extends n8n_workflow_1.ApplicationError {
6
6
  constructor(reason) {
@@ -9,6 +9,12 @@ class TaskRejectError extends n8n_workflow_1.ApplicationError {
9
9
  }
10
10
  }
11
11
  exports.TaskRejectError = TaskRejectError;
12
+ class TaskDeferredError extends n8n_workflow_1.ApplicationError {
13
+ constructor() {
14
+ super('Task deferred until runner is ready', { level: 'info' });
15
+ }
16
+ }
17
+ exports.TaskDeferredError = TaskDeferredError;
12
18
  class TaskError extends n8n_workflow_1.ApplicationError {
13
19
  }
14
20
  exports.TaskError = TaskError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/runners/errors.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,MAAa,eAAgB,SAAQ,+BAAgB;IACpD,YAAmB,MAAc;QAChC,KAAK,CAAC,8BAA8B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAD/C,WAAM,GAAN,MAAM,CAAQ;IAEjC,CAAC;CACD;AAJD,0CAIC;AAED,MAAa,SAAU,SAAQ,+BAAgB;CAAG;AAAlD,8BAAkD"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/runners/errors.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,MAAa,eAAgB,SAAQ,+BAAgB;IACpD,YAAmB,MAAc;QAChC,KAAK,CAAC,8BAA8B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAD/C,WAAM,GAAN,MAAM,CAAQ;IAEjC,CAAC;CACD;AAJD,0CAIC;AAED,MAAa,iBAAkB,SAAQ,+BAAgB;IACtD;QACC,KAAK,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACjE,CAAC;CACD;AAJD,8CAIC;AAED,MAAa,SAAU,SAAQ,+BAAgB;CAAG;AAAlD,8BAAkD"}
@@ -1,6 +1,6 @@
1
1
  import { TaskRunnersConfig } from '@n8n/config';
2
2
  import { DefaultTaskRunnerDisconnectAnalyzer } from './default-task-runner-disconnect-analyzer';
3
- import type { TaskRunner } from './task-broker.service';
3
+ import type { DisconnectErrorOptions } from './runner-types';
4
4
  import { TaskRunnerProcess } from './task-runner-process';
5
5
  export declare class InternalTaskRunnerDisconnectAnalyzer extends DefaultTaskRunnerDisconnectAnalyzer {
6
6
  private readonly runnerConfig;
@@ -8,6 +8,6 @@ export declare class InternalTaskRunnerDisconnectAnalyzer extends DefaultTaskRun
8
8
  private get isCloudDeployment();
9
9
  private readonly exitReasonSignal;
10
10
  constructor(runnerConfig: TaskRunnersConfig, taskRunnerProcess: TaskRunnerProcess);
11
- determineDisconnectReason(runnerId: TaskRunner['id']): Promise<Error>;
11
+ toDisconnectError(opts: DisconnectErrorOptions): Promise<Error>;
12
12
  private awaitExitSignal;
13
13
  }
@@ -32,12 +32,12 @@ let InternalTaskRunnerDisconnectAnalyzer = class InternalTaskRunnerDisconnectAna
32
32
  windowSizeInMs: 500,
33
33
  });
34
34
  }
35
- async determineDisconnectReason(runnerId) {
35
+ async toDisconnectError(opts) {
36
36
  const exitCode = await this.awaitExitSignal();
37
37
  if (exitCode === 'oom') {
38
- return new task_runner_oom_error_1.TaskRunnerOomError(runnerId, this.isCloudDeployment);
38
+ return new task_runner_oom_error_1.TaskRunnerOomError(opts.runnerId ?? 'Unknown runner ID', this.isCloudDeployment);
39
39
  }
40
- return await super.determineDisconnectReason(runnerId);
40
+ return await super.toDisconnectError(opts);
41
41
  }
42
42
  async awaitExitSignal() {
43
43
  if (this.runnerConfig.mode === 'external') {
@@ -1 +1 @@
1
- {"version":3,"file":"internal-task-runner-disconnect-analyzer.js","sourceRoot":"","sources":["../../src/runners/internal-task-runner-disconnect-analyzer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wCAAgD;AAChD,mCAAiC;AAEjC,sDAA8B;AAE9B,uGAAgG;AAChG,0EAAoE;AACpE,mEAA8D;AAG9D,+DAA0D;AAOnD,IAAM,oCAAoC,GAA1C,MAAM,oCAAqC,SAAQ,6EAAmC;IAC5F,IAAY,iBAAiB;QAC5B,OAAO,gBAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC;IAClD,CAAC;IAID,YACkB,YAA+B,EAC/B,iBAAoC;QAErD,KAAK,EAAE,CAAC;QAHS,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,sBAAiB,GAAjB,iBAAiB,CAAmB;QASrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,2CAAmB,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;YAC/E,cAAc,EAAE,GAAG;SACnB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,QAA0B;QACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,IAAI,0CAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,MAAM,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,eAAe;QAC5B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAI3C,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAE/D,OAAO,cAAc,EAAE,MAAM,IAAI,SAAS,CAAC;IAC5C,CAAC;CACD,CAAA;AA5CY,oFAAoC;+CAApC,oCAAoC;IADhD,IAAA,gBAAO,GAAE;qCASuB,0BAAiB;QACZ,uCAAiB;GAT1C,oCAAoC,CA4ChD"}
1
+ {"version":3,"file":"internal-task-runner-disconnect-analyzer.js","sourceRoot":"","sources":["../../src/runners/internal-task-runner-disconnect-analyzer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wCAAgD;AAChD,mCAAiC;AAEjC,sDAA8B;AAE9B,uGAAgG;AAChG,0EAAoE;AAEpE,mEAA8D;AAE9D,+DAA0D;AAOnD,IAAM,oCAAoC,GAA1C,MAAM,oCAAqC,SAAQ,6EAAmC;IAC5F,IAAY,iBAAiB;QAC5B,OAAO,gBAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC;IAClD,CAAC;IAID,YACkB,YAA+B,EAC/B,iBAAoC;QAErD,KAAK,EAAE,CAAC;QAHS,iBAAY,GAAZ,YAAY,CAAmB;QAC/B,sBAAiB,GAAjB,iBAAiB,CAAmB;QASrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,2CAAmB,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE;YAC/E,cAAc,EAAE,GAAG;SACnB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAA4B;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,IAAI,0CAAkB,CAAC,IAAI,CAAC,QAAQ,IAAI,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7F,CAAC;QAED,OAAO,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,eAAe;QAC5B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAI3C,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAE/D,OAAO,cAAc,EAAE,MAAM,IAAI,SAAS,CAAC;IAC5C,CAAC;CACD,CAAA;AA5CY,oFAAoC;+CAApC,oCAAoC;IADhD,IAAA,gBAAO,GAAE;qCASuB,0BAAiB;QACZ,uCAAiB;GAT1C,oCAAoC,CA4ChD"}
@@ -0,0 +1,8 @@
1
+ import { TypedEmitter } from '../typed-emitter';
2
+ type RunnerLifecycleEventMap = {
3
+ 'runner:failed-heartbeat-check': never;
4
+ 'runner:timed-out-during-task': never;
5
+ };
6
+ export declare class RunnerLifecycleEvents extends TypedEmitter<RunnerLifecycleEventMap> {
7
+ }
8
+ export {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RunnerLifecycleEvents = void 0;
10
+ const typedi_1 = require("typedi");
11
+ const typed_emitter_1 = require("../typed-emitter");
12
+ let RunnerLifecycleEvents = class RunnerLifecycleEvents extends typed_emitter_1.TypedEmitter {
13
+ };
14
+ exports.RunnerLifecycleEvents = RunnerLifecycleEvents;
15
+ exports.RunnerLifecycleEvents = RunnerLifecycleEvents = __decorate([
16
+ (0, typedi_1.Service)()
17
+ ], RunnerLifecycleEvents);
18
+ //# sourceMappingURL=runner-lifecycle-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-lifecycle-events.js","sourceRoot":"","sources":["../../src/runners/runner-lifecycle-events.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAAiC;AAEjC,mDAA+C;AAQxC,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,4BAAqC;CAAG,CAAA;AAAtE,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,gBAAO,GAAE;GACG,qBAAqB,CAAiD"}
@@ -3,14 +3,8 @@ import type { INodeExecutionData } from 'n8n-workflow';
3
3
  import type WebSocket from 'ws';
4
4
  import type { TaskRunner } from './task-broker.service';
5
5
  import type { AuthlessRequest } from '../requests';
6
- export interface TaskDataRequestParams {
7
- dataOfNodes: string[] | 'all';
8
- prevNode: boolean;
9
- input: boolean;
10
- env: boolean;
11
- }
12
6
  export interface DisconnectAnalyzer {
13
- determineDisconnectReason(runnerId: TaskRunner['id']): Promise<Error>;
7
+ toDisconnectError(opts: DisconnectErrorOptions): Promise<Error>;
14
8
  }
15
9
  export type DataRequestType = 'input' | 'node' | 'all';
16
10
  export interface TaskResultData {
@@ -26,3 +20,9 @@ export interface TaskRunnerServerInitRequest extends AuthlessRequest<{}, {}, {},
26
20
  export type TaskRunnerServerInitResponse = Response & {
27
21
  req: TaskRunnerServerInitRequest;
28
22
  };
23
+ export type DisconnectReason = 'shutting-down' | 'failed-heartbeat-check' | 'unknown';
24
+ export type DisconnectErrorOptions = {
25
+ runnerId?: TaskRunner['id'];
26
+ reason?: DisconnectReason;
27
+ heartbeatInterval?: number;
28
+ };
@@ -1,19 +1,38 @@
1
+ import { TaskRunnersConfig } from '@n8n/config';
1
2
  import type { BrokerMessage } from '@n8n/task-runner';
2
3
  import type WebSocket from 'ws';
3
4
  import { Logger } from '../logging/logger.service';
4
5
  import { DefaultTaskRunnerDisconnectAnalyzer } from './default-task-runner-disconnect-analyzer';
5
- import type { DisconnectAnalyzer, TaskRunnerServerInitRequest, TaskRunnerServerInitResponse } from './runner-types';
6
+ import { RunnerLifecycleEvents } from './runner-lifecycle-events';
7
+ import type { DisconnectAnalyzer, DisconnectReason, TaskRunnerServerInitRequest, TaskRunnerServerInitResponse } from './runner-types';
6
8
  import { TaskBroker, type TaskRunner } from './task-broker.service';
9
+ declare const enum WsStatusCode {
10
+ CloseNormal = 1000,
11
+ CloseGoingAway = 1001,
12
+ CloseProtocolError = 1002,
13
+ CloseUnsupportedData = 1003,
14
+ CloseNoStatus = 1005,
15
+ CloseAbnormal = 1006,
16
+ CloseInvalidData = 1007
17
+ }
7
18
  export declare class TaskRunnerWsServer {
8
19
  private readonly logger;
9
20
  private readonly taskBroker;
10
21
  private disconnectAnalyzer;
22
+ private readonly taskTunnersConfig;
23
+ private readonly runnerLifecycleEvents;
11
24
  runnerConnections: Map<TaskRunner['id'], WebSocket>;
12
- constructor(logger: Logger, taskBroker: TaskBroker, disconnectAnalyzer: DefaultTaskRunnerDisconnectAnalyzer);
25
+ private heartbeatTimer;
26
+ constructor(logger: Logger, taskBroker: TaskBroker, disconnectAnalyzer: DefaultTaskRunnerDisconnectAnalyzer, taskTunnersConfig: TaskRunnersConfig, runnerLifecycleEvents: RunnerLifecycleEvents);
27
+ start(): void;
28
+ private startHeartbeatChecks;
29
+ stop(): Promise<void>;
13
30
  setDisconnectAnalyzer(disconnectAnalyzer: DisconnectAnalyzer): void;
14
31
  getDisconnectAnalyzer(): DefaultTaskRunnerDisconnectAnalyzer;
15
32
  sendMessage(id: TaskRunner['id'], message: BrokerMessage.ToRunner.All): void;
16
33
  add(id: TaskRunner['id'], connection: WebSocket): void;
17
- removeConnection(id: TaskRunner['id']): Promise<void>;
34
+ removeConnection(id: TaskRunner['id'], reason?: DisconnectReason, code?: WsStatusCode): Promise<void>;
18
35
  handleRequest(req: TaskRunnerServerInitRequest, _res: TaskRunnerServerInitResponse): void;
36
+ private stopConnectedRunners;
19
37
  }
38
+ export {};
@@ -10,20 +10,63 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.TaskRunnerWsServer = void 0;
13
+ const config_1 = require("@n8n/config");
14
+ const n8n_workflow_1 = require("n8n-workflow");
13
15
  const typedi_1 = require("typedi");
16
+ const constants_1 = require("../constants");
14
17
  const logger_service_1 = require("../logging/logger.service");
15
18
  const default_task_runner_disconnect_analyzer_1 = require("./default-task-runner-disconnect-analyzer");
19
+ const runner_lifecycle_events_1 = require("./runner-lifecycle-events");
16
20
  const task_broker_service_1 = require("./task-broker.service");
17
21
  function heartbeat() {
18
22
  this.isAlive = true;
19
23
  }
24
+ var WsStatusCode;
25
+ (function (WsStatusCode) {
26
+ WsStatusCode[WsStatusCode["CloseNormal"] = 1000] = "CloseNormal";
27
+ WsStatusCode[WsStatusCode["CloseGoingAway"] = 1001] = "CloseGoingAway";
28
+ WsStatusCode[WsStatusCode["CloseProtocolError"] = 1002] = "CloseProtocolError";
29
+ WsStatusCode[WsStatusCode["CloseUnsupportedData"] = 1003] = "CloseUnsupportedData";
30
+ WsStatusCode[WsStatusCode["CloseNoStatus"] = 1005] = "CloseNoStatus";
31
+ WsStatusCode[WsStatusCode["CloseAbnormal"] = 1006] = "CloseAbnormal";
32
+ WsStatusCode[WsStatusCode["CloseInvalidData"] = 1007] = "CloseInvalidData";
33
+ })(WsStatusCode || (WsStatusCode = {}));
20
34
  let TaskRunnerWsServer = class TaskRunnerWsServer {
21
- constructor(logger, taskBroker, disconnectAnalyzer) {
35
+ constructor(logger, taskBroker, disconnectAnalyzer, taskTunnersConfig, runnerLifecycleEvents) {
22
36
  this.logger = logger;
23
37
  this.taskBroker = taskBroker;
24
38
  this.disconnectAnalyzer = disconnectAnalyzer;
39
+ this.taskTunnersConfig = taskTunnersConfig;
40
+ this.runnerLifecycleEvents = runnerLifecycleEvents;
25
41
  this.runnerConnections = new Map();
26
42
  }
43
+ start() {
44
+ this.startHeartbeatChecks();
45
+ }
46
+ startHeartbeatChecks() {
47
+ const { heartbeatInterval } = this.taskTunnersConfig;
48
+ if (heartbeatInterval <= 0) {
49
+ throw new n8n_workflow_1.ApplicationError('Heartbeat interval must be greater than 0');
50
+ }
51
+ this.heartbeatTimer = setInterval(() => {
52
+ for (const [runnerId, connection] of this.runnerConnections.entries()) {
53
+ if (!connection.isAlive) {
54
+ void this.removeConnection(runnerId, 'failed-heartbeat-check', 1005);
55
+ this.runnerLifecycleEvents.emit('runner:failed-heartbeat-check');
56
+ return;
57
+ }
58
+ connection.isAlive = false;
59
+ connection.ping();
60
+ }
61
+ }, heartbeatInterval * constants_1.Time.seconds.toMilliseconds);
62
+ }
63
+ async stop() {
64
+ if (this.heartbeatTimer) {
65
+ clearInterval(this.heartbeatTimer);
66
+ this.heartbeatTimer = undefined;
67
+ }
68
+ await this.stopConnectedRunners();
69
+ }
27
70
  setDisconnectAnalyzer(disconnectAnalyzer) {
28
71
  this.disconnectAnalyzer = disconnectAnalyzer;
29
72
  }
@@ -75,24 +118,33 @@ let TaskRunnerWsServer = class TaskRunnerWsServer {
75
118
  connection.on('message', onMessage);
76
119
  connection.send(JSON.stringify({ type: 'broker:inforequest' }));
77
120
  }
78
- async removeConnection(id) {
121
+ async removeConnection(id, reason = 'unknown', code) {
79
122
  const connection = this.runnerConnections.get(id);
80
123
  if (connection) {
81
- const disconnectReason = await this.disconnectAnalyzer.determineDisconnectReason(id);
82
- this.taskBroker.deregisterRunner(id, disconnectReason);
83
- connection.close();
124
+ const disconnectError = await this.disconnectAnalyzer.toDisconnectError({
125
+ runnerId: id,
126
+ reason,
127
+ heartbeatInterval: this.taskTunnersConfig.heartbeatInterval,
128
+ });
129
+ this.taskBroker.deregisterRunner(id, disconnectError);
130
+ connection.close(code);
84
131
  this.runnerConnections.delete(id);
85
132
  }
86
133
  }
87
134
  handleRequest(req, _res) {
88
135
  this.add(req.query.id, req.ws);
89
136
  }
137
+ async stopConnectedRunners() {
138
+ await Promise.all(Array.from(this.runnerConnections.keys()).map(async (id) => await this.removeConnection(id, 'shutting-down', 1001)));
139
+ }
90
140
  };
91
141
  exports.TaskRunnerWsServer = TaskRunnerWsServer;
92
142
  exports.TaskRunnerWsServer = TaskRunnerWsServer = __decorate([
93
143
  (0, typedi_1.Service)(),
94
144
  __metadata("design:paramtypes", [logger_service_1.Logger,
95
145
  task_broker_service_1.TaskBroker,
96
- default_task_runner_disconnect_analyzer_1.DefaultTaskRunnerDisconnectAnalyzer])
146
+ default_task_runner_disconnect_analyzer_1.DefaultTaskRunnerDisconnectAnalyzer,
147
+ config_1.TaskRunnersConfig,
148
+ runner_lifecycle_events_1.RunnerLifecycleEvents])
97
149
  ], TaskRunnerWsServer);
98
150
  //# sourceMappingURL=runner-ws-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-ws-server.js","sourceRoot":"","sources":["../../src/runners/runner-ws-server.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAiC;AAGjC,6DAAkD;AAElD,uGAAgG;AAMhG,+DAA0F;AAE1F,SAAS,SAAS;IACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,CAAC;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAG9B,YACkB,MAAc,EACd,UAAsB,EAC/B,kBAAuD;QAF9C,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAY;QAC/B,uBAAkB,GAAlB,kBAAkB,CAAqC;QALhE,sBAAiB,GAAqC,IAAI,GAAG,EAAE,CAAC;IAM7D,CAAC;IAEJ,qBAAqB,CAAC,kBAAsC;QAC3D,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC9C,CAAC;IAED,qBAAqB;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,EAAoB,EAAE,OAAmC;QACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,GAAG,CAAC,EAAoB,EAAE,UAAqB;QAC9C,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEjC,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,MAAM,SAAS,GAAG,KAAK,EAAE,IAAuB,EAAE,EAAE;YACnD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE7E,MAAM,OAAO,GAA+B,IAAI,CAAC,KAAK,CACrD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CACO,CAAC;gBAEhC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACpD,OAAO;gBACR,CAAC;qBAAM,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC3D,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;oBAChC,WAAW,GAAG,IAAI,CAAC;oBAEnB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBAE3C,IAAI,CAAC,UAAU,CAAC,cAAc,CAC7B;wBACC,EAAE;wBACF,SAAS,EAAE,OAAO,CAAC,KAAK;wBACxB,QAAQ,EAAE,IAAI,IAAI,EAAE;wBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;qBAClB,EACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAoB,CAClD,CAAC;oBAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,IAAI,MAAM,EAAE,uBAAuB,CAAC,CAAC;oBACzE,OAAO;gBACR,CAAC;gBAED,KAAK,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAC/D,KAAK,EAAE,KAAgB;oBACvB,EAAE;oBACF,IAAI;iBACJ,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,CAAC;QAGF,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACnC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAClC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpC,UAAU,CAAC,IAAI,CACd,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAwC,CAAC,CACpF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAoB;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACvD,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,aAAa,CAAC,GAAgC,EAAE,IAAkC;QACjF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;CACD,CAAA;AA7FY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,gBAAO,GAAE;qCAKiB,uBAAM;QACF,gCAAU;QACX,6EAAmC;GANpD,kBAAkB,CA6F9B"}
1
+ {"version":3,"file":"runner-ws-server.js","sourceRoot":"","sources":["../../src/runners/runner-ws-server.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAgD;AAEhD,+CAAgD;AAChD,mCAAiC;AAGjC,2CAAmC;AACnC,6DAAkD;AAElD,uGAAgG;AAChG,uEAAkE;AAOlE,+DAA0F;AAE1F,SAAS,SAAS;IACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,IAAW,YAQV;AARD,WAAW,YAAY;IACtB,gEAAkB,CAAA;IAClB,sEAAqB,CAAA;IACrB,8EAAyB,CAAA;IACzB,kFAA2B,CAAA;IAC3B,oEAAoB,CAAA;IACpB,oEAAoB,CAAA;IACpB,0EAAuB,CAAA;AACxB,CAAC,EARU,YAAY,KAAZ,YAAY,QAQtB;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAK9B,YACkB,MAAc,EACd,UAAsB,EAC/B,kBAAuD,EAC9C,iBAAoC,EACpC,qBAA4C;QAJ5C,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAY;QAC/B,uBAAkB,GAAlB,kBAAkB,CAAqC;QAC9C,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,0BAAqB,GAArB,qBAAqB,CAAuB;QAT9D,sBAAiB,GAAqC,IAAI,GAAG,EAAE,CAAC;IAU7D,CAAC;IAEJ,KAAK;QACJ,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAEO,oBAAoB;QAC3B,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAErD,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,+BAAgB,CAAC,2CAA2C,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBACzB,KAAK,IAAI,CAAC,gBAAgB,CACzB,QAAQ,EACR,wBAAwB,OAExB,CAAC;oBACF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;oBACjE,OAAO;gBACR,CAAC;gBACD,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;gBAC3B,UAAU,CAAC,IAAI,EAAE,CAAC;YACnB,CAAC;QACF,CAAC,EAAE,iBAAiB,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,IAAI;QACT,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACnC,CAAC;IAED,qBAAqB,CAAC,kBAAsC;QAC3D,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC9C,CAAC;IAED,qBAAqB;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,EAAoB,EAAE,OAAmC;QACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,GAAG,CAAC,EAAoB,EAAE,UAAqB;QAC9C,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEjC,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,MAAM,SAAS,GAAG,KAAK,EAAE,IAAuB,EAAE,EAAE;YACnD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE7E,MAAM,OAAO,GAA+B,IAAI,CAAC,KAAK,CACrD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CACO,CAAC;gBAEhC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACpD,OAAO;gBACR,CAAC;qBAAM,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC3D,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;oBAChC,WAAW,GAAG,IAAI,CAAC;oBAEnB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBAE3C,IAAI,CAAC,UAAU,CAAC,cAAc,CAC7B;wBACC,EAAE;wBACF,SAAS,EAAE,OAAO,CAAC,KAAK;wBACxB,QAAQ,EAAE,IAAI,IAAI,EAAE;wBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;qBAClB,EACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAoB,CAClD,CAAC;oBAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,IAAI,MAAM,EAAE,uBAAuB,CAAC,CAAC;oBACzE,OAAO;gBACR,CAAC;gBAED,KAAK,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,EAAE;oBAC/D,KAAK,EAAE,KAAgB;oBACvB,EAAE;oBACF,IAAI;iBACJ,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,CAAC;QAGF,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACnC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAClC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACpC,UAAU,CAAC,IAAI,CACd,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAwC,CAAC,CACpF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,EAAoB,EACpB,SAA2B,SAAS,EACpC,IAAmB;QAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;gBACvE,QAAQ,EAAE,EAAE;gBACZ,MAAM;gBACN,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB;aAC3D,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;YACtD,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,aAAa,CAAC,GAAgC,EAAE,IAAkC;QACjF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAGjC,MAAM,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAC5C,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,eAAe,OAA8B,CAC3F,CACD,CAAC;IACH,CAAC;CACD,CAAA;AAxJY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,gBAAO,GAAE;qCAOiB,uBAAM;QACF,gCAAU;QACX,6EAAmC;QAC3B,0BAAiB;QACb,+CAAqB;GAVlD,kBAAkB,CAwJ9B"}
@@ -1,6 +1,8 @@
1
+ import { TaskRunnersConfig } from '@n8n/config';
1
2
  import type { BrokerMessage, RequesterMessage, RunnerMessage, TaskResultData } from '@n8n/task-runner';
2
3
  import { Logger } from '../logging/logger.service';
3
- import { TaskRejectError } from './errors';
4
+ import { TaskDeferredError, TaskRejectError } from './errors';
5
+ import { RunnerLifecycleEvents } from './runner-lifecycle-events';
4
6
  export interface TaskRunner {
5
7
  id: string;
6
8
  name?: string;
@@ -12,6 +14,7 @@ export interface Task {
12
14
  runnerId: TaskRunner['id'];
13
15
  requesterId: string;
14
16
  taskType: string;
17
+ timeout?: NodeJS.Timeout;
15
18
  }
16
19
  export interface TaskOffer {
17
20
  offerId: string;
@@ -29,9 +32,11 @@ export interface TaskRequest {
29
32
  export type MessageCallback = (message: BrokerMessage.ToRunner.All) => Promise<void> | void;
30
33
  export type RequesterMessageCallback = (message: BrokerMessage.ToRequester.All) => Promise<void> | void;
31
34
  type RunnerAcceptCallback = () => void;
32
- type TaskRejectCallback = (reason: TaskRejectError) => void;
35
+ type TaskRejectCallback = (reason: TaskRejectError | TaskDeferredError) => void;
33
36
  export declare class TaskBroker {
34
37
  private readonly logger;
38
+ private readonly taskRunnersConfig;
39
+ private readonly runnerLifecycleEvents;
35
40
  private knownRunners;
36
41
  private requesters;
37
42
  private tasks;
@@ -39,7 +44,7 @@ export declare class TaskBroker {
39
44
  private requesterAcceptRejects;
40
45
  private pendingTaskOffers;
41
46
  private pendingTaskRequests;
42
- constructor(logger: Logger);
47
+ constructor(logger: Logger, taskRunnersConfig: TaskRunnersConfig, runnerLifecycleEvents: RunnerLifecycleEvents);
43
48
  expireTasks(): void;
44
49
  registerRunner(runner: TaskRunner, messageCallback: MessageCallback): void;
45
50
  deregisterRunner(runnerId: string, error: Error): void;
@@ -51,6 +56,7 @@ export declare class TaskBroker {
51
56
  handleRpcRequest(taskId: Task['id'], callId: string, name: RunnerMessage.ToBroker.RPC['name'], params: unknown[]): Promise<void>;
52
57
  handleRunnerAccept(taskId: Task['id']): void;
53
58
  handleRunnerReject(taskId: Task['id'], reason: string): void;
59
+ handleRunnerDeferred(taskId: Task['id']): void;
54
60
  handleDataRequest(taskId: Task['id'], requestId: RunnerMessage.ToBroker.TaskDataRequest['requestId'], requestParams: RunnerMessage.ToBroker.TaskDataRequest['requestParams']): Promise<void>;
55
61
  handleNodeTypesRequest(taskId: Task['id'], requestId: RunnerMessage.ToBroker.NodeTypesRequest['requestId'], requestParams: RunnerMessage.ToBroker.NodeTypesRequest['requestParams']): Promise<void>;
56
62
  handleResponse(taskId: Task['id'], requestId: RunnerMessage.ToBroker.TaskDataRequest['requestId'], data: unknown): Promise<void>;
@@ -64,6 +70,7 @@ export declare class TaskBroker {
64
70
  private failTask;
65
71
  private getRunnerOrFailTask;
66
72
  sendTaskSettings(taskId: Task['id'], settings: unknown): Promise<void>;
73
+ private handleTaskTimeout;
67
74
  taskDoneHandler(taskId: Task['id'], data: TaskResultData): Promise<void>;
68
75
  taskErrorHandler(taskId: Task['id'], error: unknown): Promise<void>;
69
76
  acceptOffer(offer: TaskOffer, request: TaskRequest): Promise<void>;
@@ -8,16 +8,26 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.TaskBroker = void 0;
16
+ const config_1 = require("@n8n/config");
13
17
  const n8n_workflow_1 = require("n8n-workflow");
14
18
  const nanoid_1 = require("nanoid");
15
19
  const typedi_1 = require("typedi");
20
+ const config_2 = __importDefault(require("../config"));
21
+ const constants_1 = require("../constants");
16
22
  const logger_service_1 = require("../logging/logger.service");
17
23
  const errors_1 = require("./errors");
24
+ const task_runner_timeout_error_1 = require("./errors/task-runner-timeout.error");
25
+ const runner_lifecycle_events_1 = require("./runner-lifecycle-events");
18
26
  let TaskBroker = class TaskBroker {
19
- constructor(logger) {
27
+ constructor(logger, taskRunnersConfig, runnerLifecycleEvents) {
20
28
  this.logger = logger;
29
+ this.taskRunnersConfig = taskRunnersConfig;
30
+ this.runnerLifecycleEvents = runnerLifecycleEvents;
21
31
  this.knownRunners = new Map();
22
32
  this.requesters = new Map();
23
33
  this.tasks = new Map();
@@ -25,11 +35,17 @@ let TaskBroker = class TaskBroker {
25
35
  this.requesterAcceptRejects = new Map();
26
36
  this.pendingTaskOffers = [];
27
37
  this.pendingTaskRequests = [];
38
+ if (this.taskRunnersConfig.taskTimeout <= 0) {
39
+ throw new n8n_workflow_1.ApplicationError('Task timeout must be greater than 0');
40
+ }
28
41
  }
29
42
  expireTasks() {
30
43
  const now = process.hrtime.bigint();
31
44
  for (let i = this.pendingTaskOffers.length - 1; i >= 0; i--) {
32
- if (this.pendingTaskOffers[i].validUntil < now) {
45
+ const offer = this.pendingTaskOffers[i];
46
+ if (offer.validFor === -1)
47
+ continue;
48
+ if (offer.validUntil < now) {
33
49
  this.pendingTaskOffers.splice(i, 1);
34
50
  }
35
51
  }
@@ -76,13 +92,18 @@ let TaskBroker = class TaskBroker {
76
92
  case 'runner:taskrejected':
77
93
  this.handleRunnerReject(message.taskId, message.reason);
78
94
  break;
95
+ case 'runner:taskdeferred':
96
+ this.handleRunnerDeferred(message.taskId);
97
+ break;
79
98
  case 'runner:taskoffer':
80
99
  this.taskOffered({
81
100
  runnerId,
82
101
  taskType: message.taskType,
83
102
  offerId: message.offerId,
84
103
  validFor: message.validFor,
85
- validUntil: process.hrtime.bigint() + BigInt(message.validFor * 1_000_000),
104
+ validUntil: message.validFor === -1
105
+ ? 0n
106
+ : process.hrtime.bigint() + BigInt(message.validFor * 1_000_000),
86
107
  });
87
108
  break;
88
109
  case 'runner:taskdone':
@@ -131,6 +152,13 @@ let TaskBroker = class TaskBroker {
131
152
  this.runnerAcceptRejects.delete(taskId);
132
153
  }
133
154
  }
155
+ handleRunnerDeferred(taskId) {
156
+ const acceptReject = this.runnerAcceptRejects.get(taskId);
157
+ if (acceptReject) {
158
+ acceptReject.reject(new errors_1.TaskDeferredError());
159
+ this.runnerAcceptRejects.delete(taskId);
160
+ }
161
+ }
134
162
  async handleDataRequest(taskId, requestId, requestParams) {
135
163
  const task = this.tasks.get(taskId);
136
164
  if (!task) {
@@ -278,17 +306,30 @@ let TaskBroker = class TaskBroker {
278
306
  }
279
307
  async sendTaskSettings(taskId, settings) {
280
308
  const runner = await this.getRunnerOrFailTask(taskId);
309
+ const task = this.tasks.get(taskId);
310
+ if (!task)
311
+ return;
312
+ task.timeout = setTimeout(async () => {
313
+ await this.handleTaskTimeout(taskId);
314
+ }, this.taskRunnersConfig.taskTimeout * constants_1.Time.seconds.toMilliseconds);
281
315
  await this.messageRunner(runner.id, {
282
316
  type: 'broker:tasksettings',
283
317
  taskId,
284
318
  settings,
285
319
  });
286
320
  }
321
+ async handleTaskTimeout(taskId) {
322
+ const task = this.tasks.get(taskId);
323
+ if (!task)
324
+ return;
325
+ this.runnerLifecycleEvents.emit('runner:timed-out-during-task');
326
+ await this.taskErrorHandler(taskId, new task_runner_timeout_error_1.TaskRunnerTimeoutError(this.taskRunnersConfig.taskTimeout, config_2.default.getEnv('deployment.type') !== 'cloud'));
327
+ }
287
328
  async taskDoneHandler(taskId, data) {
288
329
  const task = this.tasks.get(taskId);
289
- if (!task) {
330
+ if (!task)
290
331
  return;
291
- }
332
+ clearTimeout(task.timeout);
292
333
  await this.requesters.get(task.requesterId)?.({
293
334
  type: 'broker:taskdone',
294
335
  taskId: task.id,
@@ -298,9 +339,9 @@ let TaskBroker = class TaskBroker {
298
339
  }
299
340
  async taskErrorHandler(taskId, error) {
300
341
  const task = this.tasks.get(taskId);
301
- if (!task) {
342
+ if (!task)
302
343
  return;
303
- }
344
+ clearTimeout(task.timeout);
304
345
  await this.requesters.get(task.requesterId)?.({
305
346
  type: 'broker:taskerror',
306
347
  taskId: task.id,
@@ -330,6 +371,11 @@ let TaskBroker = class TaskBroker {
330
371
  this.logger.info(`Task (${taskId}) rejected by Runner with reason "${e.reason}"`);
331
372
  return;
332
373
  }
374
+ if (e instanceof errors_1.TaskDeferredError) {
375
+ this.logger.info(`Task (${taskId}) deferred until runner is ready`);
376
+ this.pendingTaskRequests.push(request);
377
+ return;
378
+ }
333
379
  throw e;
334
380
  }
335
381
  const task = {
@@ -431,6 +477,8 @@ let TaskBroker = class TaskBroker {
431
477
  exports.TaskBroker = TaskBroker;
432
478
  exports.TaskBroker = TaskBroker = __decorate([
433
479
  (0, typedi_1.Service)(),
434
- __metadata("design:paramtypes", [logger_service_1.Logger])
480
+ __metadata("design:paramtypes", [logger_service_1.Logger,
481
+ config_1.TaskRunnersConfig,
482
+ runner_lifecycle_events_1.RunnerLifecycleEvents])
435
483
  ], TaskBroker);
436
484
  //# sourceMappingURL=task-broker.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-broker.service.js","sourceRoot":"","sources":["../../src/runners/task-broker.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-broker.service.js","sourceRoot":"","sources":["../../src/runners/task-broker.service.ts"],"names":[],"mappings":"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"}