@golemio/core 1.17.2 → 1.17.3-dev.1582234527
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/helpers/data-access/storage/AzureBlobStorageService.d.ts +5 -2
- package/dist/helpers/data-access/storage/AzureBlobStorageService.js +32 -21
- package/dist/helpers/data-access/storage/AzureBlobStorageService.js.map +1 -1
- package/dist/input-gateway/data-access/StorageServiceProvider.js +1 -0
- package/dist/input-gateway/data-access/StorageServiceProvider.js.map +1 -1
- package/dist/input-gateway/helpers/SaveRawDataMiddleware.js +8 -2
- package/dist/input-gateway/helpers/SaveRawDataMiddleware.js.map +1 -1
- package/dist/integration-engine/data-access/StorageServiceProvider.js +1 -0
- package/dist/integration-engine/data-access/StorageServiceProvider.js.map +1 -1
- package/package.json +10 -9
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
|
-
import { Readable } from "stream";
|
|
5
4
|
import { ILogger } from "../../logger";
|
|
5
|
+
import { Readable } from "node:stream";
|
|
6
6
|
import { AbstractStorageService } from "./AbstractStorageService";
|
|
7
7
|
export interface IAzureBlobStorageConfig {
|
|
8
8
|
clientId: string;
|
|
@@ -10,14 +10,17 @@ export interface IAzureBlobStorageConfig {
|
|
|
10
10
|
clientSecret: string;
|
|
11
11
|
account: string;
|
|
12
12
|
containerName: string;
|
|
13
|
+
uploadTimeoutInSeconds: number;
|
|
13
14
|
}
|
|
14
15
|
export declare class AzureBlobStorageService extends AbstractStorageService {
|
|
16
|
+
private config;
|
|
15
17
|
private readonly log;
|
|
16
|
-
private readonly
|
|
18
|
+
private readonly uploadTimeoutInMs;
|
|
17
19
|
constructor(config: IAzureBlobStorageConfig, log: ILogger);
|
|
18
20
|
uploadStream(stream: Readable, pathPrefix: string, ext?: string, fileName?: string): Promise<void>;
|
|
19
21
|
uploadFile(data: Buffer | string, pathPrefix: string, ext?: string, fileName?: string): Promise<void>;
|
|
20
22
|
deleteFile(fileKey: string): Promise<void>;
|
|
21
23
|
getFileStream(fileKey: string): Promise<NodeJS.ReadableStream | undefined>;
|
|
24
|
+
private instantiateContainerClient;
|
|
22
25
|
private handleUploadProgress;
|
|
23
26
|
}
|
|
@@ -10,21 +10,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.AzureBlobStorageService = void 0;
|
|
13
|
-
const storage_blob_1 = require("@azure/storage-blob");
|
|
14
|
-
const AbstractStorageService_1 = require("./AbstractStorageService");
|
|
15
13
|
const _helpers_1 = require("../..");
|
|
16
14
|
const identity_1 = require("@azure/identity");
|
|
15
|
+
const storage_blob_1 = require("@azure/storage-blob");
|
|
16
|
+
const AbstractStorageService_1 = require("./AbstractStorageService");
|
|
17
|
+
const UPLOAD_STREAM_BUFFER_SIZE = 4 * 1024 * 1024; // 4 MB
|
|
17
18
|
class AzureBlobStorageService extends AbstractStorageService_1.AbstractStorageService {
|
|
18
19
|
constructor(config, log) {
|
|
19
20
|
super();
|
|
21
|
+
this.config = config;
|
|
20
22
|
this.log = log;
|
|
21
|
-
|
|
22
|
-
const blobServiceClient = new storage_blob_1.BlobServiceClient(`https://${config.account}.blob.core.windows.net`, credentials);
|
|
23
|
-
this.containerClient = blobServiceClient.getContainerClient(config.containerName);
|
|
24
|
-
this.containerClient.createIfNotExists().catch((err) => {
|
|
25
|
-
// This is fine in the production environment
|
|
26
|
-
this.log.debug(`[${this.constructor.name}] Could not initialize container "${config.containerName}"`, err);
|
|
27
|
-
});
|
|
23
|
+
this.uploadTimeoutInMs = config.uploadTimeoutInSeconds * 1000;
|
|
28
24
|
}
|
|
29
25
|
uploadStream(stream, pathPrefix, ext = "", fileName) {
|
|
30
26
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -33,15 +29,18 @@ class AzureBlobStorageService extends AbstractStorageService_1.AbstractStorageSe
|
|
|
33
29
|
const fileNameKey = `${pathPrefix}/${fileNamePrefix}`;
|
|
34
30
|
const fileNameExt = ext ? `.${ext}` : "";
|
|
35
31
|
try {
|
|
36
|
-
const blobClient = this.containerClient.getBlockBlobClient(`${fileNameKey}${fileNameExt}`);
|
|
37
32
|
const options = {
|
|
38
33
|
blobHTTPHeaders: { blobContentType: "application/octet-stream" },
|
|
39
34
|
onProgress: this.handleUploadProgress(fileNameKey + fileNameExt),
|
|
35
|
+
abortSignal: AbortSignal.timeout(this.uploadTimeoutInMs),
|
|
40
36
|
};
|
|
41
|
-
|
|
37
|
+
const containerClient = this.instantiateContainerClient();
|
|
38
|
+
const blobClient = containerClient.getBlockBlobClient(`${fileNameKey}${fileNameExt}`);
|
|
39
|
+
yield blobClient.uploadStream(stream, UPLOAD_STREAM_BUFFER_SIZE, undefined, options);
|
|
40
|
+
this.log.verbose(`[${this.constructor.name}] Data stream uploaded (${fileNameKey}${fileNameExt})`);
|
|
42
41
|
}
|
|
43
42
|
catch (err) {
|
|
44
|
-
this.log.error(`[${this.constructor.name}] Saving of data stream failed (${fileNameKey}${fileNameExt})
|
|
43
|
+
this.log.error(err, `[${this.constructor.name}] Saving of data stream failed (${fileNameKey}${fileNameExt})`);
|
|
45
44
|
}
|
|
46
45
|
});
|
|
47
46
|
}
|
|
@@ -52,18 +51,21 @@ class AzureBlobStorageService extends AbstractStorageService_1.AbstractStorageSe
|
|
|
52
51
|
const fileNameKey = `${pathPrefix}/${fileNamePrefix}`;
|
|
53
52
|
const fileNameExt = ext ? `.${ext}` : "";
|
|
54
53
|
try {
|
|
55
|
-
const blobClient = this.containerClient.getBlockBlobClient(`${fileNameKey}${fileNameExt}`);
|
|
56
|
-
if (!Buffer.isBuffer(data)) {
|
|
57
|
-
data = Buffer.from(data);
|
|
58
|
-
}
|
|
59
54
|
const options = {
|
|
60
55
|
blobHTTPHeaders: { blobContentType: "application/octet-stream" },
|
|
61
56
|
onProgress: this.handleUploadProgress(fileNameKey + fileNameExt, Buffer.byteLength(data)),
|
|
57
|
+
abortSignal: AbortSignal.timeout(this.uploadTimeoutInMs),
|
|
62
58
|
};
|
|
59
|
+
if (!Buffer.isBuffer(data)) {
|
|
60
|
+
data = Buffer.from(data);
|
|
61
|
+
}
|
|
62
|
+
const containerClient = this.instantiateContainerClient();
|
|
63
|
+
const blobClient = containerClient.getBlockBlobClient(`${fileNameKey}${fileNameExt}`);
|
|
63
64
|
yield blobClient.uploadData(data, options);
|
|
65
|
+
this.log.verbose(`[${this.constructor.name}] Data uploaded (${fileNameKey}${fileNameExt})`);
|
|
64
66
|
}
|
|
65
67
|
catch (err) {
|
|
66
|
-
this.log.error(`[${this.constructor.name}] Saving of data failed (${fileNameKey}${fileNameExt})
|
|
68
|
+
this.log.error(err, `[${this.constructor.name}] Saving of data failed (${fileNameKey}${fileNameExt})`);
|
|
67
69
|
}
|
|
68
70
|
});
|
|
69
71
|
}
|
|
@@ -73,26 +75,35 @@ class AzureBlobStorageService extends AbstractStorageService_1.AbstractStorageSe
|
|
|
73
75
|
const options = {
|
|
74
76
|
deleteSnapshots: "include",
|
|
75
77
|
};
|
|
76
|
-
const
|
|
78
|
+
const containerClient = this.instantiateContainerClient();
|
|
79
|
+
const blobClient = containerClient.getBlockBlobClient(fileKey);
|
|
77
80
|
yield blobClient.delete(options);
|
|
81
|
+
this.log.verbose(`[${this.constructor.name}] Data deleted (${fileKey})`);
|
|
78
82
|
}
|
|
79
83
|
catch (err) {
|
|
80
|
-
this.log.error(`[${this.constructor.name}] Deletion of data failed (${fileKey})
|
|
84
|
+
this.log.error(err, `[${this.constructor.name}] Deletion of data failed (${fileKey})`);
|
|
81
85
|
}
|
|
82
86
|
});
|
|
83
87
|
}
|
|
84
88
|
getFileStream(fileKey) {
|
|
85
89
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86
90
|
try {
|
|
87
|
-
const
|
|
91
|
+
const containerClient = this.instantiateContainerClient();
|
|
92
|
+
const blobClient = containerClient.getBlockBlobClient(fileKey);
|
|
88
93
|
const downloadResponse = yield blobClient.download();
|
|
89
94
|
return downloadResponse.readableStreamBody;
|
|
90
95
|
}
|
|
91
96
|
catch (err) {
|
|
92
|
-
this.log.error(`[${this.constructor.name}] Getting data failed (${fileKey})
|
|
97
|
+
this.log.error(err, `[${this.constructor.name}] Getting data failed (${fileKey})`);
|
|
93
98
|
}
|
|
94
99
|
});
|
|
95
100
|
}
|
|
101
|
+
instantiateContainerClient() {
|
|
102
|
+
// TODO: use @azure/identity-cache-persistence if Microsoft starts to reject auth requests
|
|
103
|
+
const credentials = new identity_1.ClientSecretCredential(this.config.tenantId, this.config.clientId, this.config.clientSecret);
|
|
104
|
+
const blobServiceClient = new storage_blob_1.BlobServiceClient(`https://${this.config.account}.blob.core.windows.net`, credentials);
|
|
105
|
+
return blobServiceClient.getContainerClient(this.config.containerName);
|
|
106
|
+
}
|
|
96
107
|
handleUploadProgress(filePath, dataByteLength) {
|
|
97
108
|
return (progress) => {
|
|
98
109
|
this.log.verbose(`[${this.constructor.name}] File upload ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AzureBlobStorageService.js","sourceRoot":"","sources":["../../../../src/helpers/data-access/storage/AzureBlobStorageService.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AzureBlobStorageService.js","sourceRoot":"","sources":["../../../../src/helpers/data-access/storage/AzureBlobStorageService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAoC;AAGpC,8CAAyD;AACzD,sDAA4H;AAE5H,qEAAkE;AAWlE,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAE1D,MAAa,uBAAwB,SAAQ,+CAAsB;IAG/D,YAAoB,MAA+B,EAAmB,GAAY;QAC9E,KAAK,EAAE,CAAC;QADQ,WAAM,GAAN,MAAM,CAAyB;QAAmB,QAAG,GAAH,GAAG,CAAS;QAE9E,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAClE,CAAC;IAEY,YAAY,CAAC,MAAgB,EAAE,UAAkB,EAAE,MAAc,EAAE,EAAE,QAAiB;;YAC/F,MAAM,GAAG,GAAG,IAAA,mBAAQ,EAAC,IAAI,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;YAChE,MAAM,cAAc,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/F,MAAM,WAAW,GAAG,GAAG,UAAU,IAAI,cAAc,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEzC,IAAI;gBACA,MAAM,OAAO,GAAmC;oBAC5C,eAAe,EAAE,EAAE,eAAe,EAAE,0BAA0B,EAAE;oBAChE,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,GAAG,WAAW,CAAC;oBAChE,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBAC3D,CAAC;gBAEF,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAC1D,MAAM,UAAU,GAAG,eAAe,CAAC,kBAAkB,CAAC,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC,CAAC;gBAEtF,MAAM,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBACrF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,2BAA2B,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;aACtG;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,mCAAmC,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;aACjH;QACL,CAAC;KAAA;IAEY,UAAU,CAAC,IAAqB,EAAE,UAAkB,EAAE,MAAc,EAAE,EAAE,QAAiB;;YAClG,MAAM,GAAG,GAAG,IAAA,mBAAQ,EAAC,IAAI,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;YAChE,MAAM,cAAc,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YAC/F,MAAM,WAAW,GAAG,GAAG,UAAU,IAAI,cAAc,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEzC,IAAI;gBACA,MAAM,OAAO,GAAmC;oBAC5C,eAAe,EAAE,EAAE,eAAe,EAAE,0BAA0B,EAAE;oBAChE,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,GAAG,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACzF,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBAC3D,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACxB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC5B;gBAED,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAC1D,MAAM,UAAU,GAAG,eAAe,CAAC,kBAAkB,CAAC,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC,CAAC;gBAEtF,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;aAC/F;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,4BAA4B,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC;aAC1G;QACL,CAAC;KAAA;IAEY,UAAU,CAAC,OAAe;;YACnC,IAAI;gBACA,MAAM,OAAO,GAAsB;oBAC/B,eAAe,EAAE,SAAS;iBAC7B,CAAC;gBAEF,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAC1D,MAAM,UAAU,GAAG,eAAe,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAE/D,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACjC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,mBAAmB,OAAO,GAAG,CAAC,CAAC;aAC5E;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,8BAA8B,OAAO,GAAG,CAAC,CAAC;aAC1F;QACL,CAAC;KAAA;IAEY,aAAa,CAAC,OAAe;;YACtC,IAAI;gBACA,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAC1D,MAAM,UAAU,GAAG,eAAe,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAE/D,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACrD,OAAO,gBAAgB,CAAC,kBAAkB,CAAC;aAC9C;YAAC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,0BAA0B,OAAO,GAAG,CAAC,CAAC;aACtF;QACL,CAAC;KAAA;IAEO,0BAA0B;QAC9B,0FAA0F;QAC1F,MAAM,WAAW,GAAG,IAAI,iCAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrH,MAAM,iBAAiB,GAAG,IAAI,gCAAiB,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,OAAO,wBAAwB,EAAE,WAAW,CAAC,CAAC;QACrH,OAAO,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC;IAEO,oBAAoB,CAAC,QAAgB,EAAE,cAAuB;QAClE,OAAO,CAAC,QAA+B,EAAE,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,OAAO,CACZ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,gBAAgB;gBACrC,GAAG,QAAQ,KAAK,QAAQ,CAAC,WAAW,MAAM,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,SAAS,EAAE,CAC9E,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CACJ;AArGD,0DAqGC"}
|
|
@@ -28,6 +28,7 @@ let StorageServiceProvider = exports.StorageServiceProvider = class StorageServi
|
|
|
28
28
|
clientSecret: config.getValue("env.AZURE_BLOB_CLIENT_SECRET", ""),
|
|
29
29
|
account: config.getValue("env.AZURE_BLOB_ACCOUNT", ""),
|
|
30
30
|
containerName: config.getValue("env.AZURE_BLOB_STORAGE_CONTAINER_NAME", ""),
|
|
31
|
+
uploadTimeoutInSeconds: Number.parseInt(config.getValue("env.AZURE_BLOB_UPLOAD_TIMEOUT_IN_SECONDS", "120")) || 120,
|
|
31
32
|
},
|
|
32
33
|
},
|
|
33
34
|
}, log).getService(storage_1.StorageProvider.Azure);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageServiceProvider.js","sourceRoot":"","sources":["../../../src/input-gateway/data-access/StorageServiceProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,+DAA8G;AAC9G,2DAAmD;AACnD,4CAA6C;AAC7C,uCAA8C;AAGvC,IAAM,sBAAsB,oCAA5B,MAAM,sBAAsB;IAG/B,YAA4C,MAAqB,EAA4B,GAAY;QACrG,MAAM,OAAO,GAAG,IAAI,+BAAqB,CACrC;YACI,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC,KAAK,MAAM;YACnE,QAAQ,EAAE;gBACN,KAAK,EAAE;oBACH,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC;oBACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC;oBACzD,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,8BAA8B,EAAE,EAAE,CAAC;oBACjE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,CAAC;oBACtD,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,uCAAuC,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"StorageServiceProvider.js","sourceRoot":"","sources":["../../../src/input-gateway/data-access/StorageServiceProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,+DAA8G;AAC9G,2DAAmD;AACnD,4CAA6C;AAC7C,uCAA8C;AAGvC,IAAM,sBAAsB,oCAA5B,MAAM,sBAAsB;IAG/B,YAA4C,MAAqB,EAA4B,GAAY;QACrG,MAAM,OAAO,GAAG,IAAI,+BAAqB,CACrC;YACI,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC,KAAK,MAAM;YACnE,QAAQ,EAAE;gBACN,KAAK,EAAE;oBACH,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC;oBACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC;oBACzD,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,8BAA8B,EAAE,EAAE,CAAC;oBACjE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,CAAC;oBACtD,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,uCAAuC,EAAE,EAAE,CAAC;oBAC3E,sBAAsB,EAClB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG;iBACjG;aACJ;SACJ,EACD,GAAG,CACN,CAAC,UAAU,CAAC,yBAAe,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,mBAAU,CAChB,0DAA0D,yBAAe,CAAC,KAAK,EAAE,EACjF,IAAI,CAAC,WAAW,CAAC,IAAI,CACxB,CAAC;SACL;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ,CAAA;iCAnCY,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;IAAyB,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;;GAHnF,sBAAsB,CAmClC"}
|
|
@@ -41,11 +41,17 @@ let SaveRawDataMiddleware = exports.SaveRawDataMiddleware = class SaveRawDataMid
|
|
|
41
41
|
}
|
|
42
42
|
const now = (0, _helpers_1.dateTime)(new Date(), { timeZone: "Europe/Prague" });
|
|
43
43
|
const fileName = `${now.format("yyyy-MM-dd")}/${now.format("HH_mm_ss.SSS")}`;
|
|
44
|
-
this.storage.uploadStream(req, `${requestUrlPath.slice(1)}`, ext, fileName)
|
|
44
|
+
this.storage.uploadStream(req, `${requestUrlPath.slice(1)}`, ext, fileName).catch((err) => {
|
|
45
|
+
this.log.error(err, `Saving of data stream failed (${requestUrlPath})`);
|
|
46
|
+
});
|
|
45
47
|
// save file with headers of the matched route
|
|
46
48
|
if (whitelistRegexp.headersRegexp.exec(requestUrlPath)) {
|
|
47
49
|
const headerFileName = `${fileName}_headers`;
|
|
48
|
-
this.storage
|
|
50
|
+
this.storage
|
|
51
|
+
.uploadFile(JSON.stringify(req.headers), `${requestUrlPath.slice(1)}`, `json`, headerFileName)
|
|
52
|
+
.catch((err) => {
|
|
53
|
+
this.log.error(err, `Saving of headers failed (${requestUrlPath})`);
|
|
54
|
+
});
|
|
49
55
|
}
|
|
50
56
|
}
|
|
51
57
|
next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveRawDataMiddleware.js","sourceRoot":"","sources":["../../../src/input-gateway/helpers/SaveRawDataMiddleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA6C;AAE7C,+DAAsE;AACtE,2DAAmD;AAEnD,6EAAwE;AACxE,2DAAuE;AACvE,gCAAyC;AACzC,4CAA6D;AAE7D,mDAA8C;AAC9C,uCAA8C;AAGvC,IAAM,qBAAqB,mCAA3B,MAAM,qBAAqB;IAG9B,YACmC,MAAsB,EACrB,YAA2B,EACjC,GAA6B,EAChB,OAAuC;QADnC,QAAG,GAAH,GAAG,CAAS;QACR,YAAO,GAAP,OAAO,CAAwB;QAM3E,kBAAa,GAAG,GAAG,EAAE;YACxB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;gBACvD,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC;gBAEhC,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;oBACnG,iCAAiC;oBACjC,MAAM,WAAW,GAAG,IAAA,2CAAc,EAAC,GAAG,CAAwC,CAAC;oBAC/E,MAAM,GAAG,GAAG,0CAAsB,CAAC,WAAW,CAAC,CAAC;oBAEhD,wBAAwB;oBACxB,IAAI,CAAC,GAAG,EAAE;wBACN,qBAAY,CAAC,MAAM,CACf,IAAI,qBAAY,CACZ,4BAA4B,cAAc,GAAG,EAC7C,uBAAuB,EACvB,IAAI,KAAK,CAAC,8BAA8B,WAAW,iBAAiB,CAAC,EACrE,GAAG,CACN,EACD,IAAI,CAAC,GAAG,CACX,CAAC;wBACF,OAAO,IAAI,EAAE,CAAC;qBACjB;oBAED,MAAM,GAAG,GAAG,IAAA,mBAAQ,EAAC,IAAI,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;oBAChE,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;oBAE7E,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SaveRawDataMiddleware.js","sourceRoot":"","sources":["../../../src/input-gateway/helpers/SaveRawDataMiddleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA6C;AAE7C,+DAAsE;AACtE,2DAAmD;AAEnD,6EAAwE;AACxE,2DAAuE;AACvE,gCAAyC;AACzC,4CAA6D;AAE7D,mDAA8C;AAC9C,uCAA8C;AAGvC,IAAM,qBAAqB,mCAA3B,MAAM,qBAAqB;IAG9B,YACmC,MAAsB,EACrB,YAA2B,EACjC,GAA6B,EAChB,OAAuC;QADnC,QAAG,GAAH,GAAG,CAAS;QACR,YAAO,GAAP,OAAO,CAAwB;QAM3E,kBAAa,GAAG,GAAG,EAAE;YACxB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;gBACvD,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC;gBAEhC,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;oBACnG,iCAAiC;oBACjC,MAAM,WAAW,GAAG,IAAA,2CAAc,EAAC,GAAG,CAAwC,CAAC;oBAC/E,MAAM,GAAG,GAAG,0CAAsB,CAAC,WAAW,CAAC,CAAC;oBAEhD,wBAAwB;oBACxB,IAAI,CAAC,GAAG,EAAE;wBACN,qBAAY,CAAC,MAAM,CACf,IAAI,qBAAY,CACZ,4BAA4B,cAAc,GAAG,EAC7C,uBAAuB,EACvB,IAAI,KAAK,CAAC,8BAA8B,WAAW,iBAAiB,CAAC,EACrE,GAAG,CACN,EACD,IAAI,CAAC,GAAG,CACX,CAAC;wBACF,OAAO,IAAI,EAAE,CAAC;qBACjB;oBAED,MAAM,GAAG,GAAG,IAAA,mBAAQ,EAAC,IAAI,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;oBAChE,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;oBAE7E,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACtF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,iCAAiC,cAAc,GAAG,CAAC,CAAC;oBAC5E,CAAC,CAAC,CAAC;oBAEH,8CAA8C;oBAC9C,IAAI,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;wBACpD,MAAM,cAAc,GAAG,GAAG,QAAQ,UAAU,CAAC;wBAC7C,IAAI,CAAC,OAAO;6BACP,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC;6BAC7F,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;4BACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,6BAA6B,cAAc,GAAG,CAAC,CAAC;wBACxE,CAAC,CAAC,CAAC;qBACV;iBACJ;gBAED,IAAI,EAAE,CAAC;YACX,CAAC,CAAC;QACN,CAAC,CAAC;QAEK,uBAAkB,GAAG,GAAG,EAAE;YAC7B,MAAM,YAAY,GAAG,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,EAAE,CAAC;YAEzB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClC,MAAM,WAAW,GAAG,IAAI,IAAA,6BAAY,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAErE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC/B,IAAI,OAAO,CAAC,WAAW,EAAE;oBACrB,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACnC;aACJ;YAED,OAAO;gBACH,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjF,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;aACvF,CAAC;QACN,CAAC,CAAC;QAnEE,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;QACvF,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC;IACjD,CAAC;CAkEJ,CAAA;gCA7EY,qBAAqB;IADjC,IAAA,qBAAU,GAAE;IAKJ,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,MAAM,CAAC,CAAA;IAC7B,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;IAC9B,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,MAAM,CAAC,CAAA;IACxB,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,cAAc,CAAC,CAAA;6DAAkB,gCAAsB;GAPzE,qBAAqB,CA6EjC"}
|
|
@@ -29,6 +29,7 @@ let StorageServiceProvider = exports.StorageServiceProvider = class StorageServi
|
|
|
29
29
|
clientSecret: config.getValue("env.AZURE_BLOB_CLIENT_SECRET", ""),
|
|
30
30
|
account: config.getValue("env.AZURE_BLOB_ACCOUNT", ""),
|
|
31
31
|
containerName: config.getValue("env.AZURE_BLOB_STORAGE_CONTAINER_NAME", ""),
|
|
32
|
+
uploadTimeoutInSeconds: Number.parseInt(config.getValue("env.AZURE_BLOB_UPLOAD_TIMEOUT_IN_SECONDS", "120")) || 120,
|
|
32
33
|
},
|
|
33
34
|
},
|
|
34
35
|
}, log).getService(storage_1.StorageProvider.Azure);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageServiceProvider.js","sourceRoot":"","sources":["../../../src/integration-engine/data-access/StorageServiceProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,+DAA8G;AAC9G,2DAAmD;AACnD,gCAAyC;AACzC,4CAA6C;AAC7C,uCAA8C;AAGvC,IAAM,sBAAsB,oCAA5B,MAAM,sBAAsB;IAG/B,YAA4C,MAAqB,EAAiC,GAAY;QAC1G,MAAM,OAAO,GAAG,IAAI,+BAAqB,CACrC;YACI,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC,KAAK,MAAM;YACnE,QAAQ,EAAE;gBACN,KAAK,EAAE;oBACH,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC;oBACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC;oBACzD,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,8BAA8B,EAAE,EAAE,CAAC;oBACjE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,CAAC;oBACtD,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,uCAAuC,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"StorageServiceProvider.js","sourceRoot":"","sources":["../../../src/integration-engine/data-access/StorageServiceProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,+DAA8G;AAC9G,2DAAmD;AACnD,gCAAyC;AACzC,4CAA6C;AAC7C,uCAA8C;AAGvC,IAAM,sBAAsB,oCAA5B,MAAM,sBAAsB;IAG/B,YAA4C,MAAqB,EAAiC,GAAY;QAC1G,MAAM,OAAO,GAAG,IAAI,+BAAqB,CACrC;YACI,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC,KAAK,MAAM;YACnE,QAAQ,EAAE;gBACN,KAAK,EAAE;oBACH,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC;oBACzD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,CAAC;oBACzD,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,8BAA8B,EAAE,EAAE,CAAC;oBACjE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,CAAC;oBACtD,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,uCAAuC,EAAE,EAAE,CAAC;oBAC3E,sBAAsB,EAClB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG;iBACjG;aACJ;SACJ,EACD,GAAG,CACN,CAAC,UAAU,CAAC,yBAAe,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,mBAAU,CAChB,0DAA0D,yBAAe,CAAC,KAAK,EAAE,EACjF,IAAI,CAAC,WAAW,CAAC,IAAI,CACxB,CAAC;SACL;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ,CAAA;iCAnCY,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAII,WAAA,IAAA,iBAAM,EAAC,qBAAS,CAAC,YAAY,CAAC,CAAA;IAAyB,WAAA,IAAA,iBAAM,EAAC,oBAAc,CAAC,MAAM,CAAC,CAAA;;GAHxF,sBAAsB,CAmClC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@golemio/core",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.3-dev.1582234527",
|
|
4
4
|
"description": "Golemio Core Module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -71,11 +71,11 @@
|
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"@abraham/reflection": "^0.10.0",
|
|
74
|
-
"@azure/data-tables": "^13.
|
|
75
|
-
"@azure/identity": "^4.0
|
|
76
|
-
"@azure/storage-blob": "^12.
|
|
77
|
-
"@golemio/errors": "2.0.
|
|
78
|
-
"@golemio/validator": "0.3.
|
|
74
|
+
"@azure/data-tables": "^13.3.0",
|
|
75
|
+
"@azure/identity": "^4.5.0",
|
|
76
|
+
"@azure/storage-blob": "^12.26.0",
|
|
77
|
+
"@golemio/errors": "2.0.5-dev.1288217017",
|
|
78
|
+
"@golemio/validator": "0.3.6-dev.1288217736",
|
|
79
79
|
"@google-cloud/storage": "^7.11.0",
|
|
80
80
|
"@opentelemetry/api": "^1.0.4",
|
|
81
81
|
"@opentelemetry/exporter-jaeger": "^1.14.0",
|
|
@@ -125,12 +125,13 @@
|
|
|
125
125
|
"sequelize": "^6.29.0",
|
|
126
126
|
"ssh2-sftp-client": "^7.1.0",
|
|
127
127
|
"tsyringe": "^4.8.0",
|
|
128
|
-
"undici": "^6.
|
|
128
|
+
"undici": "^6.21.0",
|
|
129
129
|
"xml2js": "^0.5.0",
|
|
130
130
|
"yauzl": "^2.10.0"
|
|
131
131
|
},
|
|
132
132
|
"overrides": {
|
|
133
133
|
"dottie": "2.0.4",
|
|
134
|
-
"braces": "3.0.3"
|
|
134
|
+
"braces": "3.0.3",
|
|
135
|
+
"path-to-regexp@<1.0.0": "0.1.11"
|
|
135
136
|
}
|
|
136
|
-
}
|
|
137
|
+
}
|