@activepieces/piece-sftp 0.4.8 → 0.4.10

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/package.json CHANGED
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "@activepieces/piece-sftp",
3
- "version": "0.4.8",
3
+ "version": "0.4.10",
4
4
  "dependencies": {
5
5
  "@sinclair/typebox": "0.34.11",
6
+ "@types/ssh2": "1.15.5",
6
7
  "ai": "^6.0.0",
7
- "axios": "1.13.1",
8
+ "axios": "1.13.5",
8
9
  "axios-retry": "4.4.1",
9
10
  "basic-ftp": "5.0.5",
10
11
  "dayjs": "1.11.9",
11
12
  "deepmerge-ts": "7.1.0",
12
13
  "form-data": "4.0.4",
13
- "i18next": "23.13.0",
14
14
  "mime-types": "2.1.35",
15
15
  "nanoid": "3.3.8",
16
16
  "semver": "7.6.0",
17
17
  "socket.io-client": "4.8.1",
18
18
  "ssh2-sftp-client": "9.1.0",
19
19
  "zod": "4.1.13",
20
- "@activepieces/pieces-common": "0.11.3",
21
- "@activepieces/pieces-framework": "0.25.1",
22
- "@activepieces/shared": "0.34.0",
20
+ "@activepieces/pieces-common": "0.11.5",
21
+ "@activepieces/pieces-framework": "0.25.3",
22
+ "@activepieces/shared": "0.37.0",
23
23
  "tslib": "2.6.2"
24
24
  },
