@n8n/db 1.29.7 → 1.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/connection/backoff.d.ts +1 -0
  3. package/dist/connection/backoff.js +8 -0
  4. package/dist/connection/backoff.js.map +1 -0
  5. package/dist/connection/db-connection-monitor.d.ts +0 -2
  6. package/dist/connection/db-connection-monitor.js +13 -22
  7. package/dist/connection/db-connection-monitor.js.map +1 -1
  8. package/dist/connection/db-connection.d.ts +1 -0
  9. package/dist/connection/db-connection.js +31 -15
  10. package/dist/connection/db-connection.js.map +1 -1
  11. package/dist/entities/abstract-entity.js +2 -2
  12. package/dist/entities/abstract-entity.js.map +1 -1
  13. package/dist/entities/credentials-entity.d.ts +1 -1
  14. package/dist/entities/execution-entity.d.ts +1 -0
  15. package/dist/entities/execution-entity.js +4 -0
  16. package/dist/entities/execution-entity.js.map +1 -1
  17. package/dist/entities/index.d.ts +5 -1
  18. package/dist/entities/index.js +13 -1
  19. package/dist/entities/index.js.map +1 -1
  20. package/dist/entities/scheduled-job.d.ts +25 -0
  21. package/dist/entities/scheduled-job.js +92 -0
  22. package/dist/entities/scheduled-job.js.map +1 -0
  23. package/dist/entities/scheduled-task.d.ts +30 -0
  24. package/dist/entities/scheduled-task.js +105 -0
  25. package/dist/entities/scheduled-task.js.map +1 -0
  26. package/dist/entities/types-db.d.ts +1 -0
  27. package/dist/entities/types-db.js.map +1 -1
  28. package/dist/entities/user.d.ts +1 -1
  29. package/dist/index.d.ts +2 -1
  30. package/dist/index.js +7 -3
  31. package/dist/index.js.map +1 -1
  32. package/dist/migrations/common/1714133768519-CreateProject.js +2 -2
  33. package/dist/migrations/common/1714133768519-CreateProject.js.map +1 -1
  34. package/dist/migrations/common/1724951148974-AddApiKeysTable.js +2 -2
  35. package/dist/migrations/common/1724951148974-AddApiKeysTable.js.map +1 -1
  36. package/dist/migrations/common/1784000000039-DropAgentExecutionFallbackColumns.d.ts +5 -0
  37. package/dist/migrations/common/1784000000039-DropAgentExecutionFallbackColumns.js +19 -0
  38. package/dist/migrations/common/1784000000039-DropAgentExecutionFallbackColumns.js.map +1 -0
  39. package/dist/migrations/common/1784000000041-AddUsedPrivateCredentialsToExecutionEntity.d.ts +5 -0
  40. package/dist/migrations/common/1784000000041-AddUsedPrivateCredentialsToExecutionEntity.js +20 -0
  41. package/dist/migrations/common/1784000000041-AddUsedPrivateCredentialsToExecutionEntity.js.map +1 -0
  42. package/dist/migrations/common/1784000000042-CreateSchedulerTables.d.ts +7 -0
  43. package/dist/migrations/common/1784000000042-CreateSchedulerTables.js +103 -0
  44. package/dist/migrations/common/1784000000042-CreateSchedulerTables.js.map +1 -0
  45. package/dist/migrations/postgresdb/1784000000043-CreateWorkflowStatisticsDeltaTable.d.ts +5 -0
  46. package/dist/migrations/postgresdb/1784000000043-CreateWorkflowStatisticsDeltaTable.js +51 -0
  47. package/dist/migrations/postgresdb/1784000000043-CreateWorkflowStatisticsDeltaTable.js.map +1 -0
  48. package/dist/migrations/postgresdb/index.js +8 -0
  49. package/dist/migrations/postgresdb/index.js.map +1 -1
  50. package/dist/migrations/sqlite/1724951148974-AddApiKeysTable.js +2 -2
  51. package/dist/migrations/sqlite/1724951148974-AddApiKeysTable.js.map +1 -1
  52. package/dist/migrations/sqlite/index.js +6 -0
  53. package/dist/migrations/sqlite/index.js.map +1 -1
  54. package/dist/repositories/execution.repository.js +6 -14
  55. package/dist/repositories/execution.repository.js.map +1 -1
  56. package/dist/repositories/folder.repository.d.ts +1 -0
  57. package/dist/repositories/folder.repository.js +17 -0
  58. package/dist/repositories/folder.repository.js.map +1 -1
  59. package/dist/repositories/index.d.ts +3 -0
  60. package/dist/repositories/index.js +5 -1
  61. package/dist/repositories/index.js.map +1 -1
  62. package/dist/repositories/scheduled-job.repository.d.ts +19 -0
  63. package/dist/repositories/scheduled-job.repository.js +80 -0
  64. package/dist/repositories/scheduled-job.repository.js.map +1 -0
  65. package/dist/repositories/scheduled-task.repository.d.ts +53 -0
  66. package/dist/repositories/scheduled-task.repository.js +229 -0
  67. package/dist/repositories/scheduled-task.repository.js.map +1 -0
  68. package/dist/repositories/test-case-execution.repository.ee.d.ts +5 -0
  69. package/dist/repositories/test-case-execution.repository.ee.js +11 -0
  70. package/dist/repositories/test-case-execution.repository.ee.js.map +1 -1
  71. package/dist/repositories/test-run.repository.ee.d.ts +8 -2
  72. package/dist/repositories/test-run.repository.ee.js +30 -10
  73. package/dist/repositories/test-run.repository.ee.js.map +1 -1
  74. package/dist/repositories/workflow-publication-outbox.repository.d.ts +7 -1
  75. package/dist/repositories/workflow-publication-outbox.repository.js +24 -0
  76. package/dist/repositories/workflow-publication-outbox.repository.js.map +1 -1
  77. package/dist/repositories/workflow-statistics.repository.d.ts +13 -1
  78. package/dist/repositories/workflow-statistics.repository.js +69 -34
  79. package/dist/repositories/workflow-statistics.repository.js.map +1 -1
  80. package/dist/repositories/workflow.repository.d.ts +3 -3
  81. package/dist/services/db-lock.service.d.ts +1 -0
  82. package/dist/services/db-lock.service.js +1 -0
  83. package/dist/services/db-lock.service.js.map +1 -1
  84. package/dist/utils/dialect-time.d.ts +3 -0
  85. package/dist/utils/dialect-time.js +20 -0
  86. package/dist/utils/dialect-time.js.map +1 -0
  87. package/dist/utils/generators.js +2 -2
  88. package/dist/utils/generators.js.map +1 -1
  89. package/package.json +15 -14
