n8n 2.27.0 → 2.27.2
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.js +2 -3
- package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
- package/dist/modules/instance-ai/internal-messages.d.ts +1 -0
- package/dist/modules/instance-ai/internal-messages.js +6 -1
- package/dist/modules/instance-ai/internal-messages.js.map +1 -1
- package/dist/modules/mcp/mcp.config.d.ts +3 -0
- package/dist/modules/mcp/mcp.config.js +28 -0
- package/dist/modules/mcp/mcp.config.js.map +1 -0
- package/dist/modules/mcp/mcp.controller.js +4 -2
- package/dist/modules/mcp/mcp.controller.js.map +1 -1
- package/dist/modules/n8n-packages/engine/import-blocked.error.js +3 -1
- package/dist/modules/n8n-packages/engine/import-blocked.error.js.map +1 -1
- package/dist/modules/n8n-packages/engine/import-pipeline.js +10 -1
- package/dist/modules/n8n-packages/engine/import-pipeline.js.map +1 -1
- package/dist/modules/n8n-packages/entities/workflow/workflow-import.types.d.ts +8 -0
- package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js +20 -4
- package/dist/modules/n8n-packages/entities/workflow/workflow-importer.js.map +1 -1
- package/dist/modules/n8n-packages/n8n-packages.types.d.ts +7 -0
- package/dist/modules/n8n-packages/n8n-packages.types.js.map +1 -1
- package/dist/modules/oauth-server/oauth-server.config.d.ts +7 -0
- package/dist/modules/oauth-server/oauth-server.config.js +49 -0
- package/dist/modules/oauth-server/oauth-server.config.js.map +1 -0
- package/dist/modules/oauth-server/oauth.controller.js +11 -8
- package/dist/modules/oauth-server/oauth.controller.js.map +1 -1
- package/dist/public-api/v1/openapi.yml +29 -0
- package/package.json +24 -24
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AUTO_FOLLOW_UP_MESSAGE = void 0;
|
|
4
|
+
exports.withCurrentDateTime = withCurrentDateTime;
|
|
4
5
|
exports.cleanStoredUserMessage = cleanStoredUserMessage;
|
|
5
6
|
exports.AUTO_FOLLOW_UP_MESSAGE = '(continue)';
|
|
6
7
|
const TASK_CONTEXT_BLOCK = /^(?:<running-tasks>\n[\s\S]*?\n<\/running-tasks>|<planned-task-follow-up[\s\S]*?\n<\/planned-task-follow-up>|<planning-blueprint>\n[\s\S]*?\n<\/planning-blueprint>|<background-task-completed>\n[\s\S]*?\n<\/background-task-completed>|<workflow-verification-follow-up>\n[\s\S]*?\n<\/workflow-verification-follow-up>|<workflow-setup-required>\n[\s\S]*?\n<\/workflow-setup-required>)\n\n/;
|
|
8
|
+
const CURRENT_DATE_TIME_BLOCK = /\n*<current-date-time>[\s\S]*?<\/current-date-time>\s*$/;
|
|
9
|
+
function withCurrentDateTime(message, dateTimeSection) {
|
|
10
|
+
return `${message}\n\n<current-date-time>${dateTimeSection}\n</current-date-time>`;
|
|
11
|
+
}
|
|
7
12
|
function cleanStoredUserMessage(stored) {
|
|
8
|
-
const text = stored.replace(TASK_CONTEXT_BLOCK, '');
|
|
13
|
+
const text = stored.replace(TASK_CONTEXT_BLOCK, '').replace(CURRENT_DATE_TIME_BLOCK, '');
|
|
9
14
|
return text === exports.AUTO_FOLLOW_UP_MESSAGE ? null : text;
|
|
10
15
|
}
|
|
11
16
|
//# sourceMappingURL=internal-messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-messages.js","sourceRoot":"","sources":["../../../src/modules/instance-ai/internal-messages.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"internal-messages.js","sourceRoot":"","sources":["../../../src/modules/instance-ai/internal-messages.ts"],"names":[],"mappings":";;;AAqBA,kDAEC;AAOD,wDAGC;AAtBY,QAAA,sBAAsB,GAAG,YAAY,CAAC;AAGnD,MAAM,kBAAkB,GACvB,iYAAiY,CAAC;AAGnY,MAAM,uBAAuB,GAAG,yDAAyD,CAAC;AAG1F,SAAgB,mBAAmB,CAAC,OAAe,EAAE,eAAuB;IAC3E,OAAO,GAAG,OAAO,0BAA0B,eAAe,wBAAwB,CAAC;AACpF,CAAC;AAOD,SAAgB,sBAAsB,CAAC,MAAc;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACzF,OAAO,IAAI,KAAK,8BAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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.McpConfig = void 0;
|
|
13
|
+
const config_1 = require("@n8n/config");
|
|
14
|
+
const zod_1 = require("zod");
|
|
15
|
+
let McpConfig = class McpConfig {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.rateLimitServer = 100;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.McpConfig = McpConfig;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, config_1.Env)('N8N_MCP_SERVER_RATE_LIMIT', zod_1.z.number({ coerce: true }).int().nonnegative()),
|
|
23
|
+
__metadata("design:type", Number)
|
|
24
|
+
], McpConfig.prototype, "rateLimitServer", void 0);
|
|
25
|
+
exports.McpConfig = McpConfig = __decorate([
|
|
26
|
+
config_1.Config
|
|
27
|
+
], McpConfig);
|
|
28
|
+
//# sourceMappingURL=mcp.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.config.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA0C;AAC1C,6BAAwB;AAIjB,IAAM,SAAS,GAAf,MAAM,SAAS;IAAf;QAMN,oBAAe,GAAW,GAAG,CAAC;IAC/B,CAAC;CAAA,CAAA;AAPY,8BAAS;AAMrB;IADC,IAAA,YAAG,EAAC,2BAA2B,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;;kDACnD;oBANlB,SAAS;IADrB,eAAM;GACM,SAAS,CAOrB"}
|
|
@@ -49,12 +49,14 @@ const di_1 = require("@n8n/di");
|
|
|
49
49
|
const n8n_core_1 = require("n8n-core");
|
|
50
50
|
const telemetry_1 = require("../../telemetry");
|
|
51
51
|
const mcp_server_middleware_service_1 = require("./mcp-server-middleware.service");
|
|
52
|
+
const mcp_config_1 = require("./mcp.config");
|
|
52
53
|
const mcp_constants_1 = require("./mcp.constants");
|
|
53
54
|
const mcp_service_1 = require("./mcp.service");
|
|
54
55
|
const mcp_settings_service_1 = require("./mcp.settings.service");
|
|
55
56
|
const mcp_typeguards_1 = require("./mcp.typeguards");
|
|
56
57
|
const mcp_utils_1 = require("./mcp.utils");
|
|
57
58
|
const getAuthMiddleware = () => di_1.Container.get(mcp_server_middleware_service_1.McpServerMiddlewareService).getAuthMiddleware();
|
|
59
|
+
const mcpConfig = di_1.Container.get(mcp_config_1.McpConfig);
|
|
58
60
|
let McpController = class McpController {
|
|
59
61
|
constructor(errorReporter, mcpService, mcpSettingsService, telemetry, logger) {
|
|
60
62
|
this.errorReporter = errorReporter;
|
|
@@ -193,7 +195,7 @@ __decorate([
|
|
|
193
195
|
], McpController.prototype, "discoverAuthSchemeHead", null);
|
|
194
196
|
__decorate([
|
|
195
197
|
(0, decorators_1.Get)('/http', {
|
|
196
|
-
ipRateLimit:
|
|
198
|
+
ipRateLimit: (0, decorators_1.createIpRateLimit)(mcpConfig.rateLimitServer),
|
|
197
199
|
middlewares: [getAuthMiddleware()],
|
|
198
200
|
skipAuth: true,
|
|
199
201
|
usesTemplates: true,
|
|
@@ -204,7 +206,7 @@ __decorate([
|
|
|
204
206
|
], McpController.prototype, "handleGet", null);
|
|
205
207
|
__decorate([
|
|
206
208
|
(0, decorators_1.Post)('/http', {
|
|
207
|
-
ipRateLimit:
|
|
209
|
+
ipRateLimit: (0, decorators_1.createIpRateLimit)(mcpConfig.rateLimitServer),
|
|
208
210
|
middlewares: [getAuthMiddleware()],
|
|
209
211
|
skipAuth: true,
|
|
210
212
|
usesTemplates: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.controller.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAA6C;AAE7C,
|
|
1
|
+
{"version":3,"file":"mcp.controller.js","sourceRoot":"","sources":["../../../src/modules/mcp/mcp.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,9 @@ const unprocessable_error_1 = require("../../../errors/response-errors/unprocess
|
|
|
6
6
|
function toImportBlockedError(issues) {
|
|
7
7
|
const message = `Import blocked: ${issues.length} issue(s) must be resolved before the package ` +
|
|
8
8
|
'can be imported.';
|
|
9
|
-
if (issues.some((issue) => issue.type === 'workflow-conflict' ||
|
|
9
|
+
if (issues.some((issue) => issue.type === 'workflow-conflict' ||
|
|
10
|
+
issue.type === 'workflow-id-conflict' ||
|
|
11
|
+
issue.type === 'workflow-folder-conflict')) {
|
|
10
12
|
return new conflict_error_1.ConflictError(message, undefined, { issues });
|
|
11
13
|
}
|
|
12
14
|
return new unprocessable_error_1.UnprocessableRequestError(message, undefined, { issues });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-blocked.error.js","sourceRoot":"","sources":["../../../../src/modules/n8n-packages/engine/import-blocked.error.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"import-blocked.error.js","sourceRoot":"","sources":["../../../../src/modules/n8n-packages/engine/import-blocked.error.ts"],"names":[],"mappings":";;AAKA,oDAmBC;AAxBD,4EAAwE;AACxE,sFAAyF;AAIzF,SAAgB,oBAAoB,CACnC,MAAuB;IAEvB,MAAM,OAAO,GACZ,mBAAmB,MAAM,CAAC,MAAM,gDAAgD;QAChF,kBAAkB,CAAC;IAEpB,IACC,MAAM,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,IAAI,KAAK,mBAAmB;QAClC,KAAK,CAAC,IAAI,KAAK,sBAAsB;QACrC,KAAK,CAAC,IAAI,KAAK,0BAA0B,CAC1C,EACA,CAAC;QACF,OAAO,IAAI,8BAAa,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,IAAI,+CAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -84,6 +84,10 @@ let ImportPipeline = class ImportPipeline {
|
|
|
84
84
|
type: 'workflow-id-conflict',
|
|
85
85
|
...conflict,
|
|
86
86
|
}));
|
|
87
|
+
const workflowFolderConflicts = workflowPlan.folderConflicts.map((conflict) => ({
|
|
88
|
+
type: 'workflow-folder-conflict',
|
|
89
|
+
...conflict,
|
|
90
|
+
}));
|
|
87
91
|
const credentialFailures = this.credentialImporter
|
|
88
92
|
.blockingFailures(credentialResolution, credentialRequest)
|
|
89
93
|
.map(({ kind, sourceId, targetId, usedByWorkflows }) => ({
|
|
@@ -93,7 +97,12 @@ let ImportPipeline = class ImportPipeline {
|
|
|
93
97
|
...(targetId ? { targetId } : {}),
|
|
94
98
|
usedByWorkflows,
|
|
95
99
|
}));
|
|
96
|
-
return [
|
|
100
|
+
return [
|
|
101
|
+
...workflowConflicts,
|
|
102
|
+
...workflowIdConflicts,
|
|
103
|
+
...workflowFolderConflicts,
|
|
104
|
+
...credentialFailures,
|
|
105
|
+
];
|
|
97
106
|
}
|
|
98
107
|
buildResult(packageSummary, projectId, outcomes, bindings) {
|
|
99
108
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-pipeline.js","sourceRoot":"","sources":["../../../../src/modules/n8n-packages/engine/import-pipeline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"import-pipeline.js","sourceRoot":"","sources":["../../../../src/modules/n8n-packages/engine/import-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,10 +35,18 @@ export interface WorkflowConflict {
|
|
|
35
35
|
existingWorkflowId: string;
|
|
36
36
|
name: string;
|
|
37
37
|
}
|
|
38
|
+
export interface WorkflowFolderConflict {
|
|
39
|
+
sourceWorkflowId: string;
|
|
40
|
+
existingWorkflowId: string;
|
|
41
|
+
existingParentFolderId: string | null;
|
|
42
|
+
targetFolderId: string;
|
|
43
|
+
name: string;
|
|
44
|
+
}
|
|
38
45
|
export interface WorkflowImportPlan {
|
|
39
46
|
items: WorkflowPlanItem[];
|
|
40
47
|
conflicts: WorkflowConflict[];
|
|
41
48
|
idConflicts: WorkflowIdConflict[];
|
|
49
|
+
folderConflicts: WorkflowFolderConflict[];
|
|
42
50
|
}
|
|
43
51
|
export interface WorkflowImportOutcome {
|
|
44
52
|
status: 'created' | 'updated' | 'skipped';
|
|
@@ -29,6 +29,7 @@ let WorkflowImporter = class WorkflowImporter {
|
|
|
29
29
|
const existingBySourceWorkflowId = await this.workflowImportMatchService.findBySourceWorkflowIds(context.projectId, prepared.map(({ sourceWorkflowId }) => sourceWorkflowId));
|
|
30
30
|
const items = [];
|
|
31
31
|
const conflicts = [];
|
|
32
|
+
const folderConflicts = [];
|
|
32
33
|
const sourceCreateIds = [];
|
|
33
34
|
for (const workflow of prepared) {
|
|
34
35
|
const existing = existingBySourceWorkflowId.get(workflow.sourceWorkflowId) ?? null;
|
|
@@ -45,9 +46,21 @@ let WorkflowImporter = class WorkflowImporter {
|
|
|
45
46
|
name: existing.name,
|
|
46
47
|
});
|
|
47
48
|
}
|
|
49
|
+
if (context.folderId && existing) {
|
|
50
|
+
const existingParentFolderId = existing.parentFolder?.id ?? null;
|
|
51
|
+
if (existingParentFolderId !== context.folderId) {
|
|
52
|
+
folderConflicts.push({
|
|
53
|
+
sourceWorkflowId: workflow.sourceWorkflowId,
|
|
54
|
+
existingWorkflowId: existing.id,
|
|
55
|
+
existingParentFolderId,
|
|
56
|
+
targetFolderId: context.folderId,
|
|
57
|
+
name: existing.name,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
48
61
|
}
|
|
49
62
|
const idConflicts = await this.collectIdConflicts(sourceCreateIds);
|
|
50
|
-
return { items, conflicts, idConflicts };
|
|
63
|
+
return { items, conflicts, idConflicts, folderConflicts };
|
|
51
64
|
}
|
|
52
65
|
async collectIdConflicts(candidateIds) {
|
|
53
66
|
const existing = await this.workflowImportMatchService.findOwningProjectsByWorkflowId(candidateIds);
|
|
@@ -86,6 +99,11 @@ let WorkflowImporter = class WorkflowImporter {
|
|
|
86
99
|
}
|
|
87
100
|
const savedWorkflow = await this.persistWorkflow(context, item, bindings.credentials);
|
|
88
101
|
const workflow = await this.workflowPublisher.apply(context.user, item, savedWorkflow, context.publishingPolicy);
|
|
102
|
+
workflow.parentFolder =
|
|
103
|
+
workflow.parentFolder ??
|
|
104
|
+
savedWorkflow.parentFolder ??
|
|
105
|
+
(item.action === 'update' ? item.existing.parentFolder : null) ??
|
|
106
|
+
null;
|
|
89
107
|
return {
|
|
90
108
|
status: item.action === 'create' ? 'created' : 'updated',
|
|
91
109
|
workflow,
|
|
@@ -104,12 +122,10 @@ let WorkflowImporter = class WorkflowImporter {
|
|
|
104
122
|
});
|
|
105
123
|
}
|
|
106
124
|
const entity = prepareEntityForPersist(item.entity, credentialBindings);
|
|
107
|
-
|
|
125
|
+
return await this.workflowService.update(context.user, entity, item.existing.id, {
|
|
108
126
|
publicApi: true,
|
|
109
127
|
source: 'import',
|
|
110
128
|
});
|
|
111
|
-
workflow.parentFolder = item.existing.parentFolder;
|
|
112
|
-
return workflow;
|
|
113
129
|
}
|
|
114
130
|
};
|
|
115
131
|
exports.WorkflowImporter = WorkflowImporter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-importer.js","sourceRoot":"","sources":["../../../../../src/modules/n8n-packages/entities/workflow/workflow-importer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAyC;AACzC,gCAAkC;AAElC,qFAAgF;AAChF,mEAA+D;AAE/D,yEAA0E;AAC1E,6DAAwD;AACxD,mFAGyC;
|
|
1
|
+
{"version":3,"file":"workflow-importer.js","sourceRoot":"","sources":["../../../../../src/modules/n8n-packages/entities/workflow/workflow-importer.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,13 @@ export type BlockingIssue = {
|
|
|
56
56
|
existingProjectId: string | null;
|
|
57
57
|
isArchived: boolean;
|
|
58
58
|
name: string;
|
|
59
|
+
} | {
|
|
60
|
+
type: 'workflow-folder-conflict';
|
|
61
|
+
sourceWorkflowId: string;
|
|
62
|
+
existingWorkflowId: string;
|
|
63
|
+
existingParentFolderId: string | null;
|
|
64
|
+
targetFolderId: string;
|
|
65
|
+
name: string;
|
|
59
66
|
} | {
|
|
60
67
|
type: 'credential-unresolved';
|
|
61
68
|
kind: 'not_found' | 'unknown_type' | 'source_not_found';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"n8n-packages.types.js","sourceRoot":"","sources":["../../../src/modules/n8n-packages/n8n-packages.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"n8n-packages.types.js","sourceRoot":"","sources":["../../../src/modules/n8n-packages/n8n-packages.types.ts"],"names":[],"mappings":";;;AAoHA,wCAMC;AAMD,8CAKC;AAhID,yGAAgG;AAAvF,4IAAA,wBAAwB,OAAA;AAMpB,QAAA,sBAAsB,GAAG;IAErC,UAAU,EAAE,aAAa;IAEzB,IAAI,EAAE,MAAM;IAEZ,IAAI,EAAE,MAAM;CACH,CAAC;AAEE,QAAA,gBAAgB,GAAG;IAE/B,GAAG,EAAE,KAAK;IAEV,MAAM,EAAE,QAAQ;CACP,CAAC;AA2FX,SAAgB,cAAc,CAAC,OAAuC,EAAE;IACvE,OAAO;QACN,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,GAAG,IAAI;KACP,CAAC;AACH,CAAC;AAMD,SAAgB,iBAAiB,CAAC,QAA+B;IAChE,OAAO;QACN,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QACjD,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC;KACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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.OAuthServerConfig = void 0;
|
|
13
|
+
const config_1 = require("@n8n/config");
|
|
14
|
+
const zod_1 = require("zod");
|
|
15
|
+
const rateLimitSchema = zod_1.z.number({ coerce: true }).int().nonnegative();
|
|
16
|
+
let OAuthServerConfig = class OAuthServerConfig {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.rateLimitRegister = 10;
|
|
19
|
+
this.rateLimitAuthorize = 50;
|
|
20
|
+
this.rateLimitToken = 20;
|
|
21
|
+
this.rateLimitRevoke = 30;
|
|
22
|
+
this.rateLimitWellKnown = 100;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.OAuthServerConfig = OAuthServerConfig;
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, config_1.Env)('N8N_OAUTH_SERVER_REGISTER_RATE_LIMIT', rateLimitSchema),
|
|
28
|
+
__metadata("design:type", Number)
|
|
29
|
+
], OAuthServerConfig.prototype, "rateLimitRegister", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, config_1.Env)('N8N_OAUTH_SERVER_AUTHORIZE_RATE_LIMIT', rateLimitSchema),
|
|
32
|
+
__metadata("design:type", Number)
|
|
33
|
+
], OAuthServerConfig.prototype, "rateLimitAuthorize", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, config_1.Env)('N8N_OAUTH_SERVER_TOKEN_RATE_LIMIT', rateLimitSchema),
|
|
36
|
+
__metadata("design:type", Number)
|
|
37
|
+
], OAuthServerConfig.prototype, "rateLimitToken", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, config_1.Env)('N8N_OAUTH_SERVER_REVOKE_RATE_LIMIT', rateLimitSchema),
|
|
40
|
+
__metadata("design:type", Number)
|
|
41
|
+
], OAuthServerConfig.prototype, "rateLimitRevoke", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, config_1.Env)('N8N_OAUTH_SERVER_WELL_KNOWN_RATE_LIMIT', rateLimitSchema),
|
|
44
|
+
__metadata("design:type", Number)
|
|
45
|
+
], OAuthServerConfig.prototype, "rateLimitWellKnown", void 0);
|
|
46
|
+
exports.OAuthServerConfig = OAuthServerConfig = __decorate([
|
|
47
|
+
config_1.Config
|
|
48
|
+
], OAuthServerConfig);
|
|
49
|
+
//# sourceMappingURL=oauth-server.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-server.config.js","sourceRoot":"","sources":["../../../src/modules/oauth-server/oauth-server.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAA0C;AAC1C,6BAAwB;AAGxB,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;AAMhE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAAvB;QAGN,sBAAiB,GAAW,EAAE,CAAC;QAI/B,uBAAkB,GAAW,EAAE,CAAC;QAIhC,mBAAc,GAAW,EAAE,CAAC;QAI5B,oBAAe,GAAW,EAAE,CAAC;QAO7B,uBAAkB,GAAW,GAAG,CAAC;IAClC,CAAC;CAAA,CAAA;AAvBY,8CAAiB;AAG7B;IADC,IAAA,YAAG,EAAC,sCAAsC,EAAE,eAAe,CAAC;;4DAC9B;AAI/B;IADC,IAAA,YAAG,EAAC,uCAAuC,EAAE,eAAe,CAAC;;6DAC9B;AAIhC;IADC,IAAA,YAAG,EAAC,mCAAmC,EAAE,eAAe,CAAC;;yDAC9B;AAI5B;IADC,IAAA,YAAG,EAAC,oCAAoC,EAAE,eAAe,CAAC;;0DAC9B;AAO7B;IADC,IAAA,YAAG,EAAC,wCAAwC,EAAE,eAAe,CAAC;;6DAC9B;4BAtBrB,iBAAiB;IAD7B,eAAM;GACM,iBAAiB,CAuB7B"}
|
|
@@ -21,10 +21,12 @@ const decorators_1 = require("@n8n/decorators");
|
|
|
21
21
|
const di_1 = require("@n8n/di");
|
|
22
22
|
const protected_resource_registry_1 = require("../../services/protected-resource.registry");
|
|
23
23
|
const url_service_1 = require("../../services/url.service");
|
|
24
|
+
const oauth_server_config_1 = require("./oauth-server.config");
|
|
24
25
|
const oauth_server_service_1 = require("./oauth-server.service");
|
|
25
26
|
const oauth_errors_1 = require("./oauth.errors");
|
|
26
27
|
const oauthServerService = di_1.Container.get(oauth_server_service_1.OAuthServerService);
|
|
27
28
|
const globalConfig = di_1.Container.get(config_1.GlobalConfig);
|
|
29
|
+
const oauthServerConfig = di_1.Container.get(oauth_server_config_1.OAuthServerConfig);
|
|
28
30
|
const logger = di_1.Container.get(backend_common_1.Logger);
|
|
29
31
|
const oauthClientLimitGuard = async (_req, res, next) => {
|
|
30
32
|
if (await oauthServerService.isClientLimitReached()) {
|
|
@@ -52,27 +54,28 @@ const sharedEndpointRouters = (basePath) => [
|
|
|
52
54
|
router: registerRouter,
|
|
53
55
|
skipAuth: true,
|
|
54
56
|
middlewares: [oauthClientLimitGuard],
|
|
55
|
-
ipRateLimit:
|
|
57
|
+
ipRateLimit: (0, decorators_1.createIpRateLimit)(oauthServerConfig.rateLimitRegister, 5 * constants_1.Time.minutes.toMilliseconds),
|
|
56
58
|
},
|
|
57
59
|
{
|
|
58
60
|
path: `${basePath}/authorize`,
|
|
59
61
|
router: authorizeRouter,
|
|
60
62
|
skipAuth: true,
|
|
61
|
-
ipRateLimit:
|
|
63
|
+
ipRateLimit: (0, decorators_1.createIpRateLimit)(oauthServerConfig.rateLimitAuthorize, 5 * constants_1.Time.minutes.toMilliseconds),
|
|
62
64
|
},
|
|
63
65
|
{
|
|
64
66
|
path: `${basePath}/token`,
|
|
65
67
|
router: tokenRouter,
|
|
66
68
|
skipAuth: true,
|
|
67
|
-
ipRateLimit:
|
|
69
|
+
ipRateLimit: (0, decorators_1.createIpRateLimit)(oauthServerConfig.rateLimitToken, 5 * constants_1.Time.minutes.toMilliseconds),
|
|
68
70
|
},
|
|
69
71
|
{
|
|
70
72
|
path: `${basePath}/revoke`,
|
|
71
73
|
router: revokeRouter,
|
|
72
74
|
skipAuth: true,
|
|
73
|
-
ipRateLimit:
|
|
75
|
+
ipRateLimit: (0, decorators_1.createIpRateLimit)(oauthServerConfig.rateLimitRevoke, 5 * constants_1.Time.minutes.toMilliseconds),
|
|
74
76
|
},
|
|
75
77
|
];
|
|
78
|
+
const wellKnownIpRateLimit = (0, decorators_1.createIpRateLimit)(oauthServerConfig.rateLimitWellKnown, 5 * constants_1.Time.minutes.toMilliseconds);
|
|
76
79
|
let OAuthController = class OAuthController {
|
|
77
80
|
constructor(urlService, resourceRegistry) {
|
|
78
81
|
this.urlService = urlService;
|
|
@@ -140,7 +143,7 @@ __decorate([
|
|
|
140
143
|
(0, decorators_1.Options)('/.well-known/oauth-authorization-server', {
|
|
141
144
|
skipAuth: true,
|
|
142
145
|
usesTemplates: true,
|
|
143
|
-
ipRateLimit:
|
|
146
|
+
ipRateLimit: wellKnownIpRateLimit,
|
|
144
147
|
}),
|
|
145
148
|
__metadata("design:type", Function),
|
|
146
149
|
__metadata("design:paramtypes", [Object, Object]),
|
|
@@ -150,7 +153,7 @@ __decorate([
|
|
|
150
153
|
(0, decorators_1.Get)('/.well-known/oauth-authorization-server', {
|
|
151
154
|
skipAuth: true,
|
|
152
155
|
usesTemplates: true,
|
|
153
|
-
ipRateLimit:
|
|
156
|
+
ipRateLimit: wellKnownIpRateLimit,
|
|
154
157
|
}),
|
|
155
158
|
__metadata("design:type", Function),
|
|
156
159
|
__metadata("design:paramtypes", [Object, Object]),
|
|
@@ -160,7 +163,7 @@ __decorate([
|
|
|
160
163
|
(0, decorators_1.Options)('/.well-known/oauth-protected-resource/*resourcePath', {
|
|
161
164
|
skipAuth: true,
|
|
162
165
|
usesTemplates: true,
|
|
163
|
-
ipRateLimit:
|
|
166
|
+
ipRateLimit: wellKnownIpRateLimit,
|
|
164
167
|
}),
|
|
165
168
|
__metadata("design:type", Function),
|
|
166
169
|
__metadata("design:paramtypes", [Object, Object]),
|
|
@@ -170,7 +173,7 @@ __decorate([
|
|
|
170
173
|
(0, decorators_1.Get)('/.well-known/oauth-protected-resource/*resourcePath', {
|
|
171
174
|
skipAuth: true,
|
|
172
175
|
usesTemplates: true,
|
|
173
|
-
ipRateLimit:
|
|
176
|
+
ipRateLimit: wellKnownIpRateLimit,
|
|
174
177
|
}),
|
|
175
178
|
__metadata("design:type", Function),
|
|
176
179
|
__metadata("design:paramtypes", [Object, Object]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.controller.js","sourceRoot":"","sources":["../../../src/modules/oauth-server/oauth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8FAAmG;AACnG,4FAAuG;AACvG,wFAA6F;AAC7F,sFAAuF;AACvF,wDAA6C;AAC7C,wCAA2C;AAC3C,8CAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"oauth.controller.js","sourceRoot":"","sources":["../../../src/modules/oauth-server/oauth.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -4898,6 +4898,35 @@ components:
|
|
|
4898
4898
|
description: Whether the existing workflow is archived.
|
|
4899
4899
|
name:
|
|
4900
4900
|
type: string
|
|
4901
|
+
- type: object
|
|
4902
|
+
description: |
|
|
4903
|
+
A workflow whose source id already matches one in the target project but lives outside the requested import folder. Folder-targeted imports cannot update workflows in place at a different location.
|
|
4904
|
+
required:
|
|
4905
|
+
- type
|
|
4906
|
+
- sourceWorkflowId
|
|
4907
|
+
- existingWorkflowId
|
|
4908
|
+
- existingParentFolderId
|
|
4909
|
+
- targetFolderId
|
|
4910
|
+
- name
|
|
4911
|
+
properties:
|
|
4912
|
+
type:
|
|
4913
|
+
type: string
|
|
4914
|
+
enum:
|
|
4915
|
+
- workflow-folder-conflict
|
|
4916
|
+
sourceWorkflowId:
|
|
4917
|
+
type: string
|
|
4918
|
+
existingWorkflowId:
|
|
4919
|
+
type: string
|
|
4920
|
+
existingParentFolderId:
|
|
4921
|
+
type: string
|
|
4922
|
+
nullable: true
|
|
4923
|
+
description: |
|
|
4924
|
+
Folder that currently contains the matched workflow, or null when it lives at the project root.
|
|
4925
|
+
targetFolderId:
|
|
4926
|
+
type: string
|
|
4927
|
+
description: Folder the import was requested to land in.
|
|
4928
|
+
name:
|
|
4929
|
+
type: string
|
|
4901
4930
|
- type: object
|
|
4902
4931
|
description: A credential reference that could not be resolved in the target project.
|
|
4903
4932
|
required:
|