@n8n/engine 0.13.1 → 0.15.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 (75) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/common/errors.d.ts +6 -0
  3. package/dist/common/errors.js +18 -0
  4. package/dist/common/errors.js.map +1 -0
  5. package/dist/common/index.d.ts +1 -0
  6. package/dist/common/index.js +4 -0
  7. package/dist/common/index.js.map +1 -1
  8. package/dist/database/entities/workflow-step-execution.entity.d.ts +4 -1
  9. package/dist/database/entities/workflow-step-execution.entity.js +13 -1
  10. package/dist/database/entities/workflow-step-execution.entity.js.map +1 -1
  11. package/dist/database/migrations/1784890100000-CreateWorkflowStepExecution.js +17 -1
  12. package/dist/database/migrations/1784890100000-CreateWorkflowStepExecution.js.map +1 -1
  13. package/dist/database/typeorm-execution-store.d.ts +5 -1
  14. package/dist/database/typeorm-execution-store.js +16 -1
  15. package/dist/database/typeorm-execution-store.js.map +1 -1
  16. package/dist/database/typeorm-step-store.d.ts +16 -4
  17. package/dist/database/typeorm-step-store.js +91 -4
  18. package/dist/database/typeorm-step-store.js.map +1 -1
  19. package/dist/dependencies/external-dependencies.d.ts +3 -4
  20. package/dist/execution/execution-start-handler.d.ts +10 -0
  21. package/dist/execution/execution-start-handler.js +43 -0
  22. package/dist/execution/execution-start-handler.js.map +1 -0
  23. package/dist/execution/execution-store.d.ts +15 -0
  24. package/dist/execution/execution-store.js +10 -0
  25. package/dist/execution/execution-store.js.map +1 -1
  26. package/dist/execution/execution.types.d.ts +2 -0
  27. package/dist/execution/index.d.ts +10 -3
  28. package/dist/execution/index.js +15 -1
  29. package/dist/execution/index.js.map +1 -1
  30. package/dist/execution/orchestration-worker.d.ts +11 -0
  31. package/dist/execution/orchestration-worker.js +35 -0
  32. package/dist/execution/orchestration-worker.js.map +1 -0
  33. package/dist/execution/start-execution.service.d.ts +4 -3
  34. package/dist/execution/start-execution.service.js +5 -1
  35. package/dist/execution/start-execution.service.js.map +1 -1
  36. package/dist/execution/step-completed-handler.d.ts +13 -0
  37. package/dist/execution/step-completed-handler.js +74 -0
  38. package/dist/execution/step-completed-handler.js.map +1 -0
  39. package/dist/execution/step-ready-handler.d.ts +16 -0
  40. package/dist/execution/step-ready-handler.js +112 -0
  41. package/dist/execution/step-ready-handler.js.map +1 -0
  42. package/dist/execution/step-store.d.ts +33 -3
  43. package/dist/execution/step-store.js +10 -0
  44. package/dist/execution/step-store.js.map +1 -1
  45. package/dist/execution/step-worker.d.ts +9 -0
  46. package/dist/execution/step-worker.js +30 -0
  47. package/dist/execution/step-worker.js.map +1 -0
  48. package/dist/execution/validate-step-context.d.ts +4 -0
  49. package/dist/execution/validate-step-context.js +15 -0
  50. package/dist/execution/validate-step-context.js.map +1 -0
  51. package/dist/graph/index.d.ts +2 -0
  52. package/dist/graph/index.js +8 -0
  53. package/dist/graph/index.js.map +1 -1
  54. package/dist/graph/validate-executable-graph.d.ts +5 -0
  55. package/dist/graph/validate-executable-graph.js +41 -0
  56. package/dist/graph/validate-executable-graph.js.map +1 -0
  57. package/dist/graph/workflow-graph-queries.d.ts +4 -0
  58. package/dist/graph/workflow-graph-queries.js +27 -0
  59. package/dist/graph/workflow-graph-queries.js.map +1 -0
  60. package/dist/graph/workflow-graph.d.ts +2 -2
  61. package/dist/index.d.ts +3 -2
  62. package/dist/index.js +9 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/queue/in-memory-work-queue.d.ts +11 -4
  65. package/dist/queue/in-memory-work-queue.js +44 -2
  66. package/dist/queue/in-memory-work-queue.js.map +1 -1
  67. package/dist/queue/index.d.ts +1 -1
  68. package/dist/queue/index.js.map +1 -1
  69. package/dist/queue/work-queue.types.d.ts +16 -3
  70. package/dist/serve.js +18 -5
  71. package/dist/serve.js.map +1 -1
  72. package/dist/server/create-engine-server.d.ts +2 -2
  73. package/dist/server/routes/workflow-executions.js +12 -2
  74. package/dist/server/routes/workflow-executions.js.map +1 -1
  75. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory-work-queue.js","sourceRoot":"","sources":["../../src/queue/in-memory-work-queue.ts"],"names":[],"mappings":";;;AASA;IACU,QAAQ,GAAuB,EAAE,CAAC;IAG3C,KAAK,CAAC,OAAO,CAAC,OAAyB;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;CACD"}
