n8n-core 2.32.2 → 2.33.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 (69) hide show
  1. package/dist/binary-data/binary-data.service.d.ts +1 -1
  2. package/dist/binary-data/binary-data.service.js +7 -2
  3. package/dist/binary-data/binary-data.service.js.map +1 -1
  4. package/dist/binary-data/{azure-blob.manager.d.ts → blob.manager.d.ts} +14 -4
  5. package/dist/binary-data/blob.manager.js +145 -0
  6. package/dist/binary-data/blob.manager.js.map +1 -0
  7. package/dist/binary-data/index.d.ts +1 -2
  8. package/dist/binary-data/index.js +3 -1
  9. package/dist/binary-data/index.js.map +1 -1
  10. package/dist/binary-data/types.d.ts +3 -6
  11. package/dist/binary-data/utils.d.ts +0 -2
  12. package/dist/binary-data/utils.js +0 -51
  13. package/dist/binary-data/utils.js.map +1 -1
  14. package/dist/build.tsbuildinfo +1 -1
  15. package/dist/execution-engine/active-workflow-triggers.d.ts +1 -0
  16. package/dist/execution-engine/active-workflow-triggers.js +34 -5
  17. package/dist/execution-engine/active-workflow-triggers.js.map +1 -1
  18. package/dist/execution-engine/execution-context-hook-registry.service.d.ts +2 -0
  19. package/dist/execution-engine/execution-context-hook-registry.service.js +9 -0
  20. package/dist/execution-engine/execution-context-hook-registry.service.js.map +1 -1
  21. package/dist/execution-engine/execution-context.d.ts +1 -1
  22. package/dist/execution-engine/execution-context.js +4 -0
  23. package/dist/execution-engine/execution-context.js.map +1 -1
  24. package/dist/execution-engine/execution-context.service.d.ts +1 -0
  25. package/dist/execution-engine/execution-context.service.js +19 -0
  26. package/dist/execution-engine/execution-context.service.js.map +1 -1
  27. package/dist/execution-engine/index.d.ts +3 -0
  28. package/dist/execution-engine/index.js +7 -1
  29. package/dist/execution-engine/index.js.map +1 -1
  30. package/dist/execution-engine/node-execution-context/base-execute-context.d.ts +1 -0
  31. package/dist/execution-engine/node-execution-context/base-execute-context.js +15 -0
  32. package/dist/execution-engine/node-execution-context/base-execute-context.js.map +1 -1
  33. package/dist/execution-engine/node-execution-context/node-execution-context.js +1 -1
  34. package/dist/execution-engine/node-execution-context/node-execution-context.js.map +1 -1
  35. package/dist/execution-engine/node-execution-context/utils/request-helpers/oauth.js +12 -2
  36. package/dist/execution-engine/node-execution-context/utils/request-helpers/oauth.js.map +1 -1
  37. package/dist/execution-engine/noop-poll-job-manager.d.ts +8 -0
  38. package/dist/execution-engine/noop-poll-job-manager.js +14 -0
  39. package/dist/execution-engine/noop-poll-job-manager.js.map +1 -0
  40. package/dist/execution-engine/poll-job-manager.d.ts +7 -0
  41. package/dist/execution-engine/poll-job-manager.js +7 -0
  42. package/dist/execution-engine/poll-job-manager.js.map +1 -0
  43. package/dist/instance-settings/instance-settings.d.ts +3 -0
  44. package/dist/instance-settings/instance-settings.js +8 -5
  45. package/dist/instance-settings/instance-settings.js.map +1 -1
  46. package/package.json +11 -13
  47. package/dist/binary-data/azure-blob/azure-blob.config.d.ts +0 -8
  48. package/dist/binary-data/azure-blob/azure-blob.config.js +0 -52
  49. package/dist/binary-data/azure-blob/azure-blob.config.js.map +0 -1
  50. package/dist/binary-data/azure-blob/azure-blob.service.ee.d.ts +0 -25
  51. package/dist/binary-data/azure-blob/azure-blob.service.ee.js +0 -157
  52. package/dist/binary-data/azure-blob/azure-blob.service.ee.js.map +0 -1
  53. package/dist/binary-data/azure-blob.manager.js +0 -81
  54. package/dist/binary-data/azure-blob.manager.js.map +0 -1
  55. package/dist/binary-data/file-system.manager.d.ts +0 -31
  56. package/dist/binary-data/file-system.manager.js +0 -151
  57. package/dist/binary-data/file-system.manager.js.map +0 -1
  58. package/dist/binary-data/object-store/object-store.config.d.ts +0 -21
  59. package/dist/binary-data/object-store/object-store.config.js +0 -93
  60. package/dist/binary-data/object-store/object-store.config.js.map +0 -1
  61. package/dist/binary-data/object-store/object-store.service.ee.d.ts +0 -49
  62. package/dist/binary-data/object-store/object-store.service.ee.js +0 -290
  63. package/dist/binary-data/object-store/object-store.service.ee.js.map +0 -1
  64. package/dist/binary-data/object-store/types.d.ts +0 -8
  65. package/dist/binary-data/object-store/types.js +0 -3
  66. package/dist/binary-data/object-store/types.js.map +0 -1
  67. package/dist/binary-data/object-store.manager.d.ts +0 -23
  68. package/dist/binary-data/object-store.manager.js +0 -87
  69. package/dist/binary-data/object-store.manager.js.map +0 -1