25
25
  "resolutions": {
package/src/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import Client from 'ssh2-sftp-client';
2
+ import { ServerHostKeyAlgorithm } from 'ssh2';
2
3
  import { Client as FTPClient } from 'basic-ftp';
3
4
  export declare function getProtocolBackwardCompatibility(protocol: string | undefined): Promise<string>;
4
5
  export declare function getClient<T extends Client | FTPClient>(auth: {
@@ -10,7 +11,7 @@ export declare function getClient<T extends Client | FTPClient>(auth: {
10
11
  username: string;
11
12
  password: string | undefined;
12
13
  privateKey: string | undefined;
13
- algorithm: string[] | undefined;
14
+ algorithm: ServerHostKeyAlgorithm[] | string[] | undefined;
14
15
  }): Promise<T>;
15
16
  export declare function endClient(client: Client | FTPClient, protocol: string | undefined): Promise<void>;
16
17
  export declare const sftpAuth: import("@activepieces/pieces-framework").CustomAuthProperty<{
package/src/index.js CHANGED
@@ -32,27 +32,66 @@ function getClient(auth) {
32
32
  const protocolBackwardCompatibility = yield getProtocolBackwardCompatibility(protocol);
33
33
  if (protocolBackwardCompatibility === 'sftp') {
34
34
  const sftp = new ssh2_sftp_client_1.default();
35
- if (password) {
36
- yield sftp.connect({
35
+ if (privateKey) {
36
+ // Handle literal \n strings (from users who manually escaped newlines)
37
+ let processedKey = privateKey
38
+ .replace(/\\r\\n/g, '\n')
39
+ .replace(/\\n/g, '\n')
40
+ .replace(/\r\n/g, '\n')
41
+ .replace(/\r/g, '\n')
42
+ .trim();
43
+ // Handle case where browser input converts newlines to spaces
44
+ // Detect if key is on a single line (no newlines) but has PEM markers
45
+ if (!processedKey.includes('\n') && processedKey.match(/-----BEGIN [A-Z0-9 ]+ KEY-----.*-----END [A-Z0-9 ]+ KEY-----/)) {
46
+ // Split on spaces that appear after key markers or base64 content
47
+ // PEM format: header, optional encryption info, blank line, base64 (64 chars/line), footer
48
+ processedKey = processedKey
49
+ // Add newline after BEGIN header
50
+ .replace(/(-----BEGIN [A-Z0-9 ]+ KEY-----)\s+/, '$1\n')
51
+ // Add newline after Proc-Type header
52
+ .replace(/(Proc-Type:\s*\S+)\s+/, '$1\n')
53
+ // Add newline after DEK-Info header (followed by blank line)
54
+ .replace(/(DEK-Info:\s*\S+)\s+/, '$1\n\n')
55
+ // Add newline before END footer
56
+ .replace(/\s+(-----END [A-Z0-9 ]+ KEY-----)/, '\n$1');
57
+ // Now handle the base64 content - split into 64-char lines
58
+ const beginMatch = processedKey.match(/(-----BEGIN [A-Z0-9 ]+ KEY-----\n(?:Proc-Type:[^\n]+\n)?(?:DEK-Info:[^\n]+\n\n)?)/);
59
+ const endMatch = processedKey.match(/(\n-----END [A-Z0-9 ]+ KEY-----)/);
60
+ if (beginMatch && endMatch) {
61
+ const header = beginMatch[1];
62
+ const footer = endMatch[1];
63
+ const base64Content = processedKey
64
+ .replace(header, '')
65
+ .replace(footer, '')
66
+ .replace(/\s+/g, ''); // Remove all whitespace from base64
67
+ // Split base64 into 64-character lines
68
+ const lines = base64Content.match(/.{1,64}/g) || [];
69
+ processedKey = header + lines.join('\n') + footer;
70
+ }
71
+ }
72
+ const connectOptions = {
37
73
  host,
38
74
  port,
39
75
  username,
40
- password,
76
+ privateKey: processedKey,
41
77
  timeout: 10000,
42
- });
43
- }
44
- else if (privateKey) {
45
- if (!algorithm || algorithm.length === 0) {
46
- throw new Error('At least one algorithm must be selected for SFTP Private Key authentication.');
78
+ };
79
+ if (password) {
80
+ connectOptions.passphrase = password;
81
+ }
82
+ if (algorithm && algorithm.length > 0) {
83
+ connectOptions.algorithms = {
84
+ serverHostKey: algorithm
85
+ };
47
86
  }
87
+ yield sftp.connect(connectOptions);
88
+ }
89
+ else if (password) {
48
90
  yield sftp.connect({
49
91
  host,
50
92
  port,
51
93
  username,
52
- privateKey: privateKey.replace(/\\n/g, '\n').trim(),
53
- algorithms: {
54
- serverHostKey: algorithm
55
- },
94
+ password,
56
95
  timeout: 10000,
57
96
  });
58
97
  }
@@ -129,17 +168,17 @@ exports.sftpAuth = pieces_framework_1.PieceAuth.CustomAuth({
129
168
  }),
130
169
  password: pieces_framework_1.PieceAuth.SecretText({
131
170
  displayName: 'Password',
132
- description: 'The password to authenticate with. Either this or private key is required',
171
+ description: 'The password to authenticate with. Either this or private key is required. When using a private key, this field is used as the passphrase to decrypt the key.',
133
172
  required: false,
134
173
  }),
135
174
  privateKey: pieces_framework_1.PieceAuth.SecretText({
136
175
  displayName: 'Private Key',
137
- description: 'The private key to authenticate with. Either this or password is required',
176
+ description: 'The private key to authenticate with. Either this or password is required.',
138
177
  required: false,
139
178
  }),
140
179
  algorithm: pieces_framework_1.Property.StaticMultiSelectDropdown({
141
180
  displayName: 'Host Key Algorithm',
142
- description: 'The host key algorithm to use for SFTP Private Key authentication',
181
+ description: 'The host key algorithm to use for SFTP connection. Only needed if you want to override the default algorithms (e.g., to support ssh-dss).',
143
182
  required: false,
144
183
  options: {
145
184
  options: [
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/sftp/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/sftp/src/index.ts"],"names":[],"mappings":"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"}