@@ -8,16 +8,13 @@ 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
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.WorkflowStatisticsRepository = void 0;
16
13
  const config_1 = require("@n8n/config");
17
14
  const di_1 = require("@n8n/di");
18
15
  const permissions_1 = require("@n8n/permissions");
19
16
  const typeorm_1 = require("@n8n/typeorm");
20
- const node_assert_1 = __importDefault(require("node:assert"));
17
+ const n8n_workflow_1 = require("n8n-workflow");
21
18
  const entities_1 = require("../entities");
22
19
  let WorkflowStatisticsRepository = class WorkflowStatisticsRepository extends typeorm_1.Repository {
23
20
  constructor(dataSource, globalConfig) {
@@ -52,46 +49,84 @@ let WorkflowStatisticsRepository = class WorkflowStatisticsRepository extends ty
52
49
  }
53
50
  }
54
51
  async upsertWorkflowStatistics(eventName, workflowId, isRootExecution, workflowName) {
55
- const dbType = this.globalConfig.database.type;
52
+ if (this.globalConfig.database.type !== 'sqlite') {
53
+ throw new n8n_workflow_1.UnexpectedError('upsertWorkflowStatistics is SQLite-only; use appendIncrement + rollup on Postgres');
54
+ }
56
55
  const escapedTableName = this.manager.connection.driver.escape(this.metadata.tableName);
57
56
  try {
58
57
  const rootCountIncrement = isRootExecution ? 1 : 0;
59
- if (dbType === 'sqlite') {
60
- await this.query(`INSERT INTO ${escapedTableName} ("count", "rootCount", "name", "workflowId", "workflowName", "latestEvent")
61
- VALUES (1, ?, ?, ?, ?, CURRENT_TIMESTAMP)
62
- ON CONFLICT (workflowId, name)
63
- DO UPDATE SET
64
- count = count + 1,
65
- rootCount = rootCount + ?,
66
- workflowName = excluded.workflowName,
67
- latestEvent = CURRENT_TIMESTAMP`, [rootCountIncrement, eventName, workflowId, workflowName ?? null, rootCountIncrement]);
68
- const counter = await this.findOne({
69
- select: ['count'],
70
- where: { name: eventName, workflowId },
71
- });
72
- return (counter?.count ?? 0) > 1 ? 'update' : counter?.count === 1 ? 'insert' : 'failed';
73
- }
74
- else if (dbType === 'postgresdb') {
75
- const queryResult = (await this.query(`INSERT INTO ${escapedTableName} ("count", "rootCount", "name", "workflowId", "workflowName", "latestEvent")
76
- VALUES (1, $1, $2, $3, $4, CURRENT_TIMESTAMP)
77
- ON CONFLICT ("name", "workflowId")
78
- DO UPDATE SET
79
- "count" = ${escapedTableName}."count" + 1,
80
- "rootCount" = ${escapedTableName}."rootCount" + $5,
81
- "workflowName" = $4,
82
- "latestEvent" = CURRENT_TIMESTAMP
83
- RETURNING *;`, [rootCountIncrement, eventName, workflowId, workflowName ?? null, rootCountIncrement]));
84
- return Number(queryResult[0].count) === 1 ? 'insert' : 'update';
85
- }
86
- node_assert_1.default.fail('Unknown database type');
58
+ await this.query(`INSERT INTO ${escapedTableName} ("count", "rootCount", "name", "workflowId", "workflowName", "latestEvent")
59
+ VALUES (1, ?, ?, ?, ?, CURRENT_TIMESTAMP)
60
+ ON CONFLICT (workflowId, name)
61
+ DO UPDATE SET
62
+ count = count + 1,
63
+ rootCount = rootCount + ?,
64
+ workflowName = excluded.workflowName,
65
+ latestEvent = CURRENT_TIMESTAMP`, [rootCountIncrement, eventName, workflowId, workflowName ?? null, rootCountIncrement]);
66
+ const counter = await this.findOne({
67
+ select: ['count'],
68
+ where: { name: eventName, workflowId },
69
+ });
70
+ return (counter?.count ?? 0) > 1 ? 'update' : counter?.count === 1 ? 'insert' : 'failed';
87
71
  }
88
72
  catch (error) {
89
- console.log('error', error);
90
73
  if (error instanceof typeorm_1.QueryFailedError)
91
74
  return 'failed';
92
75
  throw error;
93
76
  }
94
77
  }