1
+ {"version":3,"file":"in-memory-work-queue.js","sourceRoot":"","sources":["../../src/queue/in-memory-work-queue.ts"],"names":[],"mappings":";;;AAMA;IACS,OAAO,GAAe,EAAE,CAAC;IAEzB,OAAO,CAAqD;IAE5D,WAAW,GAAG,KAAK,CAAC;IAEpB,WAAW,GAAsB,EAAE,CAAC;IAG5C,KAAK,CAAC,OAAO,CAAC,OAAiB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAA6C;QAClD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI;QACT,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAGzB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IAMO,iBAAiB;QACxB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC3E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC/C,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe;QAC5B,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC;oBACJ,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAEhB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;gBAC3D,CAAC;YACF,CAAC;QACF,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,KAAK,MAAM,OAAO,IAAI,OAAO;gBAAE,OAAO,EAAE,CAAC;QAC1C,CAAC;IACF,CAAC;CACD"}
@@ -1,2 +1,2 @@
1
- export type { ExecutionEnqueuedEvent, WorkQueue, WorkQueueMessage, } from './work-queue.types';
1
+ export type { ExecutionEnqueuedEvent, OrchestrationMessage, StepCompletedEvent, StepMessage, StepReadyEvent, WorkQueue, } from './work-queue.types';
2
2
  export { InMemoryWorkQueue } from './in-memory-work-queue';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":";;;AAKA,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":";;;AAQA,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA"}
@@ -2,7 +2,20 @@ export interface ExecutionEnqueuedEvent {
2
2
  type: 'execution:enqueued';
3
3
  executionId: string;
4
4
  }
