@segment/action-destinations 3.437.1-staging-e7067d09e.0 → 3.437.1-staging-9ba83a8de.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/destinations/sftp/client.d.ts +13 -8
- package/dist/destinations/sftp/client.js +93 -80
- package/dist/destinations/sftp/client.js.map +1 -1
- package/dist/destinations/sftp/fields.js +9 -1
- package/dist/destinations/sftp/fields.js.map +1 -1
- package/dist/destinations/sftp/functions.d.ts +2 -1
- package/dist/destinations/sftp/functions.js +4 -4
- package/dist/destinations/sftp/functions.js.map +1 -1
- package/dist/destinations/sftp/index.js +2 -2
- package/dist/destinations/sftp/syncEvents/generated-types.d.ts +1 -0
- package/dist/destinations/sftp/syncEvents/index.js +4 -4
- package/dist/destinations/sftp/syncEvents/index.js.map +1 -1
- package/dist/destinations/sftp/syncModelToSFTP/generated-types.d.ts +1 -0
- package/dist/destinations/sftp/syncModelToSFTP/index.js +4 -4
- package/dist/destinations/sftp/syncModelToSFTP/index.js.map +1 -1
- package/dist/destinations/sftp/upload.d.ts +6 -0
- package/dist/destinations/sftp/upload.js +101 -0
- package/dist/destinations/sftp/upload.js.map +1 -0
- package/package.json +4 -4
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { Logger } from '@segment/actions-core';
|
|
1
2
|
import Client from 'ssh2-sftp-client';
|
|
2
|
-
import
|
|
3
|
-
declare
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
import ssh2 from 'ssh2';
|
|
4
|
+
export declare class SFTPWrapper {
|
|
5
|
+
private readonly sftp;
|
|
6
|
+
private client;
|
|
7
|
+
private readonly logger?;
|
|
8
|
+
constructor(name?: string, logger?: Logger);
|
|
9
|
+
connect(options: Client.ConnectOptions): Promise<ssh2.SFTPWrapper>;
|
|
10
|
+
put(buffer: Buffer, remoteFilePath: string, options?: Client.TransferOptions): Promise<string>;
|
|
11
|
+
fastPutFromBuffer(input: Buffer, remoteFilePath: string, options?: Client.FastPutTransferOptions): Promise<void>;
|
|
12
|
+
private _fastXferFromBuffer;
|
|
13
|
+
end(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -3,93 +3,106 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports.executeSFTPOperation = executeSFTPOperation;
|
|
8
|
-
exports.normalizeSSHKey = normalizeSSHKey;
|
|
9
|
-
exports.testSFTPConnection = testSFTPConnection;
|
|
10
|
-
exports.uploadSFTP = uploadSFTP;
|
|
11
|
-
const actions_core_1 = require("@segment/actions-core");
|
|
12
|
-
const path_1 = __importDefault(require("path"));
|
|
6
|
+
exports.SFTPWrapper = void 0;
|
|
13
7
|
const ssh2_sftp_client_1 = __importDefault(require("ssh2-sftp-client"));
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
async function executeSFTPOperation(sftp, settings, sftpFolderPath, action, signal) {
|
|
28
|
-
const connectionConfig = createConnectionConfig(settings);
|
|
29
|
-
await sftp.connect(connectionConfig);
|
|
30
|
-
const abortSFTP = async () => {
|
|
31
|
-
await sftp.end();
|
|
32
|
-
throw new actions_core_1.RequestTimeoutError();
|
|
33
|
-
};
|
|
34
|
-
if (signal) {
|
|
35
|
-
if (signal.aborted) {
|
|
36
|
-
await abortSFTP();
|
|
8
|
+
class SFTPWrapper {
|
|
9
|
+
constructor(name, logger) {
|
|
10
|
+
this.sftp = new ssh2_sftp_client_1.default(name);
|
|
11
|
+
this.logger = logger;
|
|
12
|
+
}
|
|
13
|
+
async connect(options) {
|
|
14
|
+
try {
|
|
15
|
+
this.client = await this.sftp.connect(options);
|
|
16
|
+
return this.client;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
this.logger?.error('Error connecting to SFTP server:', String(error));
|
|
20
|
+
throw error;
|
|
37
21
|
}
|
|
38
|
-
signal.addEventListener('abort', abortSFTP, { once: true });
|
|
39
22
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
23
|
+
async put(buffer, remoteFilePath, options = {}) {
|
|
24
|
+
if (!this.client) {
|
|
25
|
+
throw new Error('SFTP Client not connected. Call connect first.');
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
return await this.sftp.put(buffer, remoteFilePath, options);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
this.logger?.error('Error uploading file to SFTP server:', String(error));
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
43
34
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
35
|
+
async fastPutFromBuffer(input, remoteFilePath, options = {
|
|
36
|
+
concurrency: 64,
|
|
37
|
+
chunkSize: 32768
|
|
38
|
+
}) {
|
|
39
|
+
if (!this.client) {
|
|
40
|
+
throw new Error('SFTP Client not connected. Call connect first.');
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
return this._fastXferFromBuffer(input, remoteFilePath, options);
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
this.logger?.error('Error uploading buffer to SFTP server:', String(error));
|
|
47
|
+
throw error;
|
|
50
48
|
}
|
|
51
|
-
throw e;
|
|
52
49
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
50
|
+
async _fastXferFromBuffer(input, remoteFilePath, options) {
|
|
51
|
+
const fsize = input.length;
|
|
52
|
+
return new Promise((resolve, reject) => {
|
|
53
|
+
this.client.open(remoteFilePath, 'w', (err, handle) => {
|
|
54
|
+
if (err) {
|
|
55
|
+
return reject(new Error(`Error opening remote file: ${err.message}`));
|
|
56
|
+
}
|
|
57
|
+
const concurrency = options.concurrency || 64;
|
|
58
|
+
const chunkSize = options.chunkSize || 32768;
|
|
59
|
+
const readBuffer = input;
|
|
60
|
+
const writeBuffer = Buffer.alloc(chunkSize);
|
|
61
|
+
let position = 0;
|
|
62
|
+
let writeRequests = [];
|
|
63
|
+
const writeChunk = (chunkPos) => {
|
|
64
|
+
return new Promise((chunkResolve, chunkReject) => {
|
|
65
|
+
const bytesToWrite = Math.min(chunkSize, fsize - chunkPos);
|
|
66
|
+
if (bytesToWrite <= 0) {
|
|
67
|
+
return chunkResolve();
|
|
68
|
+
}
|
|
69
|
+
readBuffer.copy(writeBuffer, 0, chunkPos, chunkPos + bytesToWrite);
|
|
70
|
+
this.client.write(handle, writeBuffer, 0, bytesToWrite, chunkPos, (writeErr) => {
|
|
71
|
+
if (writeErr) {
|
|
72
|
+
return chunkReject(new Error(`Error writing to remote file: ${writeErr.message}`));
|
|
73
|
+
}
|
|
74
|
+
chunkResolve();
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
const processWrites = async () => {
|
|
79
|
+
while (position < fsize) {
|
|
80
|
+
writeRequests.push(writeChunk(position));
|
|
81
|
+
position += chunkSize;
|
|
82
|
+
if (writeRequests.length >= concurrency) {
|
|
83
|
+
await Promise.all(writeRequests);
|
|
84
|
+
writeRequests = [];
|
|
85
|
+
options?.step?.(Math.min(position, fsize), chunkSize, fsize);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
await Promise.all(writeRequests);
|
|
89
|
+
};
|
|
90
|
+
processWrites()
|
|
91
|
+
.then(() => resolve())
|
|
92
|
+
.catch((err) => reject(err))
|
|
93
|
+
.finally(() => {
|
|
94
|
+
this.client.close(handle, (closeErr) => {
|
|
95
|
+
if (closeErr) {
|
|
96
|
+
this.logger?.warn('Error closing remote file handle:', String(closeErr.message));
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
56
102
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
function createConnectionConfig(settings) {
|
|
60
|
-
const { auth_type, sftp_ssh_key, sftp_password } = settings;
|
|
61
|
-
const credentialKey = auth_type === 'ssh_key' ? 'privateKey' : 'password';
|
|
62
|
-
const credentialValue = auth_type === 'ssh_key' ? normalizeSSHKey(sftp_ssh_key) : sftp_password;
|
|
63
|
-
return {
|
|
64
|
-
host: settings.sftp_host,
|
|
65
|
-
port: settings.sftp_port || constants_1.SFTP_DEFAULT_PORT,
|
|
66
|
-
username: settings.sftp_username,
|
|
67
|
-
[credentialKey]: credentialValue
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
function normalizeSSHKey(key = '') {
|
|
71
|
-
if (!key)
|
|
72
|
-
return key;
|
|
73
|
-
const normalizedKey = key.trim().replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
74
|
-
const properFormat = /-----BEGIN [A-Z\s]+PRIVATE KEY-----\n[\s\S]*?\n-----END [A-Z\s]+PRIVATE KEY-----/;
|
|
75
|
-
const hasProperFormat = properFormat.test(normalizedKey);
|
|
76
|
-
if (hasProperFormat)
|
|
77
|
-
return normalizedKey;
|
|
78
|
-
const headerMatch = normalizedKey.match(/(-----BEGIN [A-Z\s]+PRIVATE KEY-----)/);
|
|
79
|
-
const footerMatch = normalizedKey.match(/(-----END [A-Z\s]+PRIVATE KEY-----)/);
|
|
80
|
-
if (headerMatch && footerMatch) {
|
|
81
|
-
const header = headerMatch[1];
|
|
82
|
-
const footer = footerMatch[1];
|
|
83
|
-
const keyContent = normalizedKey.replace(header, '').replace(footer, '').replace(/\s/g, '');
|
|
84
|
-
const formattedContent = keyContent.replace(/.{64}/g, '$&\n').replace(/\n$/, '');
|
|
85
|
-
return `${header}\n${formattedContent}\n${footer}`;
|
|
103
|
+
async end() {
|
|
104
|
+
return this.sftp.end();
|
|
86
105
|
}
|
|
87
|
-
return normalizedKey;
|
|
88
|
-
}
|
|
89
|
-
async function testSFTPConnection(settings) {
|
|
90
|
-
const sftp = new ssh2_sftp_client_1.default();
|
|
91
|
-
return executeSFTPOperation(sftp, settings, '/', async (sftp) => {
|
|
92
|
-
return sftp.list('/');
|
|
93
|
-
}, AbortSignal.timeout(10000));
|
|
94
106
|
}
|
|
107
|
+
exports.SFTPWrapper = SFTPWrapper;
|
|
95
108
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/destinations/sftp/client.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/destinations/sftp/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -242,6 +242,13 @@ const audienceFields = {
|
|
|
242
242
|
traits_or_props,
|
|
243
243
|
computation_key
|
|
244
244
|
};
|
|
245
|
+
const enableConcurrentWrites = {
|
|
246
|
+
label: 'Use Concurrent Writes',
|
|
247
|
+
description: 'Enable concurrent writes when uploading files to SFTP. Improves performance for large files.',
|
|
248
|
+
type: 'boolean',
|
|
249
|
+
required: false,
|
|
250
|
+
default: true
|
|
251
|
+
};
|
|
245
252
|
exports.baseFields = {
|
|
246
253
|
columns: columnsNoDefaultMappings,
|
|
247
254
|
filename_prefix,
|
|
@@ -250,7 +257,8 @@ exports.baseFields = {
|
|
|
250
257
|
sftp_folder_path,
|
|
251
258
|
enable_batching,
|
|
252
259
|
batch_size,
|
|
253
|
-
batch_size_column_name
|
|
260
|
+
batch_size_column_name,
|
|
261
|
+
useConcurrentWrites: enableConcurrentWrites
|
|
254
262
|
};
|
|
255
263
|
exports.commonFields = {
|
|
256
264
|
...exports.baseFields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/destinations/sftp/fields.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/destinations/sftp/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@ import { MultiStatusResponse } from '@segment/actions-core';
|
|
|
2
2
|
import { Settings } from './generated-types';
|
|
3
3
|
import { Payload } from './syncEvents/generated-types';
|
|
4
4
|
import { ColumnHeader, RawMapping } from './types';
|
|
5
|
-
|
|
5
|
+
import { Logger } from '@segment/actions-core';
|
|
6
|
+
declare function send(payloads: Payload[], settings: Settings, rawMapping: RawMapping, logger?: Logger, signal?: AbortSignal): Promise<MultiStatusResponse>;
|
|
6
7
|
declare function clean(delimiter: string, str?: string): string;
|
|
7
8
|
declare function createHeaders(rawMapping: RawMapping, delimiter: string, audienceActionColumnName?: string, batchSizeColumnName?: string): ColumnHeader[];
|
|
8
9
|
declare function createFilename(filename_prefix: string, file_extension: string): string;
|
|
@@ -9,16 +9,16 @@ exports.getAudienceAction = getAudienceAction;
|
|
|
9
9
|
exports.processField = processField;
|
|
10
10
|
exports.send = send;
|
|
11
11
|
const actions_core_1 = require("@segment/actions-core");
|
|
12
|
-
const
|
|
13
|
-
async function send(payloads, settings, rawMapping, signal) {
|
|
14
|
-
const { delimiter, audience_action_column_name, batch_size_column_name, filename_prefix, file_extension, sftp_folder_path } = payloads[0];
|
|
12
|
+
const upload_1 = require("./upload");
|
|
13
|
+
async function send(payloads, settings, rawMapping, logger, signal) {
|
|
14
|
+
const { delimiter, audience_action_column_name, batch_size_column_name, filename_prefix, file_extension, sftp_folder_path, useConcurrentWrites } = payloads[0];
|
|
15
15
|
const headers = createHeaders(rawMapping, delimiter, audience_action_column_name, batch_size_column_name);
|
|
16
16
|
const rowsObservabilityArray = [];
|
|
17
17
|
const fileContent = generateFile(payloads, headers, delimiter, rowsObservabilityArray, audience_action_column_name, batch_size_column_name);
|
|
18
18
|
const filename = createFilename(filename_prefix, file_extension);
|
|
19
19
|
const msResponse = new actions_core_1.MultiStatusResponse();
|
|
20
20
|
try {
|
|
21
|
-
await (0,
|
|
21
|
+
await (0, upload_1.uploadSFTP)(settings, sftp_folder_path, filename, fileContent, useConcurrentWrites, logger, signal);
|
|
22
22
|
payloads.forEach((payload, index) => {
|
|
23
23
|
const row = rowsObservabilityArray[index] ?? '';
|
|
24
24
|
msResponse.setSuccessResponseAtIndex(index, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/sftp/functions.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/destinations/sftp/functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
6
|
+
const upload_1 = require("./upload");
|
|
7
7
|
const constants_1 = require("./constants");
|
|
8
8
|
const syncEvents_1 = __importDefault(require("./syncEvents"));
|
|
9
9
|
const syncModelToSFTP_1 = __importDefault(require("./syncModelToSFTP"));
|
|
@@ -92,7 +92,7 @@ const destination = {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
|
-
testAuthentication: async (_, { settings }) => await (0,
|
|
95
|
+
testAuthentication: async (_, { settings }) => await (0, upload_1.testSFTPConnection)(settings)
|
|
96
96
|
},
|
|
97
97
|
actions: {
|
|
98
98
|
syncEvents: syncEvents_1.default,
|
|
@@ -8,14 +8,14 @@ const action = {
|
|
|
8
8
|
defaultSubscription: 'type = "identify" or type = "track" or type = "page" or type = "screen" or type = "group"',
|
|
9
9
|
fields: fields_1.commonFields,
|
|
10
10
|
perform: async (_, data) => {
|
|
11
|
-
const { payload, settings, signal } = data;
|
|
11
|
+
const { payload, settings, signal, logger } = data;
|
|
12
12
|
const rawMapping = data.rawMapping;
|
|
13
|
-
return (0, functions_1.send)([payload], settings, rawMapping, signal);
|
|
13
|
+
return (0, functions_1.send)([payload], settings, rawMapping, logger, signal);
|
|
14
14
|
},
|
|
15
15
|
performBatch: async (_, data) => {
|
|
16
|
-
const { payload, settings, signal } = data;
|
|
16
|
+
const { payload, settings, signal, logger } = data;
|
|
17
17
|
const rawMapping = data.rawMapping;
|
|
18
|
-
return (0, functions_1.send)(payload, settings, rawMapping, signal);
|
|
18
|
+
return (0, functions_1.send)(payload, settings, rawMapping, logger, signal);
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
exports.default = action;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/sftp/syncEvents/index.ts"],"names":[],"mappings":";;AAGA,sCAAwC;AACxC,4CAAmC;AAGnC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,qIAAqI;IACvI,mBAAmB,EAAE,2FAA2F;IAChH,MAAM,EAAE,qBAAY;IACpB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/sftp/syncEvents/index.ts"],"names":[],"mappings":";;AAGA,sCAAwC;AACxC,4CAAmC;AAGnC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,aAAa;IACpB,WAAW,EACT,qIAAqI;IACvI,mBAAmB,EAAE,2FAA2F;IAChH,MAAM,EAAE,qBAAY;IACpB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAClD,MAAM,UAAU,GAAgB,IAAwB,CAAC,UAAU,CAAA;QACnE,OAAO,IAAA,gBAAI,EAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9D,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAClD,MAAM,UAAU,GAAgB,IAAwB,CAAC,UAAU,CAAA;QACnE,OAAO,IAAA,gBAAI,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5D,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -8,14 +8,14 @@ const action = {
|
|
|
8
8
|
defaultSubscription: 'type = "identify" or type = "track" or type = "page" or type = "screen" or type = "group"',
|
|
9
9
|
fields: fields_1.baseFields,
|
|
10
10
|
perform: async (_, data) => {
|
|
11
|
-
const { payload, settings, signal } = data;
|
|
11
|
+
const { payload, settings, signal, logger } = data;
|
|
12
12
|
const rawMapping = data.rawMapping;
|
|
13
|
-
return (0, functions_1.send)([payload], settings, rawMapping, signal);
|
|
13
|
+
return (0, functions_1.send)([payload], settings, rawMapping, logger, signal);
|
|
14
14
|
},
|
|
15
15
|
performBatch: async (_, data) => {
|
|
16
|
-
const { payload, settings, signal } = data;
|
|
16
|
+
const { payload, settings, signal, logger } = data;
|
|
17
17
|
const rawMapping = data.rawMapping;
|
|
18
|
-
return (0, functions_1.send)(payload, settings, rawMapping, signal);
|
|
18
|
+
return (0, functions_1.send)(payload, settings, rawMapping, logger, signal);
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
exports.default = action;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/sftp/syncModelToSFTP/index.ts"],"names":[],"mappings":";;AACA,sCAAsC;AACtC,4CAAmC;AAKnC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,2GAA2G;IAC7G,mBAAmB,EAAE,2FAA2F;IAChH,MAAM,EAAE,mBAAU;IAClB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/destinations/sftp/syncModelToSFTP/index.ts"],"names":[],"mappings":";;AACA,sCAAsC;AACtC,4CAAmC;AAKnC,MAAM,MAAM,GAAwC;IAClD,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,2GAA2G;IAC7G,mBAAmB,EAAE,2FAA2F;IAChH,MAAM,EAAE,mBAAU;IAClB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAClD,MAAM,UAAU,GAAgB,IAAwB,CAAC,UAAU,CAAA;QACnE,OAAO,IAAA,gBAAI,EAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9D,CAAC;IACD,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAClD,MAAM,UAAU,GAAgB,IAAwB,CAAC,UAAU,CAAA;QACnE,OAAO,IAAA,gBAAI,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5D,CAAC;CACF,CAAA;AAED,kBAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Settings } from './generated-types';
|
|
2
|
+
import { Logger } from '@segment/actions-core';
|
|
3
|
+
declare function uploadSFTP(settings: Settings, sftpFolderPath: string, filename: string, fileContent: Buffer, useConcurrentWrites?: boolean, logger?: Logger, signal?: AbortSignal): Promise<string | void>;
|
|
4
|
+
declare function normalizeSSHKey(key?: string): string;
|
|
5
|
+
declare function testSFTPConnection(settings: Settings): Promise<unknown>;
|
|
6
|
+
export { normalizeSSHKey, testSFTPConnection, uploadSFTP };
|
|
@@ -0,0 +1,101 @@
|
|
|
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.normalizeSSHKey = normalizeSSHKey;
|
|
7
|
+
exports.testSFTPConnection = testSFTPConnection;
|
|
8
|
+
exports.uploadSFTP = uploadSFTP;
|
|
9
|
+
const actions_core_1 = require("@segment/actions-core");
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const ssh2_sftp_client_1 = __importDefault(require("ssh2-sftp-client"));
|
|
12
|
+
const constants_1 = require("./constants");
|
|
13
|
+
const client_1 = require("./client");
|
|
14
|
+
const _1 = require("@segment/actions-core/*");
|
|
15
|
+
var SFTPErrorCode;
|
|
16
|
+
(function (SFTPErrorCode) {
|
|
17
|
+
SFTPErrorCode[SFTPErrorCode["NO_SUCH_FILE"] = 2] = "NO_SUCH_FILE";
|
|
18
|
+
})(SFTPErrorCode || (SFTPErrorCode = {}));
|
|
19
|
+
async function uploadSFTP(settings, sftpFolderPath, filename, fileContent, useConcurrentWrites, logger, signal) {
|
|
20
|
+
const sftp = new client_1.SFTPWrapper('uploadSFTP', logger);
|
|
21
|
+
signal?.throwIfAborted();
|
|
22
|
+
const abortListener = () => {
|
|
23
|
+
sftp.end().catch(() => {
|
|
24
|
+
logger?.warn('Failed to close SFTP connection');
|
|
25
|
+
});
|
|
26
|
+
throw new actions_core_1.RequestTimeoutError();
|
|
27
|
+
};
|
|
28
|
+
signal?.addEventListener('abort', abortListener, { once: true });
|
|
29
|
+
try {
|
|
30
|
+
await sftp.connect(createConnectionConfig(settings));
|
|
31
|
+
const remoteFilePath = path_1.default.posix.join(sftpFolderPath, filename);
|
|
32
|
+
if (useConcurrentWrites) {
|
|
33
|
+
return await sftp.fastPutFromBuffer(fileContent, remoteFilePath);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return await sftp.put(fileContent, remoteFilePath);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
formatAndThrowError(e, sftpFolderPath);
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
await sftp.end();
|
|
44
|
+
signal?.removeEventListener('abort', abortListener);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function createConnectionConfig(settings) {
|
|
48
|
+
const { auth_type, sftp_ssh_key, sftp_password } = settings;
|
|
49
|
+
const credentialKey = auth_type === 'ssh_key' ? 'privateKey' : 'password';
|
|
50
|
+
const credentialValue = auth_type === 'ssh_key' ? normalizeSSHKey(sftp_ssh_key) : sftp_password;
|
|
51
|
+
return {
|
|
52
|
+
host: settings.sftp_host,
|
|
53
|
+
port: settings.sftp_port || constants_1.SFTP_DEFAULT_PORT,
|
|
54
|
+
username: settings.sftp_username,
|
|
55
|
+
[credentialKey]: credentialValue
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function normalizeSSHKey(key = '') {
|
|
59
|
+
if (!key)
|
|
60
|
+
return key;
|
|
61
|
+
const normalizedKey = key.trim().replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
62
|
+
const properFormat = /-----BEGIN [A-Z\s]+PRIVATE KEY-----\n[\s\S]*?\n-----END [A-Z\s]+PRIVATE KEY-----/;
|
|
63
|
+
const hasProperFormat = properFormat.test(normalizedKey);
|
|
64
|
+
if (hasProperFormat)
|
|
65
|
+
return normalizedKey;
|
|
66
|
+
const headerMatch = normalizedKey.match(/(-----BEGIN [A-Z\s]+PRIVATE KEY-----)/);
|
|
67
|
+
const footerMatch = normalizedKey.match(/(-----END [A-Z\s]+PRIVATE KEY-----)/);
|
|
68
|
+
if (headerMatch && footerMatch) {
|
|
69
|
+
const header = headerMatch[1];
|
|
70
|
+
const footer = footerMatch[1];
|
|
71
|
+
const keyContent = normalizedKey.replace(header, '').replace(footer, '').replace(/\s/g, '');
|
|
72
|
+
const formattedContent = keyContent.replace(/.{64}/g, '$&\n').replace(/\n$/, '');
|
|
73
|
+
return `${header}\n${formattedContent}\n${footer}`;
|
|
74
|
+
}
|
|
75
|
+
return normalizedKey;
|
|
76
|
+
}
|
|
77
|
+
async function testSFTPConnection(settings) {
|
|
78
|
+
const sftp = new ssh2_sftp_client_1.default();
|
|
79
|
+
let res;
|
|
80
|
+
try {
|
|
81
|
+
await sftp.connect(createConnectionConfig(settings));
|
|
82
|
+
res = await sftp.list('/');
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
formatAndThrowError(e);
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
await sftp.end();
|
|
89
|
+
}
|
|
90
|
+
return res;
|
|
91
|
+
}
|
|
92
|
+
function formatAndThrowError(e, path = '/') {
|
|
93
|
+
const sftpError = e;
|
|
94
|
+
if (sftpError) {
|
|
95
|
+
if (sftpError.code === SFTPErrorCode.NO_SUCH_FILE) {
|
|
96
|
+
throw new actions_core_1.PayloadValidationError(`Could not find path: ${path}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
throw new _1.IntegrationError(`SFTP Error: ${e.message}`, 'SFTP_ERROR', 500);
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/destinations/sftp/upload.ts"],"names":[],"mappings":";;;;;AA0LS,0CAAe;AAAE,gDAAkB;AAAE,gCAAU;AA1LxD,wDAAmF;AACnF,gDAAuB;AACvB,wEAAqC;AACrC,2CAA+C;AAK/C,qCAAsC;AACtC,8CAA0D;AAE1D,IAAK,aAEJ;AAFD,WAAK,aAAa;IAChB,iEAAgB,CAAA;AAClB,CAAC,EAFI,aAAa,KAAb,aAAa,QAEjB;AAeD,KAAK,UAAU,UAAU,CACvB,QAAkB,EAClB,cAAsB,EACtB,QAAgB,EAChB,WAAmB,EACnB,mBAA6B,EAC7B,MAAe,EACf,MAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,oBAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAClD,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;YACpB,MAAM,EAAE,IAAI,CAAC,iCAAiC,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,kCAAmB,EAAE,CAAA;IACjC,CAAC,CAAA;IACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAChE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAA;QACpD,MAAM,cAAc,GAAG,cAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QAChE,IAAI,mBAAmB,EAAE,CAAC;YACxB,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;QAClE,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,mBAAmB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IACxC,CAAC;YAAS,CAAC;QAET,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;QAChB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IACrD,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkB;IAChD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAA;IAC3D,MAAM,aAAa,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAA;IACzE,MAAM,eAAe,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa,CAAA;IAE/F,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,SAAS;QACxB,IAAI,EAAE,QAAQ,CAAC,SAAS,IAAI,6BAAiB;QAC7C,QAAQ,EAAE,QAAQ,CAAC,aAAa;QAChC,CAAC,aAAa,CAAC,EAAE,eAAe;KACjC,CAAA;AACH,CAAC;AAMD,SAAS,eAAe,CAAC,GAAG,GAAG,EAAE;IAC/B,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAA;IAOpB,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAa5E,MAAM,YAAY,GAAG,kFAAkF,CAAA;IACvG,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAExD,IAAI,eAAe;QAAE,OAAO,aAAa,CAAA;IASzC,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAOhF,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAG9E,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAQ7B,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAgB3F,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAGhF,OAAO,GAAG,MAAM,KAAK,gBAAgB,KAAK,MAAM,EAAE,CAAA;IACpD,CAAC;IAGD,OAAO,aAAa,CAAA;AACtB,CAAC;AAKD,KAAK,UAAU,kBAAkB,CAAC,QAAkB;IAClD,MAAM,IAAI,GAAG,IAAI,0BAAM,EAAE,CAAA;IACzB,IAAI,GAAG,CAAA;IACP,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAA;QACpD,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,mBAAmB,CAAC,CAAC,CAAC,CAAA;IACxB,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAM,EAAE,IAAI,GAAG,GAAG;IAC7C,MAAM,SAAS,GAAG,CAAc,CAAA;IAChC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;YAClD,MAAM,IAAI,qCAAsB,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IACD,MAAM,IAAI,mBAAgB,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;AAC3E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@segment/action-destinations",
|
|
3
3
|
"description": "Destination Actions engine and definitions.",
|
|
4
|
-
"version": "3.437.1-staging-
|
|
4
|
+
"version": "3.437.1-staging-9ba83a8de.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/segmentio/action-destinations",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"@aws-sdk/client-sts": "3.614.0",
|
|
47
47
|
"@bufbuild/protobuf": "^2.2.3",
|
|
48
48
|
"@segment/a1-notation": "^2.1.4",
|
|
49
|
-
"@segment/actions-core": "3.161.1-staging-
|
|
50
|
-
"@segment/actions-shared": "1.141.1-staging-
|
|
49
|
+
"@segment/actions-core": "3.161.1-staging-9ba83a8de.0",
|
|
50
|
+
"@segment/actions-shared": "1.141.1-staging-9ba83a8de.0",
|
|
51
51
|
"@types/node": "^22.13.1",
|
|
52
52
|
"ajv-formats": "^2.1.1",
|
|
53
53
|
"aws4": "^1.12.0",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"__tests__/__helpers__/"
|
|
92
92
|
]
|
|
93
93
|
},
|
|
94
|
-
"gitHead": "
|
|
94
|
+
"gitHead": "81a12c12356e12bb8c4f454283bd88367a9c25b6"
|
|
95
95
|
}
|