n8n 2.31.5 → 2.31.7
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/modules/instance-ai/instance-ai.service.d.ts +2 -0
- package/dist/modules/instance-ai/instance-ai.service.js +23 -0
- package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
- package/dist/security-audit/risk-reporters/credentials-risk-reporter.d.ts +4 -6
- package/dist/security-audit/risk-reporters/credentials-risk-reporter.js +13 -22
- package/dist/security-audit/risk-reporters/credentials-risk-reporter.js.map +1 -1
- package/package.json +18 -18
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { SecurityConfig } from '@n8n/config';
|
|
2
|
-
import { CredentialsRepository } from '@n8n/db';
|
|
2
|
+
import { CredentialsRepository, ExecutionRepository } from '@n8n/db';
|
|
3
3
|
import type { IWorkflowBase } from 'n8n-workflow';
|
|
4
|
-
import { ExecutionPersistence } from '../../executions/execution-persistence';
|
|
5
4
|
import type { RiskReporter, Risk } from '../../security-audit/types';
|
|
6
5
|
export declare class CredentialsRiskReporter implements RiskReporter {
|
|
7
6
|
private readonly credentialsRepository;
|
|
8
|
-
private readonly
|
|
7
|
+
private readonly executionRepository;
|
|
9
8
|
private readonly securityConfig;
|
|
10
|
-
constructor(credentialsRepository: CredentialsRepository,
|
|
9
|
+
constructor(credentialsRepository: CredentialsRepository, executionRepository: ExecutionRepository, securityConfig: SecurityConfig);
|
|
11
10
|
report(workflows: IWorkflowBase[]): Promise<Risk.StandardReport | null>;
|
|
12
11
|
private getAllCredsInUse;
|
|
13
12
|
private getAllExistingCreds;
|
|
14
|
-
private
|
|
15
|
-
private getCredsInRecentlyExecutedWorkflows;
|
|
13
|
+
private getCredentialsInRecentlyExecutedWorkflows;
|
|
16
14
|
}
|
|
@@ -13,19 +13,18 @@ exports.CredentialsRiskReporter = void 0;
|
|
|
13
13
|
const config_1 = require("@n8n/config");
|
|
14
14
|
const db_1 = require("@n8n/db");
|
|
15
15
|
const di_1 = require("@n8n/di");
|
|
16
|
-
const execution_persistence_1 = require("../../executions/execution-persistence");
|
|
17
16
|
const constants_1 = require("../../security-audit/constants");
|
|
18
17
|
let CredentialsRiskReporter = class CredentialsRiskReporter {
|
|
19
|
-
constructor(credentialsRepository,
|
|
18
|
+
constructor(credentialsRepository, executionRepository, securityConfig) {
|
|
20
19
|
this.credentialsRepository = credentialsRepository;
|
|
21
|
-
this.
|
|
20
|
+
this.executionRepository = executionRepository;
|
|
22
21
|
this.securityConfig = securityConfig;
|
|
23
22
|
}
|
|
24
23
|
async report(workflows) {
|
|
25
24
|
const days = this.securityConfig.daysAbandonedWorkflow;
|
|
26
25
|
const allExistingCreds = await this.getAllExistingCreds();
|
|
27
26
|
const { credsInAnyUse, credsInActiveUse } = this.getAllCredsInUse(workflows);
|
|
28
|
-
const recentlyExecutedCreds = await this.
|
|
27
|
+
const recentlyExecutedCreds = await this.getCredentialsInRecentlyExecutedWorkflows(workflows, days);
|
|
29
28
|
const credsNotInAnyUse = allExistingCreds.filter((c) => !credsInAnyUse.has(c.id));
|
|
30
29
|
const credsNotInActiveUse = allExistingCreds.filter((c) => !credsInActiveUse.has(c.id));
|
|
31
30
|
const credsNotRecentlyExecuted = allExistingCreds.filter((c) => !recentlyExecutedCreds.has(c.id));
|
|
@@ -99,32 +98,24 @@ let CredentialsRiskReporter = class CredentialsRiskReporter {
|
|
|
99
98
|
const credentials = await this.credentialsRepository.find({ select: ['id', 'name'] });
|
|
100
99
|
return credentials.map(({ id, name }) => ({ kind: 'credential', id, name }));
|
|
101
100
|
}
|
|
102
|
-
async
|
|
101
|
+
async getCredentialsInRecentlyExecutedWorkflows(workflows, days) {
|
|
103
102
|
const date = new Date();
|
|
104
103
|
date.setDate(date.getDate() - days);
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
Object.values(node.credentials).forEach((c) => {
|
|
114
|
-
if (c.id)
|
|
115
|
-
acc.add(c.id);
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
return acc;
|
|
120
|
-
}, new Set());
|
|
104
|
+
const recentlyExecutedWorkflowIds = new Set(await this.executionRepository.getWorkflowIdsWithExecutionsSince(date));
|
|
105
|
+
const credentialIds = workflows
|
|
106
|
+
.filter((workflow) => recentlyExecutedWorkflowIds.has(workflow.id))
|
|
107
|
+
.flatMap((workflow) => workflow.nodes)
|
|
108
|
+
.flatMap((node) => Object.values(node.credentials ?? {}))
|
|
109
|
+
.map((credential) => credential.id)
|
|
110
|
+
.filter((id) => id !== undefined);
|
|
111
|
+
return new Set(credentialIds);
|
|
121
112
|
}
|
|
122
113
|
};
|
|
123
114
|
exports.CredentialsRiskReporter = CredentialsRiskReporter;
|
|
124
115
|
exports.CredentialsRiskReporter = CredentialsRiskReporter = __decorate([
|
|
125
116
|
(0, di_1.Service)(),
|
|
126
117
|
__metadata("design:paramtypes", [db_1.CredentialsRepository,
|
|
127
|
-
|
|
118
|
+
db_1.ExecutionRepository,
|
|
128
119
|
config_1.SecurityConfig])
|
|
129
120
|
], CredentialsRiskReporter);
|
|
130
121
|
//# sourceMappingURL=credentials-risk-reporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials-risk-reporter.js","sourceRoot":"","sources":["../../../src/security-audit/risk-reporters/credentials-risk-reporter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"credentials-risk-reporter.js","sourceRoot":"","sources":["../../../src/security-audit/risk-reporters/credentials-risk-reporter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n",
|
|
3
|
-
"version": "2.31.
|
|
3
|
+
"version": "2.31.7",
|
|
4
4
|
"description": "n8n Workflow Automation Tool",
|
|
5
5
|
"main": "dist/index",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -79,10 +79,10 @@
|
|
|
79
79
|
"vitest": "^4.1.9",
|
|
80
80
|
"vitest-mock-extended": "^3.1.0",
|
|
81
81
|
"@n8n/playwright-janitor": "0.1.0",
|
|
82
|
+
"n8n-containers": "1.0.0",
|
|
82
83
|
"@n8n/typescript-config": "1.9.0",
|
|
83
|
-
"@n8n/backend-test-utils": "1.31.3",
|
|
84
84
|
"@n8n/vitest-config": "1.18.0",
|
|
85
|
-
"n8n-
|
|
85
|
+
"@n8n/backend-test-utils": "1.31.4"
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
88
|
"@1password/connect": "1.4.2",
|
|
@@ -207,36 +207,36 @@
|
|
|
207
207
|
"yargs-parser": "21.1.1",
|
|
208
208
|
"zod": "3.25.67",
|
|
209
209
|
"zod-to-json-schema": "3.23.3",
|
|
210
|
+
"@n8n/agents": "0.16.3",
|
|
210
211
|
"@n8n/ai-node-sdk": "0.21.3",
|
|
211
|
-
"@n8n/api-types": "1.31.3",
|
|
212
|
-
"@n8n/ai-utilities": "0.24.3",
|
|
213
212
|
"@n8n/ai-workflow-builder": "1.31.3",
|
|
214
|
-
"@n8n/
|
|
213
|
+
"@n8n/ai-utilities": "0.24.3",
|
|
215
214
|
"@n8n/backend-network": "1.5.3",
|
|
215
|
+
"@n8n/api-types": "1.31.3",
|
|
216
216
|
"@n8n/chat-hub": "1.24.3",
|
|
217
|
-
"@n8n/
|
|
218
|
-
"@n8n/
|
|
217
|
+
"@n8n/config": "2.29.1",
|
|
218
|
+
"@n8n/backend-common": "1.31.3",
|
|
219
219
|
"@n8n/constants": "0.31.0",
|
|
220
|
-
"@n8n/
|
|
221
|
-
"@n8n/
|
|
220
|
+
"@n8n/client-oauth2": "1.13.0",
|
|
221
|
+
"@n8n/db": "1.31.4",
|
|
222
222
|
"@n8n/di": "0.15.0",
|
|
223
|
+
"@n8n/decorators": "1.31.3",
|
|
223
224
|
"@n8n/errors": "0.12.0",
|
|
224
|
-
"@n8n/expression-runtime": "0.22.1",
|
|
225
|
-
"@n8n/mcp-apps": "0.8.2",
|
|
226
225
|
"@n8n/instance-ai": "1.16.3",
|
|
227
226
|
"@n8n/mcp-browser": "0.14.0",
|
|
228
|
-
"@n8n/n8n-nodes-langchain": "2.31.3",
|
|
229
|
-
"@n8n/config": "2.29.1",
|
|
230
|
-
"@n8n/permissions": "0.68.0",
|
|
231
227
|
"@n8n/scheduler": "0.3.3",
|
|
228
|
+
"@n8n/expression-runtime": "0.22.1",
|
|
229
|
+
"@n8n/mcp-apps": "0.8.2",
|
|
232
230
|
"@n8n/syslog-client": "1.8.0",
|
|
231
|
+
"@n8n/task-runner": "2.31.3",
|
|
232
|
+
"@n8n/permissions": "0.68.0",
|
|
233
|
+
"@n8n/n8n-nodes-langchain": "2.31.4",
|
|
233
234
|
"@n8n/typeorm": "0.5.0",
|
|
234
235
|
"@n8n/utils": "1.39.0",
|
|
235
|
-
"n8n-core": "2.31.3",
|
|
236
236
|
"@n8n/workflow-sdk": "0.24.3",
|
|
237
|
+
"n8n-core": "2.31.3",
|
|
237
238
|
"n8n-editor-ui": "2.31.5",
|
|
238
|
-
"
|
|
239
|
-
"n8n-nodes-base": "2.31.3",
|
|
239
|
+
"n8n-nodes-base": "2.31.4",
|
|
240
240
|
"n8n-workflow": "2.31.3"
|
|
241
241
|
},
|
|
242
242
|
"license": "SEE LICENSE IN LICENSE.md",
|