@@ -1,151 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FileSystemManager = void 0;
7
- const n8n_workflow_1 = require("n8n-workflow");
8
- const node_fs_1 = require("node:fs");
9
- const promises_1 = __importDefault(require("node:fs/promises"));
10
- const node_path_1 = __importDefault(require("node:path"));
11
- const uuid_1 = require("uuid");
12
- const utils_1 = require("./utils");
13
- const disallowed_filepath_error_1 = require("../errors/disallowed-filepath.error");
14
- const file_not_found_error_1 = require("../errors/file-not-found.error");
15
- const EXECUTION_PATH_MATCHER = /^workflows\/([^/]+)\/executions\/([^/]+)\//;
16
- class FileSystemManager {
17
- constructor(storagePath, errorReporter) {
18
- this.storagePath = storagePath;
19
- this.errorReporter = errorReporter;
20
- }
21
- async init() {
22
- await (0, utils_1.assertDir)(this.storagePath);
23
- }
24
- async store(location, bufferOrStream, { mimeType, fileName }) {
25
- const fileId = this.toFileId(location);
26
- const filePath = this.resolvePath(fileId);
27
- await (0, utils_1.assertDir)(node_path_1.default.dirname(filePath));
28
- await promises_1.default.writeFile(filePath, bufferOrStream);
29
- const fileSize = await this.getSize(fileId);
30
- await this.storeMetadata(fileId, { mimeType, fileName, fileSize });
31
- return { fileId, fileSize };
32
- }
33
- getPath(fileId) {
34
- return this.resolvePath(fileId);
35
- }
36
- async getAsStream(fileId, chunkSize) {
37
- const filePath = this.resolvePath(fileId);
38
- if (!(await (0, utils_1.exists)(filePath))) {
39
- throw new file_not_found_error_1.FileNotFoundError(filePath);
40
- }
41
- return (0, node_fs_1.createReadStream)(filePath, { highWaterMark: chunkSize });
42
- }
43
- async getAsBuffer(fileId) {
44
- const filePath = this.resolvePath(fileId);
45
- if (!(await (0, utils_1.exists)(filePath))) {
46
- throw new file_not_found_error_1.FileNotFoundError(filePath);
47
- }
48
- return await promises_1.default.readFile(filePath);
49
- }
50
- async getMetadata(fileId) {
51
- const filePath = this.resolvePath(`${fileId}.metadata`);
52
- return await (0, n8n_workflow_1.jsonParse)(await promises_1.default.readFile(filePath, { encoding: 'utf-8' }));
53
- }
54
- async deleteMany(locations) {
55
- if (locations.length === 0)
56
- return;
57
- const binaryDataDirs = locations.map((location) => this.resolvePath(this.toRelativePath(location)));
58
- await Promise.all(binaryDataDirs.map(async (dir) => {
59
- await promises_1.default.rm(dir, { recursive: true, force: true });
60
- }));
61
- }
62
- async copyByFilePath(targetLocation, sourcePath, { mimeType, fileName }) {
63
- const targetFileId = this.toFileId(targetLocation);
64
- const targetPath = this.resolvePath(targetFileId);
65
- await (0, utils_1.assertDir)(node_path_1.default.dirname(targetPath));
66
- await promises_1.default.cp(sourcePath, targetPath);
67
- const fileSize = await this.getSize(targetFileId);
68
- await this.storeMetadata(targetFileId, { mimeType, fileName, fileSize });
69
- return { fileId: targetFileId, fileSize };
70
- }
71
- async copyByFileId(targetLocation, sourceFileId) {
72
- const targetFileId = this.toFileId(targetLocation);
73
- const sourcePath = this.resolvePath(sourceFileId);
74
- const targetPath = this.resolvePath(targetFileId);
75
- const sourceMetadata = await this.getMetadata(sourceFileId);
76
- await (0, utils_1.assertDir)(node_path_1.default.dirname(targetPath));
77
- await promises_1.default.copyFile(sourcePath, targetPath);
78
- await this.storeMetadata(targetFileId, sourceMetadata);
79
- return targetFileId;
80
- }
81
- async rename(oldFileId, newFileId) {
82
- const oldPath = this.resolvePath(oldFileId);
83
- const newPath = this.resolvePath(newFileId);
84
- await (0, utils_1.assertDir)(node_path_1.default.dirname(newPath));
85
- await Promise.all([
86
- promises_1.default.rename(oldPath, newPath),
87
- promises_1.default.rename(`${oldPath}.metadata`, `${newPath}.metadata`),
88
- ]);
89
- }
90
- async deleteManyByFileId(ids) {
91
- const parsedIds = ids.flatMap((id) => {
92
- try {
93
- const parsed = this.parseFileId(id);
94
- return [parsed];
95
- }
96
- catch (e) {
97
- this.errorReporter.warn(`Could not parse file ID ${id}. Skip deletion`);
98
- return [];
99
- }
100
- });
101
- await this.deleteMany(parsedIds);
102
- }
103
- toFileId(location) {
104
- return `${this.toRelativePath(location)}/binary_data/${(0, uuid_1.v4)()}`;
105
- }
106
- toRelativePath(location) {
107
- switch (location.type) {
108
- case 'execution': {
109
- const executionId = location.executionId || 'temp';
110
- return `workflows/${location.workflowId}/executions/${executionId}`;
111
- }
112
- case 'custom':
113
- return location.pathSegments.join('/');
114
- }
115
- }
116
- parseFileId(fileId) {
117
- const executionMatch = fileId.match(EXECUTION_PATH_MATCHER);
118
- if (executionMatch) {
119
- return utils_1.FileLocation.ofExecution(executionMatch[1], executionMatch[2]);
120
- }
121
- const binaryDataIndex = fileId.indexOf('/binary_data/');
122
- if (binaryDataIndex !== -1) {
123
- const pathSegments = fileId.substring(0, binaryDataIndex).split('/');
124
- return utils_1.FileLocation.ofCustom({ pathSegments });
125
- }
126
- throw new n8n_workflow_1.UnexpectedError(`File ID ${fileId} has invalid format.`);
127
- }
128
- resolvePath(...args) {
129
- const returnPath = node_path_1.default.join(this.storagePath, ...args);
130
- if (node_path_1.default.relative(this.storagePath, returnPath).startsWith('..')) {
131
- throw new disallowed_filepath_error_1.DisallowedFilepathError(returnPath);
132
- }
133
- return returnPath;
134
- }
135
- async storeMetadata(fileId, metadata) {
136
- const filePath = this.resolvePath(`${fileId}.metadata`);
137
- await promises_1.default.writeFile(filePath, JSON.stringify(metadata), { encoding: 'utf-8' });
138
- }
139
- async getSize(fileId) {
140
- const filePath = this.resolvePath(fileId);
141
- try {
142
- const stats = await promises_1.default.stat(filePath);
143
- return stats.size;
144
- }
145
- catch (error) {
146
- throw new file_not_found_error_1.FileNotFoundError(filePath);
147
- }
148
- }
149
- }
150
- exports.FileSystemManager = FileSystemManager;
151
- //# sourceMappingURL=file-system.manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-system.manager.js","sourceRoot":"","sources":["../../src/binary-data/file-system.manager.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { z } from 'zod';
2
- declare const protocolSchema: z.ZodEnum<["http", "https"]>;
3
- export type Protocol = z.infer<typeof protocolSchema>;
4
- declare class ObjectStoreBucketConfig {
5
- name: string;
6
- region: string;
7
- }
8
- declare class ObjectStoreCredentialsConfig {
9
- accessKey: string;
10
- accessSecret: string;
11
- authAutoDetect: boolean;
12
- }
13
- export declare class ObjectStoreConfig {
14
- host: string;
15
- protocol: Protocol;
16
- forcePathStyle: boolean;
17
- maxAttempts: number;
18
- bucket: ObjectStoreBucketConfig;
19
- credentials: ObjectStoreCredentialsConfig;
20
- }
21
- export {};
@@ -1,93 +0,0 @@
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.ObjectStoreConfig = void 0;
13
- const config_1 = require("@n8n/config");
14
- const zod_1 = require("zod");
15
- const protocolSchema = zod_1.z.enum(['http', 'https']);
16
- let ObjectStoreBucketConfig = class ObjectStoreBucketConfig {
17
- constructor() {
18
- this.name = '';
19
- this.region = '';
20
- }
21
- };
22
- __decorate([
23
- (0, config_1.Env)('N8N_EXTERNAL_STORAGE_S3_BUCKET_NAME'),
24
- __metadata("design:type", String)
25
- ], ObjectStoreBucketConfig.prototype, "name", void 0);
26
- __decorate([
27
- (0, config_1.Env)('N8N_EXTERNAL_STORAGE_S3_BUCKET_REGION'),
28
- __metadata("design:type", String)
29
- ], ObjectStoreBucketConfig.prototype, "region", void 0);
30
- ObjectStoreBucketConfig = __decorate([
31
- config_1.Config
32
- ], ObjectStoreBucketConfig);
33
- let ObjectStoreCredentialsConfig = class ObjectStoreCredentialsConfig {
34
- constructor() {
35
- this.accessKey = '';
36
- this.accessSecret = '';
37
- this.authAutoDetect = false;
38
- }
39
- };
40
- __decorate([
41
- (0, config_1.Env)('N8N_EXTERNAL_STORAGE_S3_ACCESS_KEY'),
42
- __metadata("design:type", String)
43
- ], ObjectStoreCredentialsConfig.prototype, "accessKey", void 0);
44
- __decorate([
45
- (0, config_1.Env)('N8N_EXTERNAL_STORAGE_S3_ACCESS_SECRET'),
46
- __metadata("design:type", String)
47
- ], ObjectStoreCredentialsConfig.prototype, "accessSecret", void 0);
48
- __decorate([
49
- (0, config_1.Env)('N8N_EXTERNAL_STORAGE_S3_AUTH_AUTO_DETECT'),
50
- __metadata("design:type", Boolean)
51
- ], ObjectStoreCredentialsConfig.prototype, "authAutoDetect", void 0);
52
- ObjectStoreCredentialsConfig = __decorate([
53
- config_1.Config
54
- ], ObjectStoreCredentialsConfig);
55
- let ObjectStoreConfig = class ObjectStoreConfig {
56
- constructor() {
57
- this.host = '';
58
- this.protocol = 'https';
59
- this.forcePathStyle = true;
60
- this.maxAttempts = 3;
61
- this.bucket = {};
62
- this.credentials = {};
63
- }
64
- };
65
- exports.ObjectStoreConfig = ObjectStoreConfig;
66
- __decorate([
67
- (0, config_1.Env)('N8N_EXTERNAL_STORAGE_S3_HOST'),
68
- __metadata("design:type", String)
69
- ], ObjectStoreConfig.prototype, "host", void 0);
70
- __decorate([
71
- (0, config_1.Env)('N8N_EXTERNAL_STORAGE_S3_PROTOCOL', protocolSchema),
72
- __metadata("design:type", String)
73
- ], ObjectStoreConfig.prototype, "protocol", void 0);
74
- __decorate([
75
- (0, config_1.Env)('N8N_EXTERNAL_STORAGE_S3_FORCE_PATH_STYLE'),
76
- __metadata("design:type", Boolean)
77
- ], ObjectStoreConfig.prototype, "forcePathStyle", void 0);
78
- __decorate([
79
- (0, config_1.Env)('N8N_EXTERNAL_STORAGE_S3_MAX_ATTEMPTS'),
80
- __metadata("design:type", Number)
81
- ], ObjectStoreConfig.prototype, "maxAttempts", void 0);
82
- __decorate([
83
- config_1.Nested,
84
- __metadata("design:type", ObjectStoreBucketConfig)
85
- ], ObjectStoreConfig.prototype, "bucket", void 0);
86
- __decorate([
87
- config_1.Nested,
88
- __metadata("design:type", ObjectStoreCredentialsConfig)
89
- ], ObjectStoreConfig.prototype, "credentials", void 0);
90
- exports.ObjectStoreConfig = ObjectStoreConfig = __decorate([
91
- config_1.Config
92
- ], ObjectStoreConfig);
93
- //# sourceMappingURL=object-store.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object-store.config.js","sourceRoot":"","sources":["../../../src/binary-data/object-store/object-store.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAkD;AAClD,6BAAwB;AAExB,MAAM,cAAc,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAKjD,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAA7B;QAGC,SAAI,GAAW,EAAE,CAAC;QAIlB,WAAM,GAAW,EAAE,CAAC;IACrB,CAAC;CAAA,CAAA;AALA;IADC,IAAA,YAAG,EAAC,qCAAqC,CAAC;;qDACzB;AAIlB;IADC,IAAA,YAAG,EAAC,uCAAuC,CAAC;;uDACzB;AAPf,uBAAuB;IAD5B,eAAM;GACD,uBAAuB,CAQ5B;AAGD,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAAlC;QAGC,cAAS,GAAW,EAAE,CAAC;QAIvB,iBAAY,GAAW,EAAE,CAAC;QAQ1B,mBAAc,GAAY,KAAK,CAAC;IACjC,CAAC;CAAA,CAAA;AAbA;IADC,IAAA,YAAG,EAAC,oCAAoC,CAAC;;+DACnB;AAIvB;IADC,IAAA,YAAG,EAAC,uCAAuC,CAAC;;kEACnB;AAQ1B;IADC,IAAA,YAAG,EAAC,0CAA0C,CAAC;;oEAChB;AAf3B,4BAA4B;IADjC,eAAM;GACD,4BAA4B,CAgBjC;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAAvB;QAMN,SAAI,GAAW,EAAE,CAAC;QAGlB,aAAQ,GAAa,OAAO,CAAC;QAI7B,mBAAc,GAAY,IAAI,CAAC;QAI/B,gBAAW,GAAW,CAAC,CAAC;QAGxB,WAAM,GAA4B,EAA6B,CAAC;QAGhE,gBAAW,GAAiC,EAAkC,CAAC;IAChF,CAAC;CAAA,CAAA;;AAlBA;IADC,IAAA,YAAG,EAAC,8BAA8B,CAAC;;+CAClB;AAGlB;IADC,IAAA,YAAG,EAAC,kCAAkC,EAAE,cAAc,CAAC;;mDAC3B;AAI7B;IADC,IAAA,YAAG,EAAC,0CAA0C,CAAC;;yDACjB;AAI/B;IADC,IAAA,YAAG,EAAC,sCAAsC,CAAC;;sDACpB;AAGxB;IADC,eAAM;8BACC,uBAAuB;iDAAiC;AAGhE;IADC,eAAM;8BACM,4BAA4B;sDAAsC;4BAvBnE,iBAAiB;IAD7B,eAAM;GACM,iBAAiB,CAwB7B"}
@@ -1,49 +0,0 @@
1
- import type { S3ClientConfig } from '@aws-sdk/client-s3';
2
- import { Logger } from '@n8n/backend-common';
3
- import { Readable } from 'node:stream';
4
- import { ObjectStoreConfig } from './object-store.config';
5
- import type { MetadataResponseHeaders } from './types';
6
- import type { BinaryData } from '../types';
7
- export declare class ObjectStoreService {
8
- private readonly logger;
9
- private readonly s3Config;
10
- private s3Client;
11
- private isReady;
12
- private bucket;
13
- constructor(logger: Logger, s3Config: ObjectStoreConfig);
14
- getClientConfig(): S3ClientConfig;
15
- init(): Promise<void>;
16
- setReady(newState: boolean): void;
17
- checkConnection(): Promise<void>;
18
- put(filename: string, buffer: Buffer, metadata?: BinaryData.PreWriteMetadata): Promise<import("@aws-sdk/client-s3").PutObjectCommandOutput>;
19
- get(fileId: string, opts: {
20
- mode: 'buffer';
21
- }): Promise<Buffer>;
22
- get(fileId: string, opts: {
23
- mode: 'stream';
24
- chunkSize?: number;
25
- }): Promise<Readable>;
26
- getMetadata(fileId: string): Promise<MetadataResponseHeaders>;
27
- deleteOne(fileId: string): Promise<import("@aws-sdk/client-s3").DeleteObjectCommandOutput>;
28
- deleteMany(prefix: string): Promise<void>;
29
- deleteByKeys(keys: string[]): Promise<void>;
30
- list(prefix: string): Promise<{
31
- key: string;
32
- lastModified: string;
33
- eTag: string;
34
- size: number;
35
- storageClass: string;
36
- }[]>;
37
- getListPage(prefix: string, continuationToken?: string): Promise<{
38
- contents: {
39
- key: string;
40
- lastModified: string;
41
- eTag: string;
42
- size: number;
43
- storageClass: string;
44
- }[];
45
- isTruncated: boolean;
46
- nextContinuationToken: string | undefined;
47
- }>;
48
- private handleS3Error;
49
- }
@@ -1,290 +0,0 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ObjectStoreService = void 0;
16
- const client_s3_1 = require("@aws-sdk/client-s3");
17
- const backend_common_1 = require("@n8n/backend-common");
18
- const backend_network_1 = require("@n8n/backend-network");
19
- const di_1 = require("@n8n/di");
20
- const ensure_error_1 = require("@n8n/utils/errors/ensure-error");
21
- const chunk_1 = __importDefault(require("lodash/chunk"));
22
- const n8n_workflow_1 = require("n8n-workflow");
23
- const node_crypto_1 = require("node:crypto");
24
- const node_stream_1 = require("node:stream");
25
- const object_store_config_1 = require("./object-store.config");
26
- const utils_1 = require("../utils");
27
- const MAX_REPORTED_DELETE_ERRORS = 5;
28
- let ObjectStoreService = class ObjectStoreService {
29
- constructor(logger, s3Config) {
30
- this.logger = logger;
31
- this.s3Config = s3Config;
32
- this.isReady = false;
33
- const { bucket } = s3Config;
34
- if (bucket.name === '') {
35
- throw new n8n_workflow_1.UnexpectedError('External storage bucket name not configured. Please set `N8N_EXTERNAL_STORAGE_S3_BUCKET_NAME`.');
36
- }
37
- this.bucket = bucket.name;
38
- this.s3Client = new client_s3_1.S3Client(this.getClientConfig());
39
- }
40
- getClientConfig() {
41
- const { host, bucket, protocol, credentials, maxAttempts } = this.s3Config;
42
- const clientConfig = {};
43
- const endpoint = host ? `${protocol}://${host}` : undefined;
44
- if (endpoint) {
45
- clientConfig.endpoint = endpoint;
46
- clientConfig.forcePathStyle = this.s3Config.forcePathStyle;
47
- }
48
- if (bucket.region.length) {
49
- clientConfig.region = bucket.region;
50
- }
51
- if (!credentials.authAutoDetect) {
52
- clientConfig.credentials = {
53
- accessKeyId: credentials.accessKey,
54
- secretAccessKey: credentials.accessSecret,
55
- };
56
- }
57
- clientConfig.maxAttempts = maxAttempts;
58
- return clientConfig;
59
- }
60
- async init() {
61
- await this.checkConnection();
62
- this.setReady(true);
63
- }
64
- setReady(newState) {
65
- this.isReady = newState;
66
- }
67
- async checkConnection() {
68
- if (this.isReady)
69
- return;
70
- try {
71
- this.logger.debug('Checking connection to S3 bucket', { bucket: this.bucket });
72
- const command = new client_s3_1.HeadBucketCommand({ Bucket: this.bucket });
73
- await this.s3Client.send(command);
74
- }
75
- catch (e) {
76
- this.handleS3Error(e);
77
- }
78
- }
79
- async put(filename, buffer, metadata = {}) {
80
- try {
81
- const params = {
82
- Bucket: this.bucket,
83
- Key: filename,
84
- Body: buffer,
85
- ContentLength: buffer.length,
86
- ContentMD5: (0, node_crypto_1.createHash)('md5').update(buffer).digest('base64'),
87
- };
88
- if (metadata.fileName) {
89
- params.Metadata = { filename: encodeURIComponent(metadata.fileName) };
90
- }
91
- if (metadata.mimeType) {
92
- params.ContentType = metadata.mimeType;
93
- }
94
- const { Body: _body, ...logParams } = params;
95
- this.logger.debug('Sending PUT request to S3', { params: logParams });
96
- const command = new client_s3_1.PutObjectCommand(params);
97
- return await this.s3Client.send(command);
98
- }
99
- catch (e) {
100
- this.handleS3Error(e);
101
- }
102
- }
103
- async get(fileId, { mode, chunkSize = 0 }) {
104
- this.logger.debug('Sending GET request to S3', { bucket: this.bucket, key: fileId });
105
- const command = new client_s3_1.GetObjectCommand({
106
- Bucket: this.bucket,
107
- Key: fileId,
108
- });
109
- try {
110
- if (mode === 'stream') {
111
- const abortController = new AbortController();
112
- const { Body: body } = await this.s3Client.send(command, {
113
- abortSignal: abortController.signal,
114
- });
115
- if (!body)
116
- throw new n8n_workflow_1.UnexpectedError('Received empty response body');
117
- if (!(body instanceof node_stream_1.Readable)) {
118
- throw new n8n_workflow_1.UnexpectedError('Expected stream but received different type', {
119
- extra: { bodyType: typeof body },
120
- });
121
- }
122
- const wrapper = new node_stream_1.PassThrough();
123
- let bodyFullyConsumed = false;
124
- body.on('end', () => {
125
- bodyFullyConsumed = true;
126
- });
127
- wrapper.on('close', () => {
128
- if (!bodyFullyConsumed) {
129
- abortController.abort();
130
- body.destroy();
131
- }
132
- });
133
- body.on('error', (error) => wrapper.destroy(error));
134
- body.pipe(wrapper);
135
- if (chunkSize > 0) {
136
- const rechunker = (0, utils_1.createFixedSizeChunker)(chunkSize);
137
- (0, node_stream_1.pipeline)(wrapper, rechunker, () => { });
138
- return rechunker;
139
- }
140
- return wrapper;
141
- }
142
- const { Body: body } = await this.s3Client.send(command);
143
- if (!body)
144
- throw new n8n_workflow_1.UnexpectedError('Received empty response body');
145
- return await (0, backend_network_1.streamToBuffer)(body);
146
- }
147
- catch (e) {
148
- if (e instanceof n8n_workflow_1.UnexpectedError)
149
- throw e;
150
- this.handleS3Error(e);
151
- }
152
- }
153
- async getMetadata(fileId) {
154
- try {
155
- const command = new client_s3_1.HeadObjectCommand({
156
- Bucket: this.bucket,
157
- Key: fileId,
158
- });
159
- this.logger.debug('Sending HEAD request to S3', { bucket: this.bucket, key: fileId });
160
- const response = await this.s3Client.send(command);
161
- const headers = {};
162
- if (response.ContentType)
163
- headers['content-type'] = response.ContentType;
164
- if (response.ContentLength)
165
- headers['content-length'] = String(response.ContentLength);
166
- if (response.ETag)
167
- headers.etag = response.ETag;
168
- if (response.LastModified)
169
- headers['last-modified'] = response.LastModified.toUTCString();
170
- if (response.Metadata) {
171
- Object.entries(response.Metadata).forEach(([key, value]) => {
172
- headers[`x-amz-meta-${key.toLowerCase()}`] =
173
- key === 'filename' ? decodeURIComponent(value) : value;
174
- });
175
- }
176
- return headers;
177
- }
178
- catch (e) {
179
- this.handleS3Error(e);
180
- }
181
- }
182
- async deleteOne(fileId) {
183
- try {
184
- const command = new client_s3_1.DeleteObjectCommand({
185
- Bucket: this.bucket,
186
- Key: fileId,
187
- });
188
- this.logger.debug('Sending DELETE request to S3', { bucket: this.bucket, key: fileId });
189
- return await this.s3Client.send(command);
190
- }
191
- catch (e) {
192
- this.handleS3Error(e);
193
- }
194
- }
195
- async deleteMany(prefix) {
196
- const objects = await this.list(prefix);
197
- await this.deleteByKeys(objects.map(({ key }) => key));
198
- }
199
- async deleteByKeys(keys) {
200
- if (keys.length === 0)
201
- return;
202
- try {
203
- for (const batch of (0, chunk_1.default)(keys, 1000)) {
204
- const params = {
205
- Bucket: this.bucket,
206
- Delete: {
207
- Objects: batch.map((key) => ({ Key: key })),
208
- },
209
- };
210
- this.logger.debug('Sending DELETE MANY request to S3', {
211
- bucket: this.bucket,
212
- objectCount: batch.length,
213
- });
214
- const { Errors: errors } = await this.s3Client.send(new client_s3_1.DeleteObjectsCommand(params));
215
- if (errors && errors.length > 0) {
216
- this.logger.error('Failed to delete objects from S3', {
217
- bucket: this.bucket,
218
- failures: errors.map((e) => ({ key: e.Key, code: e.Code, message: e.Message })),
219
- });
220
- const summary = errors
221
- .slice(0, MAX_REPORTED_DELETE_ERRORS)
222
- .map((e) => `${e.Key ?? '<unknown key>'} (${e.Code ?? '?'}: ${e.Message ?? '?'})`)
223
- .join(', ');
224
- throw new n8n_workflow_1.UnexpectedError(`Failed to delete ${errors.length} of ${batch.length} objects: ${summary}`);
225
- }
226
- }
227
- }
228
- catch (e) {
229
- this.handleS3Error(e);
230
- }
231
- }
232
- async list(prefix) {
233
- const items = [];
234
- let isTruncated = true;
235
- let continuationToken;
236
- try {
237
- while (isTruncated) {
238
- const listPage = await this.getListPage(prefix, continuationToken);
239
- if (listPage.contents?.length > 0) {
240
- items.push(...listPage.contents);
241
- }
242
- isTruncated = listPage.isTruncated;
243
- continuationToken = listPage.nextContinuationToken;
244
- }
245
- return items;
246
- }
247
- catch (e) {
248
- this.handleS3Error(e);
249
- }
250
- }
251
- async getListPage(prefix, continuationToken) {
252
- try {
253
- const params = {
254
- Bucket: this.bucket,
255
- Prefix: prefix,
256
- };
257
- if (continuationToken) {
258
- params.ContinuationToken = continuationToken;
259
- }
260
- this.logger.debug('Sending list request to S3', { bucket: this.bucket, prefix });
261
- const command = new client_s3_1.ListObjectsV2Command(params);
262
- const response = await this.s3Client.send(command);
263
- const contents = response.Contents?.map((item) => ({
264
- key: item.Key ?? '',
265
- lastModified: item.LastModified?.toISOString() ?? '',
266
- eTag: item.ETag ?? '',
267
- size: item.Size ?? 0,
268
- storageClass: item.StorageClass ?? '',
269
- })) ?? [];
270
- return {
271
- contents,
272
- isTruncated: response.IsTruncated ?? false,
273
- nextContinuationToken: response.NextContinuationToken,
274
- };
275
- }
276
- catch (e) {
277
- this.handleS3Error(e);
278
- }
279
- }
280
- handleS3Error(e) {
281
- const error = (0, ensure_error_1.ensureError)(e);
282
- throw new n8n_workflow_1.UnexpectedError(`Request to S3 failed: ${error.message}`, { cause: error });
283
- }
284
- };
285
- exports.ObjectStoreService = ObjectStoreService;
286
- exports.ObjectStoreService = ObjectStoreService = __decorate([
287
- (0, di_1.Service)(),
288
- __metadata("design:paramtypes", [backend_common_1.Logger, object_store_config_1.ObjectStoreConfig])
289
- ], ObjectStoreService);
290
- //# sourceMappingURL=object-store.service.ee.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"object-store.service.ee.js","sourceRoot":"","sources":["../../../src/binary-data/object-store/object-store.service.ee.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { BinaryData } from '../types';
2
- export type MetadataResponseHeaders = Record<string, string> & {
3
- 'content-length'?: string;
4
- 'content-type'?: string;
5
- 'x-amz-meta-filename'?: string;
6
- etag?: string;
7
- 'last-modified'?: string;
8
- } & BinaryData.PreWriteMetadata;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/binary-data/object-store/types.ts"],"names":[],"mappings":""}