5
- export type WorkQueueMessage = ExecutionEnqueuedEvent;
6
- export interface WorkQueue {
7
- publish(message: WorkQueueMessage): Promise<void>;
5
+ export interface StepCompletedEvent {
6
+ type: 'step:completed';
7
+ executionId: string;
8
+ stepId: string;
9
+ }
10
+ export type OrchestrationMessage = ExecutionEnqueuedEvent | StepCompletedEvent;
11
+ export interface StepReadyEvent {
12
+ type: 'step:ready';
13
+ executionId: string;
14
+ stepId: string;
15
+ }
16
+ export type StepMessage = StepReadyEvent;
17
+ export interface WorkQueue<TMessage> {
18
+ publish(message: TMessage): Promise<void>;
19
+ start(handler: (message: TMessage) => Promise<void>): void;
20
+ stop(): Promise<void>;
8
21
  }
package/dist/serve.js CHANGED
@@ -4,6 +4,7 @@ const config_1 = require("@n8n/config");
4
4
  const di_1 = require("@n8n/di");
5
5
  const admittance_1 = require("./admittance");
6
6
  const database_1 = require("./database");
7
+ const execution_1 = require("./execution");
7
8
  const queue_1 = require("./queue");
8
9
  const server_1 = require("./server");
9
10
  async function main() {
@@ -17,12 +18,20 @@ async function main() {
17
18
  else {
18
19
  console.warn('engine: N8N_ENGINE_DATABASE_URL not set; running in healthcheck-only mode (workflow execution endpoints disabled)');
19
20
  }
21
+ const orchestrationQueue = new queue_1.InMemoryWorkQueue();
22
+ const stepQueue = new queue_1.InMemoryWorkQueue();
23
+ let orchestrationWorker;
24
+ let stepWorker;
25
+ if (dataSource) {
26
+ const executionStore = new database_1.TypeOrmExecutionStore(dataSource.getRepository(database_1.WorkflowExecution));
27
+ const stepStore = new database_1.TypeOrmStepStore(dataSource.getRepository(database_1.WorkflowStepExecution));
28
+ orchestrationWorker = new execution_1.OrchestrationWorker(orchestrationQueue, new execution_1.ExecutionStartHandler(executionStore, stepStore, orchestrationQueue), new execution_1.StepCompletedHandler(executionStore, stepStore, stepQueue));
29
+ stepWorker = new execution_1.StepWorker(stepQueue, new execution_1.StepReadyHandler(executionStore, stepStore, orchestrationQueue, {}));
30
+ orchestrationWorker.start();
31
+ stepWorker.start();
32
+ }
20
33
  const { app } = (0, server_1.createEngineServer)(dataSource
21
- ? {
22
- dataSource,
23
- admittance: new admittance_1.AllowAllAdmittance(),
24
- workQueue: new queue_1.InMemoryWorkQueue(),
25
- }
34
+ ? { dataSource, admittance: new admittance_1.AllowAllAdmittance(), workQueue: orchestrationQueue }
26
35
  : undefined);
27
36
  const server = app.listen(config.port, config.host, () => {
28
37
  console.log(`engine: listening on http://${config.host}:${config.port}`);
@@ -36,6 +45,10 @@ async function main() {
36
45
  await new Promise((resolve, reject) => {
37
46
  server.close((error) => (error ? reject(error) : resolve()));
38
47
  });
48
+ if (orchestrationWorker)
49
+ await orchestrationWorker.stop();
50
+ if (stepWorker)
51
+ await stepWorker.stop();
39
52
  if (dataSource?.isInitialized)
40
53
  await dataSource.destroy();
41
54
  process.exit(0);
package/dist/serve.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":";;AAAA,wCAA2C;AAC3C,gCAAoC;AAGpC,6CAAkD;AAClD,yCAA8C;AAC9C,mCAA4C;AAC5C,qCAA8C;AAE9C,KAAK,UAAU,IAAI;IAClB,MAAM,MAAM,GAAG,cAAS,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC;IAE3C,IAAI,UAAkC,CAAC;IACvC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,UAAU,GAAG,IAAA,2BAAgB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,IAAI,CACX,mHAAmH,CACnH,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,IAAA,2BAAkB,EACjC,UAAU;QACT,CAAC,CAAC;YACA,UAAU;YACV,UAAU,EAAE,IAAI,+BAAkB,EAAE;YACpC,SAAS,EAAE,IAAI,yBAAiB,EAAE;SAClC;QACF,CAAC,CAAC,SAAS,CACZ,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACxD,OAAO,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;QACxD,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,iBAAiB,CAAC,CAAC;QACzD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,aAAa;YAAE,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAQ,EAAE;QACzC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACzC,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC/B,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import type { DataSource } from '@n8n/typeorm';
2
2
  import { type Application } from 'express';
3
3
  import type { AdmittanceService } from '../admittance';
4
- import type { WorkQueue } from '../queue';
4
+ import type { OrchestrationMessage, WorkQueue } from '../queue';
5
5
  export interface EngineServerDeps {
6
6
  dataSource: DataSource;
7
7
  admittance: AdmittanceService;
8
- workQueue: WorkQueue;
8
+ workQueue: WorkQueue<OrchestrationMessage>;
9
9
  }
10
10
  export declare function createEngineServer(deps?: EngineServerDeps): {
11
11
  app: Application;
@@ -4,6 +4,8 @@ exports.createWorkflowExecutionsRouter = createWorkflowExecutionsRouter;
4
4
  const express_1 = require("express");
5
5
  const zod_1 = require("zod");
6
6
  const admittance_1 = require("../../admittance");
7
+ const common_1 = require("../../common");
8
+ const graph_1 = require("../../graph");
7
9
  const jsonValueSchema = zod_1.z.lazy(() => zod_1.z.union([
8
10
  zod_1.z.string(),
9
11
  zod_1.z.number(),
@@ -23,8 +25,8 @@ const GraphNodeSchema = zod_1.z.object({
23
25
  const GraphEdgeSchema = zod_1.z.object({
24
26
  from: zod_1.z.string(),
25
27
  to: zod_1.z.string(),
26
- outputIndex: zod_1.z.number().int().nonnegative().optional(),
27
- inputIndex: zod_1.z.number().int().nonnegative().optional(),
28
+ outputIndex: zod_1.z.number().int().nonnegative().default(0),
29
+ inputIndex: zod_1.z.number().int().nonnegative().default(0),
28
30
  isBackEdge: zod_1.z.boolean().optional(),
29
31
  });
30
32
  const WorkflowGraphSchema = zod_1.z.object({
@@ -57,6 +59,14 @@ function createWorkflowExecutionsRouter(startExecution) {
57
59
  res.status(429).json({ error: 'admittance_rejected', reason: error.reason });
58
60
  return;
59
61
  }
62
+ if (error instanceof graph_1.GraphValidationError) {
63
+ res.status(400).json({ error: 'invalid_graph', reason: error.message });
64
+ return;
65
+ }
66
+ if (error instanceof common_1.UnimplementedError) {
67
+ res.status(501).json({ error: 'unimplemented', reason: error.message });
68
+ return;
69
+ }
60
70
  throw error;
61
71
  }
62
72
  });
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-executions.js","sourceRoot":"","sources":["../../../src/server/routes/workflow-executions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-executions.js","sourceRoot":"","sources":["../../../src/server/routes/workflow-executions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@n8n/engine",
3
- "version": "0.13.1",
3
+ "version": "0.15.0",
4
4
  "description": "n8n workflow execution engine (v2)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
8
  "dist/**/*",
9
- "LICENSE.md",
10
- "LICENSE_EE.md"
9
+ "LICENSE_EE.md",
10
+ "LICENSE.md"
11
11
  ],
12
12
  "dependencies": {
13
13
  "express": "5.1.0",
14
14
  "pg": "8.21.0",
15
15
  "reflect-metadata": "0.2.2",
16
16
  "uuid": "11.1.1",
17
- "zod": "3.25.67",
17
+ "zod": "3.25.76",
18
+ "@n8n/config": "2.33.0",
18
19
  "@n8n/di": "0.16.0",
19
- "@n8n/config": "2.31.1",
20
20
  "@n8n/typeorm": "0.7.0"
21
21
  },
22
22
  "devDependencies": {
@@ -28,8 +28,8 @@
28
28
  "testcontainers": "^11.13.0",
29
29
  "typescript": "7.0.2",
30
30
  "vitest": "^4.1.9",
31
- "@n8n/typescript-config": "1.9.0",
32
- "@n8n/vitest-config": "1.19.0"
31
+ "@n8n/vitest-config": "1.20.0",
32
+ "@n8n/typescript-config": "1.9.0"
33
33
  },
34
34
  "license": "SEE LICENSE IN LICENSE.md",
35
35
  "homepage": "https://n8n.io",