@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.
- package/dist/build.tsbuildinfo +1 -1
- package/dist/connection/db-connection.d.ts +1 -0
- package/dist/connection/db-connection.js +28 -2
- package/dist/connection/db-connection.js.map +1 -1
- package/dist/entities/agent-eval-dataset.ee.d.ts +12 -0
- package/dist/entities/agent-eval-dataset.ee.js +50 -0
- package/dist/entities/agent-eval-dataset.ee.js.map +1 -0
- package/dist/entities/agent-eval-rating.ee.d.ts +13 -0
- package/dist/entities/agent-eval-rating.ee.js +47 -0
- package/dist/entities/agent-eval-rating.ee.js.map +1 -0
- package/dist/entities/agent-eval-result.ee.d.ts +22 -0
- package/dist/entities/agent-eval-result.ee.js +79 -0
- package/dist/entities/agent-eval-result.ee.js.map +1 -0
- package/dist/entities/agent-eval-run.ee.d.ts +21 -0
- package/dist/entities/agent-eval-run.ee.js +75 -0
- package/dist/entities/agent-eval-run.ee.js.map +1 -0
- package/dist/entities/binary-data-file.d.ts +1 -1
- package/dist/entities/binary-data-file.js +6 -1
- package/dist/entities/binary-data-file.js.map +1 -1
- package/dist/entities/credentials-entity.d.ts +2 -0
- package/dist/entities/credentials-entity.js +4 -0
- package/dist/entities/credentials-entity.js.map +1 -1
- package/dist/entities/execution-entity.js +1 -1
- package/dist/entities/execution-entity.js.map +1 -1
- package/dist/entities/index.d.ts +21 -3
- package/dist/entities/index.js +34 -2
- package/dist/entities/index.js.map +1 -1
- package/dist/entities/instance-credential-assignment.d.ts +8 -0
- package/dist/entities/instance-credential-assignment.js +35 -0
- package/dist/entities/instance-credential-assignment.js.map +1 -0
- package/dist/entities/scheduled-job.d.ts +4 -0
- package/dist/entities/scheduled-job.js +15 -4
- package/dist/entities/scheduled-job.js.map +1 -1
- package/dist/entities/scheduled-task.d.ts +1 -0
- package/dist/entities/scheduled-task.js +6 -1
- package/dist/entities/scheduled-task.js.map +1 -1
- package/dist/entities/types-db.d.ts +2 -1
- package/dist/entities/types-db.js.map +1 -1
- package/dist/entities/workflow-publication-trigger-status.js.map +1 -1
- package/dist/entities/workflow-review-request-author.ee.d.ts +4 -0
- package/dist/entities/workflow-review-request-author.ee.js +28 -0
- package/dist/entities/workflow-review-request-author.ee.js.map +1 -0
- package/dist/entities/workflow-review-request-reviewer.ee.d.ts +4 -0
- package/dist/entities/workflow-review-request-reviewer.ee.js +29 -0
- package/dist/entities/workflow-review-request-reviewer.ee.js.map +1 -0
- package/dist/entities/workflow-review-request-workflow.ee.d.ts +6 -0
- package/dist/entities/workflow-review-request-workflow.ee.js +41 -0
- package/dist/entities/workflow-review-request-workflow.ee.js.map +1 -0
- package/dist/entities/workflow-review-request.ee.d.ts +26 -0
- package/dist/entities/workflow-review-request.ee.js +69 -0
- package/dist/entities/workflow-review-request.ee.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/migrations/common/1630330987096-UpdateWorkflowCredentials.js.map +1 -1
- package/dist/migrations/common/1784000000052-CreateWorkflowReviewRequestTables.d.ts +11 -0
- package/dist/migrations/common/1784000000052-CreateWorkflowReviewRequestTables.js +138 -0
- package/dist/migrations/common/1784000000052-CreateWorkflowReviewRequestTables.js.map +1 -0
- package/dist/migrations/common/1784815940110-AddStoredAtToAgentExecution.d.ts +5 -0
- package/dist/migrations/common/1784815940110-AddStoredAtToAgentExecution.js +18 -0
- package/dist/migrations/common/1784815940110-AddStoredAtToAgentExecution.js.map +1 -0
- package/dist/migrations/common/1784815940111-AddInstanceCredentials.d.ts +5 -0
- package/dist/migrations/common/1784815940111-AddInstanceCredentials.js +36 -0
- package/dist/migrations/common/1784815940111-AddInstanceCredentials.js.map +1 -0
- package/dist/migrations/common/1784815940112-CreateAgentEvalTables.d.ts +5 -0
- package/dist/migrations/common/1784815940112-CreateAgentEvalTables.js +87 -0
- package/dist/migrations/common/1784815940112-CreateAgentEvalTables.js.map +1 -0
- package/dist/migrations/common/1784897791636-AddAvailableInMcpToAgents.d.ts +5 -0
- package/dist/migrations/common/1784897791636-AddAvailableInMcpToAgents.js +17 -0
- package/dist/migrations/common/1784897791636-AddAvailableInMcpToAgents.js.map +1 -0
- package/dist/migrations/common/1785162364001-AddIsFirstPartyToOAuthClients.d.ts +5 -0
- package/dist/migrations/common/1785162364001-AddIsFirstPartyToOAuthClients.js +19 -0
- package/dist/migrations/common/1785162364001-AddIsFirstPartyToOAuthClients.js.map +1 -0
- package/dist/migrations/common/1785186578138-AddAgentFileStorageColumns.d.ts +7 -0
- package/dist/migrations/common/1785186578138-AddAgentFileStorageColumns.js +55 -0
- package/dist/migrations/common/1785186578138-AddAgentFileStorageColumns.js.map +1 -0
- package/dist/migrations/common/1785247194306-CrashStaleEnqueuedExecutions.d.ts +4 -0
- package/dist/migrations/common/1785247194306-CrashStaleEnqueuedExecutions.js +32 -0
- package/dist/migrations/common/1785247194306-CrashStaleEnqueuedExecutions.js.map +1 -0
- package/dist/migrations/common/1785247194307-AddMisfirePolicyToScheduler.d.ts +8 -0
- package/dist/migrations/common/1785247194307-AddMisfirePolicyToScheduler.js +71 -0
- package/dist/migrations/common/1785247194307-AddMisfirePolicyToScheduler.js.map +1 -0
- package/dist/migrations/common/1785255306000-CreateAgentChatAttachmentsTable.d.ts +6 -0
- package/dist/migrations/common/1785255306000-CreateAgentChatAttachmentsTable.js +56 -0
- package/dist/migrations/common/1785255306000-CreateAgentChatAttachmentsTable.js.map +1 -0
- package/dist/migrations/common/1785500832626-AddSetupCompletedAtToAgents.d.ts +5 -0
- package/dist/migrations/common/1785500832626-AddSetupCompletedAtToAgents.js +17 -0
- package/dist/migrations/common/1785500832626-AddSetupCompletedAtToAgents.js.map +1 -0
- package/dist/migrations/postgresdb/1785162364000-ChangeInstalledNodeVersionType.d.ts +4 -0
- package/dist/migrations/postgresdb/1785162364000-ChangeInstalledNodeVersionType.js +10 -0
- package/dist/migrations/postgresdb/1785162364000-ChangeInstalledNodeVersionType.js.map +1 -0
- package/dist/migrations/postgresdb/index.js +24 -0
- package/dist/migrations/postgresdb/index.js.map +1 -1
- package/dist/migrations/sqlite/1784897791636-AddAvailableInMcpToAgents.d.ts +4 -0
- package/dist/migrations/sqlite/1784897791636-AddAvailableInMcpToAgents.js +12 -0
- package/dist/migrations/sqlite/1784897791636-AddAvailableInMcpToAgents.js.map +1 -0
- package/dist/migrations/sqlite/1785162364000-ChangeInstalledNodeVersionType.d.ts +4 -0
- package/dist/migrations/sqlite/1785162364000-ChangeInstalledNodeVersionType.js +38 -0
- package/dist/migrations/sqlite/1785162364000-ChangeInstalledNodeVersionType.js.map +1 -0
- package/dist/migrations/sqlite/1785162364001-AddIsFirstPartyToOAuthClients.d.ts +6 -0
- package/dist/migrations/sqlite/1785162364001-AddIsFirstPartyToOAuthClients.js +22 -0
- package/dist/migrations/sqlite/1785162364001-AddIsFirstPartyToOAuthClients.js.map +1 -0
- package/dist/migrations/sqlite/1785247194307-AddMisfirePolicyToScheduler.d.ts +4 -0
- package/dist/migrations/sqlite/1785247194307-AddMisfirePolicyToScheduler.js +12 -0
- package/dist/migrations/sqlite/1785247194307-AddMisfirePolicyToScheduler.js.map +1 -0
- package/dist/migrations/sqlite/1785500832626-AddSetupCompletedAtToAgents.d.ts +4 -0
- package/dist/migrations/sqlite/1785500832626-AddSetupCompletedAtToAgents.js +12 -0
- package/dist/migrations/sqlite/1785500832626-AddSetupCompletedAtToAgents.js.map +1 -0
- package/dist/migrations/sqlite/index.js +24 -0
- package/dist/migrations/sqlite/index.js.map +1 -1
- package/dist/repositories/agent-eval-dataset.repository.ee.d.ts +28 -0
- package/dist/repositories/agent-eval-dataset.repository.ee.js +62 -0
- package/dist/repositories/agent-eval-dataset.repository.ee.js.map +1 -0
- package/dist/repositories/agent-eval-rating.repository.ee.d.ts +18 -0
- package/dist/repositories/agent-eval-rating.repository.ee.js +71 -0
- package/dist/repositories/agent-eval-rating.repository.ee.js.map +1 -0
- package/dist/repositories/agent-eval-result.repository.ee.d.ts +27 -0
- package/dist/repositories/agent-eval-result.repository.ee.js +84 -0
- package/dist/repositories/agent-eval-result.repository.ee.js.map +1 -0
- package/dist/repositories/agent-eval-run.repository.ee.d.ts +24 -0
- package/dist/repositories/agent-eval-run.repository.ee.js +99 -0
- package/dist/repositories/agent-eval-run.repository.ee.js.map +1 -0
- package/dist/repositories/base-repository.d.ts +6 -0
- package/dist/repositories/base-repository.js +19 -0
- package/dist/repositories/base-repository.js.map +1 -0
- package/dist/repositories/binary-data.repository.d.ts +2 -0
- package/dist/repositories/binary-data.repository.js +9 -0
- package/dist/repositories/binary-data.repository.js.map +1 -1
- package/dist/repositories/credentials.repository.d.ts +22 -4
- package/dist/repositories/credentials.repository.js +84 -10
- package/dist/repositories/credentials.repository.js.map +1 -1
- package/dist/repositories/evaluation-collection.repository.d.ts +1 -0
- package/dist/repositories/evaluation-collection.repository.js +5 -0
- package/dist/repositories/evaluation-collection.repository.js.map +1 -1
- package/dist/repositories/execution.repository.d.ts +1 -0
- package/dist/repositories/execution.repository.js +10 -5
- package/dist/repositories/execution.repository.js.map +1 -1
- package/dist/repositories/index.d.ts +10 -0
- package/dist/repositories/index.js +22 -1
- package/dist/repositories/index.js.map +1 -1
- package/dist/repositories/instance-credential-assignment.repository.d.ts +17 -0
- package/dist/repositories/instance-credential-assignment.repository.js +96 -0
- package/dist/repositories/instance-credential-assignment.repository.js.map +1 -0
- package/dist/repositories/role.repository.d.ts +1 -0
- package/dist/repositories/role.repository.js +24 -0
- package/dist/repositories/role.repository.js.map +1 -1
- package/dist/repositories/scheduled-job.repository.d.ts +5 -2
- package/dist/repositories/scheduled-job.repository.js +15 -0
- package/dist/repositories/scheduled-job.repository.js.map +1 -1
- package/dist/repositories/scheduled-task.repository.d.ts +11 -0
- package/dist/repositories/scheduled-task.repository.js +85 -2
- package/dist/repositories/scheduled-task.repository.js.map +1 -1
- package/dist/repositories/settings.repository.d.ts +6 -2
- package/dist/repositories/settings.repository.js +8 -1
- package/dist/repositories/settings.repository.js.map +1 -1
- package/dist/repositories/shared-workflow.repository.d.ts +1 -0
- package/dist/repositories/shared-workflow.repository.js +7 -0
- package/dist/repositories/shared-workflow.repository.js.map +1 -1
- package/dist/repositories/tag.repository.d.ts +1 -0
- package/dist/repositories/tag.repository.js +6 -0
- package/dist/repositories/tag.repository.js.map +1 -1
- package/dist/repositories/test-case-execution.repository.ee.d.ts +5 -2
- package/dist/repositories/test-case-execution.repository.ee.js +3 -2
- package/dist/repositories/test-case-execution.repository.ee.js.map +1 -1
- package/dist/repositories/user.repository.d.ts +5 -0
- package/dist/repositories/user.repository.js +19 -0
- package/dist/repositories/user.repository.js.map +1 -1
- package/dist/repositories/webhook.repository.d.ts +2 -0
- package/dist/repositories/webhook.repository.js +6 -0
- package/dist/repositories/webhook.repository.js.map +1 -1
- package/dist/repositories/workflow-publication-outbox.repository.d.ts +3 -3
- package/dist/repositories/workflow-publication-outbox.repository.js +73 -53
- package/dist/repositories/workflow-publication-outbox.repository.js.map +1 -1
- package/dist/repositories/workflow-publish-history.repository.d.ts +2 -0
- package/dist/repositories/workflow-publish-history.repository.js +47 -0
- package/dist/repositories/workflow-publish-history.repository.js.map +1 -1
- package/dist/repositories/workflow-review-request-author.repository.d.ts +20 -0
- package/dist/repositories/workflow-review-request-author.repository.js +61 -0
- package/dist/repositories/workflow-review-request-author.repository.js.map +1 -0
- package/dist/repositories/workflow-review-request-reviewer.repository.d.ts +13 -0
- package/dist/repositories/workflow-review-request-reviewer.repository.js +69 -0
- package/dist/repositories/workflow-review-request-reviewer.repository.js.map +1 -0
- package/dist/repositories/workflow-review-request-workflow.repository.d.ts +29 -0
- package/dist/repositories/workflow-review-request-workflow.repository.js +82 -0
- package/dist/repositories/workflow-review-request-workflow.repository.js.map +1 -0
- package/dist/repositories/workflow-review-request.repository.d.ts +53 -0
- package/dist/repositories/workflow-review-request.repository.js +129 -0
- package/dist/repositories/workflow-review-request.repository.js.map +1 -0
- package/dist/repositories/workflow-statistics.repository.js +1 -1
- package/dist/repositories/workflow-statistics.repository.js.map +1 -1
- package/dist/repositories/workflow.repository.d.ts +6 -0
- package/dist/repositories/workflow.repository.js +6 -0
- package/dist/repositories/workflow.repository.js.map +1 -1
- package/dist/services/db-lock.service.d.ts +20 -2
- package/dist/services/db-lock.service.js +39 -18
- package/dist/services/db-lock.service.js.map +1 -1
- package/dist/services/transaction.d.ts +15 -0
- package/dist/services/transaction.js +16 -0
- package/dist/services/transaction.js.map +1 -0
- package/dist/services/typeorm-transaction.d.ts +15 -0
- package/dist/services/typeorm-transaction.js +70 -0
- package/dist/services/typeorm-transaction.js.map +1 -0
- package/dist/utils/dialect-time.d.ts +2 -0
- package/dist/utils/dialect-time.js +18 -0
- package/dist/utils/dialect-time.js.map +1 -1
- package/dist/utils/transaction.js.map +1 -1
- 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,
|
|
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
|
|
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
|
|
7
|
-
|
|
8
|
-
|
|
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
|
|
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 = {
|
|
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({
|
|
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
|