78
+ deltaTableName() {
79
+ const { tablePrefix } = this.globalConfig.database;
80
+ return this.manager.connection.driver.escape(`${tablePrefix}workflow_statistics_delta`);
81
+ }
82
+ async appendIncrement(eventName, workflowId, isRootExecution, workflowName) {
83
+ const table = this.deltaTableName();
84
+ await this.query(`INSERT INTO ${table} ("workflowId", "name", "rootCountDelta", "workflowName") VALUES ($1, $2, $3, $4)`, [workflowId, eventName, isRootExecution ? 1 : 0, workflowName ?? null]);
85
+ }
86
+ async rollupIncrements(manager, batchSize) {
87
+ const stats = this.manager.connection.driver.escape(this.metadata.tableName);
88
+ const delta = this.deltaTableName();
89
+ const rows = await manager.query(`WITH batch AS (
90
+ DELETE FROM ${delta}
91
+ WHERE id IN (SELECT id FROM ${delta} ORDER BY id LIMIT $1)
92
+ RETURNING "workflowId", "name", "rootCountDelta", "createdAt", "workflowName"
93
+ ),
94
+ agg AS (
95
+ SELECT "workflowId", "name",
96
+ COUNT(*) AS "countIncrement",
97
+ SUM("rootCountDelta") AS "rootCountIncrement",
98
+ MAX("createdAt") AS "latestEvent",
99
+ MIN("createdAt") AS "firstEvent",
100
+ (ARRAY_AGG("workflowName" ORDER BY "createdAt" DESC NULLS LAST))[1] AS "workflowName"
101
+ FROM batch GROUP BY "workflowId", "name"
102
+ ),
103
+ upsert AS (
104
+ INSERT INTO ${stats} ("workflowId", "name", "count", "rootCount", "latestEvent", "workflowName")
105
+ SELECT "workflowId", "name", "countIncrement", "rootCountIncrement", "latestEvent", "workflowName" FROM agg
106
+ ON CONFLICT ("name", "workflowId") DO UPDATE SET
107
+ "count" = ${stats}."count" + EXCLUDED."count",
108
+ "rootCount" = ${stats}."rootCount" + EXCLUDED."rootCount",
109
+ "latestEvent" = GREATEST(${stats}."latestEvent", EXCLUDED."latestEvent"),
110
+ "workflowName" = EXCLUDED."workflowName"
111
+ RETURNING "workflowId", "name", ("xmax" = 0) AS inserted
112
+ )
113
+ SELECT (SELECT COUNT(*) FROM batch)::int AS delta_rows,
114
+ u."workflowId", u."name", u.inserted, a."workflowName", a."firstEvent"
115
+ FROM upsert u JOIN agg a ON a."workflowId" = u."workflowId" AND a."name" = u."name"`, [batchSize]);
116
+ if (rows.length === 0)
117
+ return { increments: 0, firstOccurrences: [] };
118
+ const firstOccurrences = rows
119
+ .filter((r) => r.inserted &&
120
+ (r.name === "production_success" ||
121
+ r.name === "production_error"))
122
+ .map((r) => ({
123
+ name: r.name,
124
+ workflowId: r.workflowId,
125
+ workflowName: r.workflowName,
126
+ firstEventMs: r.firstEvent.getTime(),
127
+ }));
128
+ return { increments: rows[0].delta_rows, firstOccurrences };
129
+ }
95
130
  async queryNumWorkflowsUserHasWithFiveOrMoreProdExecs(userId) {
96
131
  const result = await this.createQueryBuilder('ws')
97
132
  .select('COUNT(DISTINCT ws.workflowId)', 'count')
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-statistics.repository.js","sourceRoot":"","sources":["../../src/repositories/workflow-statistics.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-statistics.repository.js","sourceRoot":"","sources":["../../src/repositories/workflow-statistics.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA2C;AAC3C,gCAAkC;AAClC,kDAA2D;AAC3D,0CAA4F;AAC5F,+CAA+C;AAE/C,0CAMqB;AA6Bd,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,oBAA8B;IAC/E,YACC,UAAsB,EACL,YAA0B;QAE3C,KAAK,CAAC,6BAAkB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAF7B,iBAAY,GAAZ,YAAY,CAAc;IAG5C,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC7B,SAA0B,EAC1B,UAAkB,EAClB,YAAqB;QAGrB,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE;oBACN,UAAU;oBACV,IAAI,EAAE,SAAS;iBACf;aACD,CAAC,CAAC;YACH,IAAI,MAAM;gBAAE,OAAO,eAAe,CAAC;YACnC,MAAM,IAAI,CAAC,MAAM,CAAC;gBACjB,UAAU;gBACV,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,IAAI,IAAI,EAAE;gBACvB,YAAY,EAAE,YAAY,IAAI,IAAI;aAClC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEhB,IAAI,CAAC,CAAC,KAAK,YAAY,0BAAgB,CAAC,EAAE,CAAC;gBAC1C,MAAM,KAAK,CAAC;YACb,CAAC;YAED,OAAO,QAAQ,CAAC;QACjB,CAAC;IACF,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC7B,SAA0B,EAC1B,UAAkB,EAClB,eAAwB,EACxB,YAAqB;QAErB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,8BAAe,CACxB,mFAAmF,CACnF,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAExF,IAAI,CAAC;YACJ,MAAM,kBAAkB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,KAAK,CACf,eAAe,gBAAgB;;;;;;;qCAOE,EACjC,CAAC,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,IAAI,IAAI,EAAE,kBAAkB,CAAC,CACrF,CAAC;YAKF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBAClC,MAAM,EAAE,CAAC,OAAO,CAAC;gBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE;aACtC,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,0BAAgB;gBAAE,OAAO,QAAQ,CAAC;YACvD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAEO,cAAc;QACrB,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,2BAA2B,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,eAAe,CACpB,SAA0B,EAC1B,UAAkB,EAClB,eAAwB,EACxB,YAAqB;QAErB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,MAAM,IAAI,CAAC,KAAK,CACf,eAAe,KAAK,mFAAmF,EACvG,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC,CACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,OAAsB,EACtB,SAAiB;QAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAapC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAC/B;kBACe,KAAK;kCACW,KAAK;;;;;;;;;;;;;kBAarB,KAAK;;;iBAGN,KAAK;qBACD,KAAK;gCACM,KAAK;;;;;;uFAMkD,EACpF,CAAC,SAAS,CAAC,CACX,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;QAEtE,MAAM,gBAAgB,GAAyB,IAAI;aACjD,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,CAAC,IAAI,yBAAsC;gBAC5C,CAAC,CAAC,IAAI,uBAAoC,CAAC,CAC7C;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE;SACpC,CAAC,CAAC,CAAC;QAEL,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,+CAA+C,CAAC,MAAkB;QACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;aAChD,MAAM,CAAC,+BAA+B,EAAE,OAAO,CAAC;aAChD,SAAS,CAAC,yBAAc,EAAE,IAAI,EAAE,uBAAuB,CAAC;aACxD,SAAS,CAAC,yBAAc,EAAE,IAAI,EAAE,uBAAuB,CAAC;aACxD,SAAS,CAAC,0BAAe,EAAE,IAAI,EAAE,6BAA6B,CAAC;aAC/D,SAAS,CAAC,eAAI,EAAE,GAAG,EAAE,kBAAkB,CAAC;aACxC,KAAK,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;aACpD,QAAQ,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,CAAC;aAC3C,QAAQ,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,qCAAuB,EAAE,CAAC;aAC7D,QAAQ,CAAC,gCAAgC,CAAC;aAC1C,QAAQ,CAAC,iBAAiB,EAAE,EAAE,IAAI,sBAAmC,EAAE,CAAC;aACxE,QAAQ,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;aAClD,SAAS,EAAqB,CAAC;QAEjC,OAAO,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;CACD,CAAA;AA3LY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,YAAO,GAAE;qCAGI,oBAAU;QACS,qBAAY;GAHhC,4BAA4B,CA2LxC"}
@@ -70,9 +70,9 @@ export declare class WorkflowRepository extends Repository<WorkflowEntity> {
70
70
  private getWorkflowsIds;
71
71
  private fetchExtraData;
72
72
  private enrichDataWithExtras;
73
- getMany(workflowIds: string[], options?: ListQuery.Options): Promise<(Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "createdAt" | "updatedAt" | "tags" | "description" | "active" | "versionId" | "activeVersionId">>)[]>;
73
+ getMany(workflowIds: string[], options?: ListQuery.Options): Promise<(Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "updatedAt" | "createdAt" | "description" | "tags" | "active" | "versionId" | "activeVersionId">>)[]>;
74
74
  getManyAndCount(sharedWorkflowIds: string[], options?: ListQuery.Options): Promise<{
75
- workflows: ListQueryDb.Workflow.WithSharing[] | (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "createdAt" | "updatedAt" | "tags" | "description" | "active" | "versionId" | "activeVersionId">>)[];
75
+ workflows: (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "updatedAt" | "createdAt" | "description" | "tags" | "active" | "versionId" | "activeVersionId">>)[] | ListQueryDb.Workflow.WithSharing[];
76
76
  count: number;
77
77
  }>;
78
78
  getManyAndCountWithSharingSubquery(user: User, sharingOptions: {
@@ -83,7 +83,7 @@ export declare class WorkflowRepository extends Repository<WorkflowEntity> {
83
83
  personalProjectOwnerId?: string;
84
84
  onlySharedWithMe?: boolean;
85
85
  }, options?: ListQuery.Options, callableForParentWorkflowId?: string): Promise<{
86
- workflows: ListQueryDb.Workflow.WithSharing[] | (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "createdAt" | "updatedAt" | "tags" | "description" | "active" | "versionId" | "activeVersionId">>)[];
86
+ workflows: (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "name" | "updatedAt" | "createdAt" | "description" | "tags" | "active" | "versionId" | "activeVersionId">>)[] | ListQueryDb.Workflow.WithSharing[];
87
87
  count: number;
88
88
  }>;
89
89
  private getManyQueryWithSharingSubquery;
@@ -4,6 +4,7 @@ import type { EntityManager } from '@n8n/typeorm';
4
4
  export declare const enum DbLock {
5
5
  AUTH_ROLES_SYNC = 1001,
6
6
  TRUSTED_KEY_REFRESH = 1002,
7
+ WORKFLOW_STATISTICS_ROLLUP = 1003,
7
8
  TEST = 9999
8
9
  }
9
10
  export declare class DbLockService {
@@ -18,6 +18,7 @@ var DbLock;
18
18
  (function (DbLock) {
19
19
  DbLock[DbLock["AUTH_ROLES_SYNC"] = 1001] = "AUTH_ROLES_SYNC";
20
20
  DbLock[DbLock["TRUSTED_KEY_REFRESH"] = 1002] = "TRUSTED_KEY_REFRESH";
21
+ DbLock[DbLock["WORKFLOW_STATISTICS_ROLLUP"] = 1003] = "WORKFLOW_STATISTICS_ROLLUP";
21
22
  DbLock[DbLock["TEST"] = 9999] = "TEST";
22
23
  })(DbLock || (exports.DbLock = DbLock = {}));
23
24
  let DbLockService = class DbLockService {
@@ -1 +1 @@
1
- {"version":3,"file":"db-lock.service.js","sourceRoot":"","sources":["../../src/services/db-lock.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-lock.service.js","sourceRoot":"","sources":["../../src/services/db-lock.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function dbNowLiteral(isPostgres: boolean): string;
2
+ export declare function dbNowPlusMsLiteral(isPostgres: boolean, ms: number): string;
3
+ export declare function parseDbTime(value: Date | string): Date;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dbNowLiteral = dbNowLiteral;
4
+ exports.dbNowPlusMsLiteral = dbNowPlusMsLiteral;
5
+ exports.parseDbTime = parseDbTime;
6
+ function dbNowLiteral(isPostgres) {
7
+ return isPostgres ? 'CURRENT_TIMESTAMP(3)' : "STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')";
8
+ }
9
+ function dbNowPlusMsLiteral(isPostgres, ms) {
10
+ const rounded = Math.round(ms);
11
+ if (isPostgres) {
12
+ return `CURRENT_TIMESTAMP(3) + (${rounded} || ' milliseconds')::interval`;
13
+ }
14
+ const seconds = rounded / 1000;
15
+ return `STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW', '${seconds < 0 ? '' : '+'}${seconds} seconds')`;
16
+ }
17
+ function parseDbTime(value) {
18
+ return typeof value === 'string' ? new Date(`${value.replace(' ', 'T')}Z`) : value;
19
+ }
20
+ //# sourceMappingURL=dialect-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect-time.js","sourceRoot":"","sources":["../../src/utils/dialect-time.ts"],"names":[],"mappings":";;AAYA,oCAEC;AAOD,gDAOC;AAOD,kCAEC;AAzBD,SAAgB,YAAY,CAAC,UAAmB;IAC/C,OAAO,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sCAAsC,CAAC;AACrF,CAAC;AAOD,SAAgB,kBAAkB,CAAC,UAAmB,EAAE,EAAU;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,2BAA2B,OAAO,gCAAgC,CAAC;IAC3E,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;IAC/B,OAAO,yCAAyC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,YAAY,CAAC;AAC9F,CAAC;AAOD,SAAgB,WAAW,CAAC,KAAoB;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACpF,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateHostInstanceId = generateHostInstanceId;
4
- const utils_1 = require("@n8n/utils");
4
+ const generate_nano_id_1 = require("@n8n/utils/generate-nano-id");
5
5
  function generateHostInstanceId(instanceType) {
6
- return `${instanceType}-${(0, utils_1.generateNanoId)()}`;
6
+ return `${instanceType}-${(0, generate_nano_id_1.generateNanoId)()}`;
7
7
  }
8
8
  //# sourceMappingURL=generators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generators.js","sourceRoot":"","sources":["../../src/utils/generators.ts"],"names":[],"mappings":";;AAGA,wDAEC;AAJD,sCAA4C;AAE5C,SAAgB,sBAAsB,CAAC,YAA0B;IAChE,OAAO,GAAG,YAAY,IAAI,IAAA,sBAAc,GAAE,EAAE,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"generators.js","sourceRoot":"","sources":["../../src/utils/generators.ts"],"names":[],"mappings":";;AAGA,wDAEC;AAJD,kEAA6D;AAE7D,SAAgB,sBAAsB,CAAC,YAA0B;IAChE,OAAO,GAAG,YAAY,IAAI,IAAA,iCAAc,GAAE,EAAE,CAAC;AAC9C,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@n8n/db",
3
- "version": "1.29.7",
3
+ "version": "1.30.1",
4
4
  "main": "dist/index.js",
5
5
  "module": "src/index.ts",
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
  "class-validator": "0.14.0",
@@ -19,17 +19,17 @@
19
19
  "uuid": "11.1.1",
20
20
  "xss": "1.0.15",
21
21
  "zod": "3.25.67",
22
- "@n8n/config": "2.27.3",
22
+ "@n8n/api-types": "1.30.1",
23
+ "@n8n/backend-common": "1.30.1",
24
+ "@n8n/config": "2.28.0",
25
+ "@n8n/decorators": "1.30.1",
26
+ "@n8n/constants": "0.30.0",
23
27
  "@n8n/di": "0.14.0",
24
- "@n8n/constants": "0.29.0",
25
- "@n8n/api-types": "1.29.5",
26
- "@n8n/decorators": "1.29.5",
27
- "@n8n/permissions": "0.66.0",
28
+ "@n8n/permissions": "0.67.0",
28
29
  "@n8n/typeorm": "0.4.0",
29
- "@n8n/utils": "1.37.2",
30
- "@n8n/backend-common": "1.29.6",
31
- "n8n-core": "2.29.7",
32
- "n8n-workflow": "2.29.3"
30
+ "n8n-core": "2.30.1",
31
+ "@n8n/utils": "1.38.1",
32
+ "n8n-workflow": "2.30.1"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/express": "^5.0.1",
@@ -39,10 +39,11 @@
39
39
  "express": "5.1.0",
40
40
  "testcontainers": "^11.13.0",
41
41
  "typescript": "6.0.2",
42
+ "vite": "^8.0.2",
42
43
  "vitest": "^4.1.9",
43
44
  "vitest-mock-extended": "^3.1.0",
44
- "@n8n/typescript-config": "1.7.0",
45
- "@n8n/vitest-config": "1.16.0"
45
+ "@n8n/typescript-config": "1.8.0",
46
+ "@n8n/vitest-config": "1.17.0"
46
47
  },
47
48
  "license": "SEE LICENSE IN LICENSE.md",
48
49
  "homepage": "https://n8n.io",