@n8n/db 1.32.2 → 1.34.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 (207) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/connection/db-connection.d.ts +1 -0
  3. package/dist/connection/db-connection.js +28 -2
  4. package/dist/connection/db-connection.js.map +1 -1
  5. package/dist/entities/agent-eval-dataset.ee.d.ts +12 -0
  6. package/dist/entities/agent-eval-dataset.ee.js +50 -0
  7. package/dist/entities/agent-eval-dataset.ee.js.map +1 -0
  8. package/dist/entities/agent-eval-rating.ee.d.ts +13 -0
  9. package/dist/entities/agent-eval-rating.ee.js +47 -0
  10. package/dist/entities/agent-eval-rating.ee.js.map +1 -0
  11. package/dist/entities/agent-eval-result.ee.d.ts +22 -0
  12. package/dist/entities/agent-eval-result.ee.js +79 -0
  13. package/dist/entities/agent-eval-result.ee.js.map +1 -0
  14. package/dist/entities/agent-eval-run.ee.d.ts +21 -0
  15. package/dist/entities/agent-eval-run.ee.js +75 -0
  16. package/dist/entities/agent-eval-run.ee.js.map +1 -0
  17. package/dist/entities/binary-data-file.d.ts +1 -1
  18. package/dist/entities/binary-data-file.js +6 -1
  19. package/dist/entities/binary-data-file.js.map +1 -1
  20. package/dist/entities/credentials-entity.d.ts +2 -0
  21. package/dist/entities/credentials-entity.js +4 -0
  22. package/dist/entities/credentials-entity.js.map +1 -1
  23. package/dist/entities/execution-entity.js +1 -1
  24. package/dist/entities/execution-entity.js.map +1 -1
  25. package/dist/entities/index.d.ts +21 -3
  26. package/dist/entities/index.js +34 -2
  27. package/dist/entities/index.js.map +1 -1
  28. package/dist/entities/instance-credential-assignment.d.ts +8 -0
  29. package/dist/entities/instance-credential-assignment.js +35 -0
  30. package/dist/entities/instance-credential-assignment.js.map +1 -0
  31. package/dist/entities/scheduled-job.d.ts +4 -0
  32. package/dist/entities/scheduled-job.js +15 -4
  33. package/dist/entities/scheduled-job.js.map +1 -1
  34. package/dist/entities/scheduled-task.d.ts +1 -0
  35. package/dist/entities/scheduled-task.js +6 -1
  36. package/dist/entities/scheduled-task.js.map +1 -1
  37. package/dist/entities/types-db.d.ts +2 -1
  38. package/dist/entities/types-db.js.map +1 -1
  39. package/dist/entities/workflow-publication-trigger-status.js.map +1 -1
  40. package/dist/entities/workflow-review-request-author.ee.d.ts +4 -0
  41. package/dist/entities/workflow-review-request-author.ee.js +28 -0
  42. package/dist/entities/workflow-review-request-author.ee.js.map +1 -0
  43. package/dist/entities/workflow-review-request-reviewer.ee.d.ts +4 -0
  44. package/dist/entities/workflow-review-request-reviewer.ee.js +29 -0
  45. package/dist/entities/workflow-review-request-reviewer.ee.js.map +1 -0
  46. package/dist/entities/workflow-review-request-workflow.ee.d.ts +6 -0
  47. package/dist/entities/workflow-review-request-workflow.ee.js +41 -0
  48. package/dist/entities/workflow-review-request-workflow.ee.js.map +1 -0
  49. package/dist/entities/workflow-review-request.ee.d.ts +26 -0
  50. package/dist/entities/workflow-review-request.ee.js +69 -0
  51. package/dist/entities/workflow-review-request.ee.js.map +1 -0
  52. package/dist/index.d.ts +2 -0
  53. package/dist/index.js +3 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/migrations/common/1630330987096-UpdateWorkflowCredentials.js.map +1 -1
  56. package/dist/migrations/common/1784000000052-CreateWorkflowReviewRequestTables.d.ts +11 -0
  57. package/dist/migrations/common/1784000000052-CreateWorkflowReviewRequestTables.js +138 -0
  58. package/dist/migrations/common/1784000000052-CreateWorkflowReviewRequestTables.js.map +1 -0
  59. package/dist/migrations/common/1784815940110-AddStoredAtToAgentExecution.d.ts +5 -0
  60. package/dist/migrations/common/1784815940110-AddStoredAtToAgentExecution.js +18 -0
  61. package/dist/migrations/common/1784815940110-AddStoredAtToAgentExecution.js.map +1 -0
  62. package/dist/migrations/common/1784815940111-AddInstanceCredentials.d.ts +5 -0
  63. package/dist/migrations/common/1784815940111-AddInstanceCredentials.js +36 -0
  64. package/dist/migrations/common/1784815940111-AddInstanceCredentials.js.map +1 -0
  65. package/dist/migrations/common/1784815940112-CreateAgentEvalTables.d.ts +5 -0
  66. package/dist/migrations/common/1784815940112-CreateAgentEvalTables.js +87 -0
  67. package/dist/migrations/common/1784815940112-CreateAgentEvalTables.js.map +1 -0
  68. package/dist/migrations/common/1784897791636-AddAvailableInMcpToAgents.d.ts +5 -0
  69. package/dist/migrations/common/1784897791636-AddAvailableInMcpToAgents.js +17 -0
  70. package/dist/migrations/common/1784897791636-AddAvailableInMcpToAgents.js.map +1 -0
  71. package/dist/migrations/common/1785162364001-AddIsFirstPartyToOAuthClients.d.ts +5 -0
  72. package/dist/migrations/common/1785162364001-AddIsFirstPartyToOAuthClients.js +19 -0
  73. package/dist/migrations/common/1785162364001-AddIsFirstPartyToOAuthClients.js.map +1 -0
  74. package/dist/migrations/common/1785186578138-AddAgentFileStorageColumns.d.ts +7 -0
  75. package/dist/migrations/common/1785186578138-AddAgentFileStorageColumns.js +55 -0
  76. package/dist/migrations/common/1785186578138-AddAgentFileStorageColumns.js.map +1 -0
  77. package/dist/migrations/common/1785247194306-CrashStaleEnqueuedExecutions.d.ts +4 -0
  78. package/dist/migrations/common/1785247194306-CrashStaleEnqueuedExecutions.js +32 -0
  79. package/dist/migrations/common/1785247194306-CrashStaleEnqueuedExecutions.js.map +1 -0
  80. package/dist/migrations/common/1785247194307-AddMisfirePolicyToScheduler.d.ts +8 -0
  81. package/dist/migrations/common/1785247194307-AddMisfirePolicyToScheduler.js +71 -0
  82. package/dist/migrations/common/1785247194307-AddMisfirePolicyToScheduler.js.map +1 -0
  83. package/dist/migrations/common/1785255306000-CreateAgentChatAttachmentsTable.d.ts +6 -0
  84. package/dist/migrations/common/1785255306000-CreateAgentChatAttachmentsTable.js +56 -0
  85. package/dist/migrations/common/1785255306000-CreateAgentChatAttachmentsTable.js.map +1 -0
  86. package/dist/migrations/common/1785500832626-AddSetupCompletedAtToAgents.d.ts +5 -0
  87. package/dist/migrations/common/1785500832626-AddSetupCompletedAtToAgents.js +17 -0
  88. package/dist/migrations/common/1785500832626-AddSetupCompletedAtToAgents.js.map +1 -0
  89. package/dist/migrations/postgresdb/1785162364000-ChangeInstalledNodeVersionType.d.ts +4 -0
  90. package/dist/migrations/postgresdb/1785162364000-ChangeInstalledNodeVersionType.js +10 -0
  91. package/dist/migrations/postgresdb/1785162364000-ChangeInstalledNodeVersionType.js.map +1 -0
  92. package/dist/migrations/postgresdb/index.js +24 -0
  93. package/dist/migrations/postgresdb/index.js.map +1 -1
  94. package/dist/migrations/sqlite/1784897791636-AddAvailableInMcpToAgents.d.ts +4 -0
  95. package/dist/migrations/sqlite/1784897791636-AddAvailableInMcpToAgents.js +12 -0
  96. package/dist/migrations/sqlite/1784897791636-AddAvailableInMcpToAgents.js.map +1 -0
  97. package/dist/migrations/sqlite/1785162364000-ChangeInstalledNodeVersionType.d.ts +4 -0
  98. package/dist/migrations/sqlite/1785162364000-ChangeInstalledNodeVersionType.js +38 -0
  99. package/dist/migrations/sqlite/1785162364000-ChangeInstalledNodeVersionType.js.map +1 -0
  100. package/dist/migrations/sqlite/1785162364001-AddIsFirstPartyToOAuthClients.d.ts +6 -0
  101. package/dist/migrations/sqlite/1785162364001-AddIsFirstPartyToOAuthClients.js +22 -0
  102. package/dist/migrations/sqlite/1785162364001-AddIsFirstPartyToOAuthClients.js.map +1 -0
  103. package/dist/migrations/sqlite/1785247194307-AddMisfirePolicyToScheduler.d.ts +4 -0
  104. package/dist/migrations/sqlite/1785247194307-AddMisfirePolicyToScheduler.js +12 -0
  105. package/dist/migrations/sqlite/1785247194307-AddMisfirePolicyToScheduler.js.map +1 -0
  106. package/dist/migrations/sqlite/1785500832626-AddSetupCompletedAtToAgents.d.ts +4 -0
  107. package/dist/migrations/sqlite/1785500832626-AddSetupCompletedAtToAgents.js +12 -0
  108. package/dist/migrations/sqlite/1785500832626-AddSetupCompletedAtToAgents.js.map +1 -0
  109. package/dist/migrations/sqlite/index.js +24 -0
  110. package/dist/migrations/sqlite/index.js.map +1 -1
  111. package/dist/repositories/agent-eval-dataset.repository.ee.d.ts +28 -0
  112. package/dist/repositories/agent-eval-dataset.repository.ee.js +62 -0
  113. package/dist/repositories/agent-eval-dataset.repository.ee.js.map +1 -0
  114. package/dist/repositories/agent-eval-rating.repository.ee.d.ts +18 -0
  115. package/dist/repositories/agent-eval-rating.repository.ee.js +71 -0
  116. package/dist/repositories/agent-eval-rating.repository.ee.js.map +1 -0
  117. package/dist/repositories/agent-eval-result.repository.ee.d.ts +27 -0
  118. package/dist/repositories/agent-eval-result.repository.ee.js +84 -0
  119. package/dist/repositories/agent-eval-result.repository.ee.js.map +1 -0
  120. package/dist/repositories/agent-eval-run.repository.ee.d.ts +24 -0
  121. package/dist/repositories/agent-eval-run.repository.ee.js +99 -0
  122. package/dist/repositories/agent-eval-run.repository.ee.js.map +1 -0
  123. package/dist/repositories/base-repository.d.ts +6 -0
  124. package/dist/repositories/base-repository.js +19 -0
  125. package/dist/repositories/base-repository.js.map +1 -0
  126. package/dist/repositories/binary-data.repository.d.ts +2 -0
  127. package/dist/repositories/binary-data.repository.js +9 -0
  128. package/dist/repositories/binary-data.repository.js.map +1 -1
  129. package/dist/repositories/credentials.repository.d.ts +22 -4
  130. package/dist/repositories/credentials.repository.js +84 -10
  131. package/dist/repositories/credentials.repository.js.map +1 -1
  132. package/dist/repositories/evaluation-collection.repository.d.ts +1 -0
  133. package/dist/repositories/evaluation-collection.repository.js +5 -0
  134. package/dist/repositories/evaluation-collection.repository.js.map +1 -1
  135. package/dist/repositories/execution.repository.d.ts +1 -0
  136. package/dist/repositories/execution.repository.js +10 -5
  137. package/dist/repositories/execution.repository.js.map +1 -1
  138. package/dist/repositories/index.d.ts +10 -0
  139. package/dist/repositories/index.js +22 -1
  140. package/dist/repositories/index.js.map +1 -1
  141. package/dist/repositories/instance-credential-assignment.repository.d.ts +17 -0
  142. package/dist/repositories/instance-credential-assignment.repository.js +96 -0
  143. package/dist/repositories/instance-credential-assignment.repository.js.map +1 -0
  144. package/dist/repositories/role.repository.d.ts +1 -0
  145. package/dist/repositories/role.repository.js +24 -0
  146. package/dist/repositories/role.repository.js.map +1 -1
  147. package/dist/repositories/scheduled-job.repository.d.ts +5 -2
  148. package/dist/repositories/scheduled-job.repository.js +15 -0
  149. package/dist/repositories/scheduled-job.repository.js.map +1 -1
  150. package/dist/repositories/scheduled-task.repository.d.ts +11 -0
  151. package/dist/repositories/scheduled-task.repository.js +85 -2
  152. package/dist/repositories/scheduled-task.repository.js.map +1 -1
  153. package/dist/repositories/settings.repository.d.ts +6 -2
  154. package/dist/repositories/settings.repository.js +8 -1
  155. package/dist/repositories/settings.repository.js.map +1 -1
  156. package/dist/repositories/shared-workflow.repository.d.ts +1 -0
  157. package/dist/repositories/shared-workflow.repository.js +7 -0
  158. package/dist/repositories/shared-workflow.repository.js.map +1 -1
  159. package/dist/repositories/tag.repository.d.ts +1 -0
  160. package/dist/repositories/tag.repository.js +6 -0
  161. package/dist/repositories/tag.repository.js.map +1 -1
  162. package/dist/repositories/test-case-execution.repository.ee.d.ts +5 -2
  163. package/dist/repositories/test-case-execution.repository.ee.js +3 -2
  164. package/dist/repositories/test-case-execution.repository.ee.js.map +1 -1
  165. package/dist/repositories/user.repository.d.ts +5 -0
  166. package/dist/repositories/user.repository.js +19 -0
  167. package/dist/repositories/user.repository.js.map +1 -1
  168. package/dist/repositories/webhook.repository.d.ts +2 -0
  169. package/dist/repositories/webhook.repository.js +6 -0
  170. package/dist/repositories/webhook.repository.js.map +1 -1
  171. package/dist/repositories/workflow-publication-outbox.repository.d.ts +3 -3
  172. package/dist/repositories/workflow-publication-outbox.repository.js +73 -53
  173. package/dist/repositories/workflow-publication-outbox.repository.js.map +1 -1
  174. package/dist/repositories/workflow-publish-history.repository.d.ts +2 -0
  175. package/dist/repositories/workflow-publish-history.repository.js +47 -0
  176. package/dist/repositories/workflow-publish-history.repository.js.map +1 -1
  177. package/dist/repositories/workflow-review-request-author.repository.d.ts +20 -0
  178. package/dist/repositories/workflow-review-request-author.repository.js +61 -0
  179. package/dist/repositories/workflow-review-request-author.repository.js.map +1 -0
  180. package/dist/repositories/workflow-review-request-reviewer.repository.d.ts +13 -0
  181. package/dist/repositories/workflow-review-request-reviewer.repository.js +69 -0
  182. package/dist/repositories/workflow-review-request-reviewer.repository.js.map +1 -0
  183. package/dist/repositories/workflow-review-request-workflow.repository.d.ts +29 -0
  184. package/dist/repositories/workflow-review-request-workflow.repository.js +82 -0
  185. package/dist/repositories/workflow-review-request-workflow.repository.js.map +1 -0
  186. package/dist/repositories/workflow-review-request.repository.d.ts +53 -0
  187. package/dist/repositories/workflow-review-request.repository.js +129 -0
  188. package/dist/repositories/workflow-review-request.repository.js.map +1 -0
  189. package/dist/repositories/workflow-statistics.repository.js +1 -1
  190. package/dist/repositories/workflow-statistics.repository.js.map +1 -1
  191. package/dist/repositories/workflow.repository.d.ts +6 -0
  192. package/dist/repositories/workflow.repository.js +6 -0
  193. package/dist/repositories/workflow.repository.js.map +1 -1
  194. package/dist/services/db-lock.service.d.ts +20 -2
  195. package/dist/services/db-lock.service.js +39 -18
  196. package/dist/services/db-lock.service.js.map +1 -1
  197. package/dist/services/transaction.d.ts +15 -0
  198. package/dist/services/transaction.js +16 -0
  199. package/dist/services/transaction.js.map +1 -0
  200. package/dist/services/typeorm-transaction.d.ts +15 -0
  201. package/dist/services/typeorm-transaction.js +70 -0
  202. package/dist/services/typeorm-transaction.js.map +1 -0
  203. package/dist/utils/dialect-time.d.ts +2 -0
  204. package/dist/utils/dialect-time.js +18 -0
  205. package/dist/utils/dialect-time.js.map +1 -1
  206. package/dist/utils/transaction.js.map +1 -1
  207. package/package.json +14 -14
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-eval-dataset.repository.ee.js","sourceRoot":"","sources":["../../src/repositories/agent-eval-dataset.repository.ee.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gCAAkC;AAClC,0CAAsD;AAGtD,0CAA+C;AAsBxC,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,oBAA4B;IAC3E,YAAY,UAAsB;QACjC,KAAK,CAAC,2BAAgB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAkC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;YACtC,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI;YAC1C,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;SACtC,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QAClC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACxB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAID,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,OAAe;QACnD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAID,KAAK,CAAC,aAAa,CAClB,EAAU,EACV,OAAe,EACf,KAAkC;QAElC,MAAM,KAAK,GAA6C;YACvD,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACrD,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;YAC1E,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;SAChF,CAAC;QAIF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QAID,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAGD,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,OAAe;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;CACD,CAAA;;qCA9DY,0BAA0B;IADtC,IAAA,YAAO,GAAE;qCAEe,oBAAU;GADtB,0BAA0B,CA8DtC"}
@@ -0,0 +1,18 @@
1
+ import { DataSource, Repository } from '@n8n/typeorm';
2
+ import type { JsonObject } from 'n8n-workflow';
3
+ import { AgentEvalRating } from '../entities';
4
+ import type { AgentEvalVote } from '../entities/agent-eval-rating.ee';
5
+ type CreateAgentEvalRatingAttrs = {
6
+ resultId: string;
7
+ vote: AgentEvalVote;
8
+ comment?: string | null;
9
+ correction?: JsonObject | null;
10
+ ratedById?: string | null;
11
+ };
12
+ export declare class AgentEvalRatingRepository extends Repository<AgentEvalRating> {
13
+ constructor(dataSource: DataSource);
14
+ createRating(attrs: CreateAgentEvalRatingAttrs): Promise<AgentEvalRating>;
15
+ findByResultId(resultId: string): Promise<AgentEvalRating[]>;
16
+ findLatestByRunId(runId: string): Promise<AgentEvalRating[]>;
17
+ }
18
+ export {};
@@ -0,0 +1,71 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AgentEvalRatingRepository = void 0;
13
+ const di_1 = require("@n8n/di");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ const entities_1 = require("../entities");
16
+ const ID_LOOKUP_CHUNK_SIZE = 100;
17
+ let AgentEvalRatingRepository = class AgentEvalRatingRepository extends typeorm_1.Repository {
18
+ constructor(dataSource) {
19
+ super(entities_1.AgentEvalRating, dataSource.manager);
20
+ }
21
+ async createRating(attrs) {
22
+ const rating = this.create({
23
+ resultId: attrs.resultId,
24
+ vote: attrs.vote,
25
+ comment: attrs.comment ?? null,
26
+ correction: attrs.correction ?? null,
27
+ ratedById: attrs.ratedById ?? null,
28
+ });
29
+ return await this.save(rating);
30
+ }
31
+ async findByResultId(resultId) {
32
+ return await this.find({ where: { resultId }, order: { createdAt: 'DESC' } });
33
+ }
34
+ async findLatestByRunId(runId) {
35
+ const rows = await this.createQueryBuilder('rating')
36
+ .select('rating.id', 'id')
37
+ .addSelect('rating.resultId', 'resultId')
38
+ .innerJoin(entities_1.AgentEvalResult, 'result', 'result.id = rating.resultId')
39
+ .where('result.runId = :runId', { runId })
40
+ .orderBy('rating.resultId', 'ASC')
41
+ .addOrderBy('rating.createdAt', 'DESC')
42
+ .addOrderBy('rating.id', 'DESC')
43
+ .getRawMany();
44
+ const seen = new Set();
45
+ const latestIds = rows
46
+ .filter((row) => {
47
+ if (seen.has(row.resultId))
48
+ return false;
49
+ seen.add(row.resultId);
50
+ return true;
51
+ })
52
+ .map((row) => row.id);
53
+ if (latestIds.length === 0)
54
+ return [];
55
+ const found = [];
56
+ for (let i = 0; i < latestIds.length; i += ID_LOOKUP_CHUNK_SIZE) {
57
+ const chunk = latestIds.slice(i, i + ID_LOOKUP_CHUNK_SIZE);
58
+ found.push(...(await this.find({ where: { id: (0, typeorm_1.In)(chunk) } })));
59
+ }
60
+ const byId = new Map(found.map((rating) => [rating.id, rating]));
61
+ return latestIds
62
+ .map((id) => byId.get(id))
63
+ .filter((rating) => rating !== undefined);
64
+ }
65
+ };
66
+ exports.AgentEvalRatingRepository = AgentEvalRatingRepository;
67
+ exports.AgentEvalRatingRepository = AgentEvalRatingRepository = __decorate([
68
+ (0, di_1.Service)(),
69
+ __metadata("design:paramtypes", [typeorm_1.DataSource])
70
+ ], AgentEvalRatingRepository);
71
+ //# sourceMappingURL=agent-eval-rating.repository.ee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-eval-rating.repository.ee.js","sourceRoot":"","sources":["../../src/repositories/agent-eval-rating.repository.ee.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { DataSource, Repository } from '@n8n/typeorm';
2
+ import type { IDataObject, JsonObject } from 'n8n-workflow';
3
+ import { AgentEvalResult } from '../entities';
4
+ import type { AgentEvalResultStatus } from '../entities/agent-eval-result.ee';
5
+ type CreateAgentEvalResultAttrs = {
6
+ runId: string;
7
+ sourceRowId?: string | null;
8
+ runIndex?: number | null;
9
+ input?: JsonObject | null;
10
+ };
11
+ export type AgentEvalResultStatusCounts = Record<AgentEvalResultStatus, number>;
12
+ export declare class AgentEvalResultRepository extends Repository<AgentEvalResult> {
13
+ constructor(dataSource: DataSource);
14
+ seedResults(cases: CreateAgentEvalResultAttrs[]): Promise<AgentEvalResult[]>;
15
+ countByStatus(runId: string): Promise<AgentEvalResultStatusCounts>;
16
+ markAsRunning(id: string): Promise<import("@n8n/typeorm").UpdateResult>;
17
+ markAsCancelled(id: string): Promise<import("@n8n/typeorm").UpdateResult>;
18
+ markAsCompleted(id: string, attrs: {
19
+ output: JsonObject | null;
20
+ toolCalls?: JsonObject | null;
21
+ metrics?: IDataObject | null;
22
+ }): Promise<import("@n8n/typeorm").UpdateResult>;
23
+ markAsError(id: string, errorCode: string, errorDetails?: IDataObject | null): Promise<import("@n8n/typeorm").UpdateResult>;
24
+ findByRunId(runId: string): Promise<AgentEvalResult[]>;
25
+ findById(id: string): Promise<AgentEvalResult | null>;
26
+ }
27
+ export {};
@@ -0,0 +1,84 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AgentEvalResultRepository = void 0;
13
+ const di_1 = require("@n8n/di");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ const entities_1 = require("../entities");
16
+ const SEED_CHUNK_SIZE = 100;
17
+ let AgentEvalResultRepository = class AgentEvalResultRepository extends typeorm_1.Repository {
18
+ constructor(dataSource) {
19
+ super(entities_1.AgentEvalResult, dataSource.manager);
20
+ }
21
+ async seedResults(cases) {
22
+ const results = cases.map((c, index) => this.create({
23
+ status: 'new',
24
+ runId: c.runId,
25
+ sourceRowId: c.sourceRowId ?? null,
26
+ runIndex: c.runIndex ?? index,
27
+ input: c.input ?? null,
28
+ }));
29
+ return await this.save(results, { chunk: SEED_CHUNK_SIZE });
30
+ }
31
+ async countByStatus(runId) {
32
+ const rows = await this.createQueryBuilder('result')
33
+ .select('result.status', 'status')
34
+ .addSelect('COUNT(*)', 'count')
35
+ .where('result.runId = :runId', { runId })
36
+ .groupBy('result.status')
37
+ .getRawMany();
38
+ const counts = {
39
+ new: 0,
40
+ running: 0,
41
+ success: 0,
42
+ error: 0,
43
+ cancelled: 0,
44
+ };
45
+ for (const row of rows)
46
+ counts[row.status] = Number(row.count);
47
+ return counts;
48
+ }
49
+ async markAsRunning(id) {
50
+ return await this.update(id, { status: 'running', runAt: new Date() });
51
+ }
52
+ async markAsCancelled(id) {
53
+ return await this.update(id, { status: 'cancelled', completedAt: new Date() });
54
+ }
55
+ async markAsCompleted(id, attrs) {
56
+ return await this.update(id, {
57
+ status: 'success',
58
+ completedAt: new Date(),
59
+ output: attrs.output,
60
+ toolCalls: attrs.toolCalls ?? null,
61
+ metrics: attrs.metrics ?? null,
62
+ });
63
+ }
64
+ async markAsError(id, errorCode, errorDetails) {
65
+ return await this.update(id, {
66
+ status: 'error',
67
+ completedAt: new Date(),
68
+ errorCode,
69
+ errorDetails: errorDetails ?? null,
70
+ });
71
+ }
72
+ async findByRunId(runId) {
73
+ return await this.find({ where: { runId }, order: { runIndex: 'ASC' } });
74
+ }
75
+ async findById(id) {
76
+ return await this.findOneBy({ id });
77
+ }
78
+ };
79
+ exports.AgentEvalResultRepository = AgentEvalResultRepository;
80
+ exports.AgentEvalResultRepository = AgentEvalResultRepository = __decorate([
81
+ (0, di_1.Service)(),
82
+ __metadata("design:paramtypes", [typeorm_1.DataSource])
83
+ ], AgentEvalResultRepository);
84
+ //# sourceMappingURL=agent-eval-result.repository.ee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-eval-result.repository.ee.js","sourceRoot":"","sources":["../../src/repositories/agent-eval-result.repository.ee.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { DataSource, Repository } from '@n8n/typeorm';
2
+ import type { IDataObject } from 'n8n-workflow';
3
+ import { AgentEvalRun } from '../entities';
4
+ type CreateAgentEvalRunAttrs = {
5
+ datasetId: string;
6
+ agentVersionId?: string | null;
7
+ createdById?: string | null;
8
+ };
9
+ export declare class AgentEvalRunRepository extends Repository<AgentEvalRun> {
10
+ constructor(dataSource: DataSource);
11
+ createRun(attrs: CreateAgentEvalRunAttrs): Promise<AgentEvalRun>;
12
+ markAsRunning(id: string, instanceId?: string): Promise<import("@n8n/typeorm").UpdateResult>;
13
+ markAsCompleted(id: string, metrics: IDataObject | null): Promise<import("@n8n/typeorm").UpdateResult>;
14
+ markAsError(id: string, errorCode: string, errorDetails?: IDataObject | null, metrics?: IDataObject | null): Promise<import("@n8n/typeorm").UpdateResult>;
15
+ markAsCancelled(id: string, metrics?: IDataObject | null): Promise<import("@n8n/typeorm").UpdateResult>;
16
+ requestCancellation(id: string): Promise<import("@n8n/typeorm").UpdateResult>;
17
+ findByDatasetId(datasetId: string): Promise<AgentEvalRun[]>;
18
+ findById(id: string): Promise<AgentEvalRun | null>;
19
+ findByIdAndAgentId(id: string, agentId: string): Promise<AgentEvalRun | null>;
20
+ findByDatasetIdAndAgentId(datasetId: string, agentId: string): Promise<AgentEvalRun[]>;
21
+ markAllIncompleteAsError(): Promise<import("@n8n/typeorm").UpdateResult>;
22
+ isCancellationRequested(id: string): Promise<boolean>;
23
+ }
24
+ export {};
@@ -0,0 +1,99 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AgentEvalRunRepository = void 0;
13
+ const di_1 = require("@n8n/di");
14
+ const typeorm_1 = require("@n8n/typeorm");
15
+ const entities_1 = require("../entities");
16
+ let AgentEvalRunRepository = class AgentEvalRunRepository extends typeorm_1.Repository {
17
+ constructor(dataSource) {
18
+ super(entities_1.AgentEvalRun, dataSource.manager);
19
+ }
20
+ async createRun(attrs) {
21
+ const run = this.create({
22
+ status: 'new',
23
+ datasetId: attrs.datasetId,
24
+ agentVersionId: attrs.agentVersionId ?? null,
25
+ createdById: attrs.createdById ?? null,
26
+ cancelRequested: false,
27
+ });
28
+ return await this.save(run);
29
+ }
30
+ async markAsRunning(id, instanceId) {
31
+ return await this.update(id, {
32
+ status: 'running',
33
+ runAt: new Date(),
34
+ runningInstanceId: instanceId ?? null,
35
+ });
36
+ }
37
+ async markAsCompleted(id, metrics) {
38
+ return await this.update(id, {
39
+ status: 'completed',
40
+ completedAt: new Date(),
41
+ metrics,
42
+ runningInstanceId: null,
43
+ });
44
+ }
45
+ async markAsError(id, errorCode, errorDetails, metrics) {
46
+ return await this.update(id, {
47
+ status: 'error',
48
+ completedAt: new Date(),
49
+ errorCode,
50
+ errorDetails: errorDetails ?? null,
51
+ metrics: metrics ?? null,
52
+ runningInstanceId: null,
53
+ });
54
+ }
55
+ async markAsCancelled(id, metrics = null) {
56
+ return await this.update(id, {
57
+ status: 'cancelled',
58
+ completedAt: new Date(),
59
+ metrics,
60
+ runningInstanceId: null,
61
+ });
62
+ }
63
+ async requestCancellation(id) {
64
+ return await this.update(id, { cancelRequested: true });
65
+ }
66
+ async findByDatasetId(datasetId) {
67
+ return await this.find({ where: { datasetId }, order: { createdAt: 'DESC' } });
68
+ }
69
+ async findById(id) {
70
+ return await this.findOneBy({ id });
71
+ }
72
+ async findByIdAndAgentId(id, agentId) {
73
+ return await this.findOne({ where: { id, dataset: { agentId } } });
74
+ }
75
+ async findByDatasetIdAndAgentId(datasetId, agentId) {
76
+ return await this.find({
77
+ where: { datasetId, dataset: { agentId } },
78
+ order: { createdAt: 'DESC' },
79
+ });
80
+ }
81
+ async markAllIncompleteAsError() {
82
+ return await this.update({ status: (0, typeorm_1.In)(['new', 'running']) }, {
83
+ status: 'error',
84
+ errorCode: 'interrupted',
85
+ completedAt: new Date(),
86
+ runningInstanceId: null,
87
+ });
88
+ }
89
+ async isCancellationRequested(id) {
90
+ const run = await this.findOne({ where: { id }, select: ['id', 'cancelRequested'] });
91
+ return run?.cancelRequested ?? false;
92
+ }
93
+ };
94
+ exports.AgentEvalRunRepository = AgentEvalRunRepository;
95
+ exports.AgentEvalRunRepository = AgentEvalRunRepository = __decorate([
96
+ (0, di_1.Service)(),
97
+ __metadata("design:paramtypes", [typeorm_1.DataSource])
98
+ ], AgentEvalRunRepository);
99
+ //# sourceMappingURL=agent-eval-run.repository.ee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-eval-run.repository.ee.js","sourceRoot":"","sources":["../../src/repositories/agent-eval-run.repository.ee.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Repository } from '@n8n/typeorm';
2
+ import type { EntityManager, ObjectLiteral } from '@n8n/typeorm';
3
+ import type { OperationContext } from '../services/transaction';
4
+ export declare abstract class BaseRepository<Entity extends ObjectLiteral> extends Repository<Entity> {
5
+ protected managerFor(ctx: OperationContext): EntityManager;
6
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseRepository = void 0;
4
+ const typeorm_1 = require("@n8n/typeorm");
5
+ const n8n_workflow_1 = require("n8n-workflow");
6
+ const typeorm_transaction_1 = require("../services/typeorm-transaction");
7
+ class BaseRepository extends typeorm_1.Repository {
8
+ managerFor(ctx) {
9
+ const { trx } = ctx;
10
+ if (!trx)
11
+ return this.manager;
12
+ if (!(trx instanceof typeorm_transaction_1.TypeOrmTransaction)) {
13
+ throw new n8n_workflow_1.UnexpectedError('Transaction was not created by the TypeORM runner');
14
+ }
15
+ return trx.getEntityManager();
16
+ }
17
+ }
18
+ exports.BaseRepository = BaseRepository;
19
+ //# sourceMappingURL=base-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-repository.js","sourceRoot":"","sources":["../../src/repositories/base-repository.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAE1C,+CAA+C;AAG/C,yEAAqE;AAUrE,oBAAmE,SAAQ,oBAAkB;IAMlF,UAAU,CAAC,GAAqB;QACzC,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QAE9B,IAAI,CAAC,CAAC,GAAG,YAAY,wCAAkB,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,8BAAe,CAAC,mDAAmD,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC/B,CAAC;CACD"}
@@ -4,6 +4,8 @@ import { BinaryDataFile } from '../entities';
4
4
  export declare class BinaryDataRepository extends Repository<BinaryDataFile> {
5
5
  private readonly databaseConfig;
6
6
  constructor(dataSource: DataSource, databaseConfig: DatabaseConfig);
7
+ findContentByFileId(fileId: string): Promise<Buffer | null>;
8
+ deleteByFileIds(fileIds: string[]): Promise<void>;
7
9
  copyStoredFile(sourceFileId: string, targetFileId: string, targetSourceType: string, targetSourceId: string): Promise<boolean>;
8
10
  private getTableName;
9
11
  private getColumnName;
@@ -20,6 +20,15 @@ let BinaryDataRepository = class BinaryDataRepository extends typeorm_1.Reposito
20
20
  super(entities_1.BinaryDataFile, dataSource.manager);
21
21
  this.databaseConfig = databaseConfig;
22
22
  }
23
+ async findContentByFileId(fileId) {
24
+ const file = await this.findOne({ where: { fileId }, select: ['data'] });
25
+ return file?.data ?? null;
26
+ }
27
+ async deleteByFileIds(fileIds) {
28
+ if (fileIds.length === 0)
29
+ return;
30
+ await this.delete({ fileId: (0, typeorm_1.In)(fileIds) });
31
+ }
23
32
  async copyStoredFile(sourceFileId, targetFileId, targetSourceType, targetSourceId) {
24
33
  const tableName = this.getTableName('binary_data');
25
34
  const fileId = this.getColumnName('fileId');
@@ -1 +1 @@
1
- {"version":3,"file":"binary-data.repository.js","sourceRoot":"","sources":["../../src/repositories/binary-data.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA6C;AAC7C,gCAAkC;AAClC,0CAAsD;AAEtD,0CAA6C;AAC7C,iEAAqD;AAG9C,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oBAA0B;IACnE,YACC,UAAsB,EACL,cAA8B;QAE/C,KAAK,CAAC,yBAAc,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;8BAFzB,cAAc;IAGhC,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,YAAoB,EACpB,YAAoB,EACpB,gBAAwB,EACxB,cAAsB;QAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAEhD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GACnC,wBAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAG;iBACC,SAAS,KAAK,MAAM,KAAK,UAAU,KAAK,QAAQ,KAAK,IAAI,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ;YACrG,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,IAAI,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ;UAC5E,SAAS;WACR,MAAM,MAAM,MAAM;GAC1B,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAE5E,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE9B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACtD,CAAC;IAEO,YAAY,CAAC,IAAY;QAChC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,GAAG,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IAEO,aAAa,CAAC,IAAY;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;CACD,CAAA;;+BAhDY,oBAAoB;IADhC,IAAA,YAAO,GAAE;qCAGI,oBAAU,EACW,uBAAc;GAHpC,oBAAoB,CAgDhC"}
1
+ {"version":3,"file":"binary-data.repository.js","sourceRoot":"","sources":["../../src/repositories/binary-data.repository.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,29 @@
1
1
  import type { Scope } from '@n8n/permissions';
2
2
  import type { FindManyOptions } from '@n8n/typeorm';
3
- import { DataSource, Repository } from '@n8n/typeorm';
3
+ import { DataSource } from '@n8n/typeorm';
4
4
  import { CredentialsEntity, type User } from '../entities';
5
+ import { BaseRepository } from './base-repository';
5
6
  import { type CredentialDependencyFilter } from './credential-dependency.repository';
6
- import type { ListQuery } from '../entities/types-db';
7
- export declare class CredentialsRepository extends Repository<CredentialsEntity> {
8
- constructor(dataSource: DataSource);
7
+ import { InstanceCredentialAssignmentRepository } from './instance-credential-assignment.repository';
8
+ import type { ICredentialsDb, ListQuery } from '../entities/types-db';
9
+ import type { OperationContext } from '../services/transaction';
10
+ export declare class CredentialsRepository extends BaseRepository<CredentialsEntity> {
11
+ private readonly instanceCredentialAssignmentRepository;
12
+ constructor(dataSource: DataSource, instanceCredentialAssignmentRepository: InstanceCredentialAssignmentRepository);
9
13
  findStartingWith(credentialName: string): Promise<CredentialsEntity[]>;
14
+ findNonProjectCredentialsByIds(ids: string[]): Promise<CredentialsEntity[]>;
15
+ findDanglingProjectCredentials(): Promise<CredentialsEntity[]>;
16
+ findInstanceCredentialById(credentialId: string, ctx: OperationContext): Promise<CredentialsEntity | null>;
17
+ saveInstanceCredential(credential: CredentialsEntity, ctx: OperationContext): Promise<CredentialsEntity>;
18
+ updateInstanceCredential(credentialId: string, data: Pick<ICredentialsDb, 'id' | 'name' | 'type' | 'data'>, ctx: OperationContext): Promise<CredentialsEntity | null>;
19
+ deleteInstanceCredentialIfUnassigned(credentialId: string, ctx?: OperationContext): Promise<{
20
+ status: 'deleted';
21
+ } | {
22
+ status: 'notFound';
23
+ } | {
24
+ status: 'assigned';
25
+ credentialUseIds: string[];
26
+ }>;
10
27
  findMany(listQueryOptions?: ListQuery.Options & {
11
28
  includeData?: boolean;
12
29
  user?: User;
@@ -17,6 +34,7 @@ export declare class CredentialsRepository extends Repository<CredentialsEntity>
17
34
  user?: User;
18
35
  order?: FindManyOptions<CredentialsEntity>['order'];
19
36
  }, credentialIds?: string[]): Promise<[CredentialsEntity[], number]>;
37
+ private onlyProjectCredentials;
20
38
  private toFindManyOptions;
21
39
  private handleSharedFilters;
22
40
  getManyByIds(ids: string[], { withSharings }?: {
@@ -13,31 +13,96 @@ exports.CredentialsRepository = void 0;
13
13
  const di_1 = require("@n8n/di");
14
14
  const typeorm_1 = require("@n8n/typeorm");
15
15
  const entities_1 = require("../entities");
16
+ const base_repository_1 = require("./base-repository");
16
17
  const credential_dependency_repository_1 = require("./credential-dependency.repository");
18
+ const instance_credential_assignment_repository_1 = require("./instance-credential-assignment.repository");
17
19
  const shared_credentials_repository_1 = require("./shared-credentials.repository");
18
- let CredentialsRepository = class CredentialsRepository extends typeorm_1.Repository {
19
- constructor(dataSource) {
20
+ let CredentialsRepository = class CredentialsRepository extends base_repository_1.BaseRepository {
21
+ constructor(dataSource, instanceCredentialAssignmentRepository) {
20
22
  super(entities_1.CredentialsEntity, dataSource.manager);
23
+ this.instanceCredentialAssignmentRepository = instanceCredentialAssignmentRepository;
21
24
  }
22
25
  async findStartingWith(credentialName) {
23
26
  return await this.find({
24
27
  select: ['name'],
25
- where: { name: (0, typeorm_1.Like)(`${credentialName}%`) },
28
+ where: { name: (0, typeorm_1.Like)(`${credentialName}%`), usageScope: 'project' },
26
29
  });
27
30
  }
31
+ async findNonProjectCredentialsByIds(ids) {
32
+ return await this.find({
33
+ where: { id: (0, typeorm_1.In)(ids), usageScope: (0, typeorm_1.Not)('project') },
34
+ select: ['id'],
35
+ });
36
+ }
37
+ async findDanglingProjectCredentials() {
38
+ return await this.createQueryBuilder('credentials')
39
+ .leftJoinAndSelect('credentials.shared', 'shared')
40
+ .where('shared.credentialsId is null')
41
+ .andWhere('credentials.usageScope = :usageScope', { usageScope: 'project' })
42
+ .getMany();
43
+ }
44
+ async findInstanceCredentialById(credentialId, ctx) {
45
+ return await this.managerFor(ctx).findOneBy(entities_1.CredentialsEntity, {
46
+ id: credentialId,
47
+ usageScope: 'instance',
48
+ });
49
+ }
50
+ async saveInstanceCredential(credential, ctx) {
51
+ return await this.managerFor(ctx).save(entities_1.CredentialsEntity, credential);
52
+ }
53
+ async updateInstanceCredential(credentialId, data, ctx) {
54
+ const manager = this.managerFor(ctx);
55
+ await manager.update(entities_1.CredentialsEntity, { id: credentialId, usageScope: 'instance' }, data);
56
+ return await manager.findOneBy(entities_1.CredentialsEntity, {
57
+ id: credentialId,
58
+ usageScope: 'instance',
59
+ });
60
+ }
61
+ async deleteInstanceCredentialIfUnassigned(credentialId, ctx = {}) {
62
+ const manager = this.managerFor(ctx);
63
+ const credential = await manager.findOneBy(entities_1.CredentialsEntity, {
64
+ id: credentialId,
65
+ usageScope: 'instance',
66
+ });
67
+ if (!credential)
68
+ return { status: 'notFound' };
69
+ const credentialUseIds = await this.instanceCredentialAssignmentRepository.findCredentialUseIds(credentialId, ctx);
70
+ if (credentialUseIds.length > 0)
71
+ return { status: 'assigned', credentialUseIds };
72
+ try {
73
+ const result = await manager.delete(entities_1.CredentialsEntity, {
74
+ id: credentialId,
75
+ usageScope: 'instance',
76
+ });
77
+ return result.affected === 0 ? { status: 'notFound' } : { status: 'deleted' };
78
+ }
79
+ catch (error) {
80
+ if (error instanceof typeorm_1.QueryFailedError && !ctx.trx) {
81
+ const concurrentCredentialUseIds = await this.instanceCredentialAssignmentRepository.findCredentialUseIds(credentialId, ctx);
82
+ if (concurrentCredentialUseIds.length > 0) {
83
+ return { status: 'assigned', credentialUseIds: concurrentCredentialUseIds };
84
+ }
85
+ }
86
+ throw error;
87
+ }
88
+ }
28
89
  async findMany(listQueryOptions, credentialIds) {
29
90
  const findManyOptions = this.toFindManyOptions(listQueryOptions);
30
91
  if (credentialIds) {
31
92
  findManyOptions.where = { ...findManyOptions.where, id: (0, typeorm_1.In)(credentialIds) };
32
93
  }
33
- return await this.find(findManyOptions);
94
+ return await this.find(this.onlyProjectCredentials(findManyOptions));
34
95
  }
35
96
  async findManyAndCount(listQueryOptions, credentialIds) {
36
97
  const findManyOptions = this.toFindManyOptions(listQueryOptions);
37
98
  if (credentialIds) {
38
99
  findManyOptions.where = { ...findManyOptions.where, id: (0, typeorm_1.In)(credentialIds) };
39
100
  }
40
- return await this.findAndCount(findManyOptions);
101
+ return await this.findAndCount(this.onlyProjectCredentials(findManyOptions));
102
+ }
103
+ onlyProjectCredentials(findManyOptions) {
104
+ findManyOptions.where = { ...findManyOptions.where, usageScope: 'project' };
105
+ return findManyOptions;
41
106
  }
42
107
  toFindManyOptions(listQueryOptions) {
43
108
  const findManyOptions = {};
@@ -128,7 +193,9 @@ let CredentialsRepository = class CredentialsRepository extends typeorm_1.Reposi
128
193
  }
129
194
  }
130
195
  async getManyByIds(ids, { withSharings } = { withSharings: false }) {
131
- const findManyOptions = { where: { id: (0, typeorm_1.In)(ids) } };
196
+ const findManyOptions = {
197
+ where: { id: (0, typeorm_1.In)(ids), usageScope: 'project' },
198
+ };
132
199
  if (withSharings) {
133
200
  findManyOptions.relations = {
134
201
  shared: {
@@ -152,6 +219,7 @@ let CredentialsRepository = class CredentialsRepository extends typeorm_1.Reposi
152
219
  findManyOptions.where = {
153
220
  ...findManyOptions.where,
154
221
  isGlobal: true,
222
+ usageScope: 'project',
155
223
  ...(type ? { type: (0, typeorm_1.Like)(`%${type}%`) } : {}),
156
224
  };
157
225
  return await this.find(findManyOptions);
@@ -160,6 +228,7 @@ let CredentialsRepository = class CredentialsRepository extends typeorm_1.Reposi
160
228
  const { includeData, dependencyFilter, type } = options;
161
229
  const qb = this.createQueryBuilder('credential');
162
230
  qb.where('credential.isGlobal = :isGlobal', { isGlobal: true });
231
+ qb.andWhere('credential.usageScope = :usageScope', { usageScope: 'project' });
163
232
  if (type) {
164
233
  qb.andWhere('credential.type LIKE :type', { type: `%${type}%` });
165
234
  }
@@ -186,18 +255,22 @@ let CredentialsRepository = class CredentialsRepository extends typeorm_1.Reposi
186
255
  return await qb.getMany();
187
256
  }
188
257
  async findAllPersonalCredentials() {
189
- return await this.findBy({ shared: { project: { type: 'personal' } } });
258
+ return await this.findBy({
259
+ usageScope: 'project',
260
+ shared: { project: { type: 'personal' } },
261
+ });
190
262
  }
191
263
  async findAllCredentialsForWorkflow(workflowId) {
192
264
  return await this.findBy({
265
+ usageScope: 'project',
193
266
  shared: { project: { sharedWorkflows: { workflowId } } },
194
267
  });
195
268
  }
196
269
  async findAllCredentialsForProject(projectId) {
197
- return await this.findBy({ shared: { projectId } });
270
+ return await this.findBy({ usageScope: 'project', shared: { projectId } });
198
271
  }
199
272
  async findByNameAndTypeInProject(name, type, projectId) {
200
- return await this.findBy({ name, type, shared: { projectId } });
273
+ return await this.findBy({ name, type, usageScope: 'project', shared: { projectId } });
201
274
  }
202
275
  async getManyAndCountWithSharingSubquery(user, sharingOptions, options = {}) {
203
276
  const query = this.getManyQueryWithSharingSubquery(user, sharingOptions, options);
@@ -213,6 +286,7 @@ let CredentialsRepository = class CredentialsRepository extends typeorm_1.Reposi
213
286
  }
214
287
  getManyQueryWithSharingSubquery(user, sharingOptions, options = {}) {
215
288
  const qb = this.createQueryBuilder('credential');
289
+ qb.andWhere('credential.usageScope = :usageScope', { usageScope: 'project' });
216
290
  if (options.filters?.dependency) {
217
291
  (0, credential_dependency_repository_1.addCredentialDependencyExistsFilter)(qb, options.filters.dependency);
218
292
  }
@@ -282,6 +356,6 @@ let CredentialsRepository = class CredentialsRepository extends typeorm_1.Reposi
282
356
  exports.CredentialsRepository = CredentialsRepository;
283
357
  exports.CredentialsRepository = CredentialsRepository = __decorate([
284
358
  (0, di_1.Service)(),
285
- __metadata("design:paramtypes", [typeorm_1.DataSource])
359
+ __metadata("design:paramtypes", [typeorm_1.DataSource, instance_credential_assignment_repository_1.InstanceCredentialAssignmentRepository])
286
360
  ], CredentialsRepository);
287
361
  //# sourceMappingURL=credentials.repository.js.map