@awcp/transport-sshfs 0.0.0-dev-202601301521 → 0.0.1

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.
@@ -1,20 +1,53 @@
1
- import type { SshCredential } from '@awcp/core';
2
- import type { CredentialManagerConfig, GeneratedCredential } from '../types.js';
1
+ /**
2
+ * SSH Credential Manager configuration
3
+ */
4
+ export interface CredentialManagerConfig {
5
+ /** Directory to store temporary keys (default: ~/.awcp/keys) */
6
+ keyDir?: string;
7
+ /** SSH server port (default: 22) */
8
+ sshPort?: number;
9
+ /** SSH server host (default: localhost) */
10
+ sshHost?: string;
11
+ /** SSH user for connections */
12
+ sshUser?: string;
13
+ /** Path to authorized_keys file (default: ~/.ssh/authorized_keys) */
14
+ authorizedKeysPath?: string;
15
+ }
16
+ /**
17
+ * Generated credential
18
+ */
19
+ export interface GeneratedCredential {
20
+ /** The private key content */
21
+ privateKey: string;
22
+ /** The public key content */
23
+ publicKey: string;
24
+ /** Path to the private key file */
25
+ privateKeyPath: string;
26
+ /** Path to the public key file */
27
+ publicKeyPath: string;
28
+ /** Delegation ID for tracking */
29
+ delegationId: string;
30
+ }
3
31
  /**
4
32
  * SSH Credential Manager
5
33
  *
6
- * Manages temporary SSH certificates for AWCP delegations.
7
- * Uses SSH certificates with built-in expiry for automatic TTL enforcement.
34
+ * Manages temporary SSH keys for AWCP delegations.
35
+ *
36
+ * TODO [Security]: Consider SSH certificates with built-in expiry for production.
8
37
  */
9
38
  export declare class CredentialManager {
10
39
  private config;
11
40
  private activeCredentials;
12
- constructor(config: CredentialManagerConfig);
41
+ constructor(config?: CredentialManagerConfig);
13
42
  /**
14
- * Generate a temporary SSH key pair and sign certificate with TTL
43
+ * Get the path to authorized_keys file
15
44
  */
16
- generateCredential(delegationId: string, ttlSeconds: number): Promise<{
17
- credential: SshCredential;
45
+ private getAuthorizedKeysPath;
46
+ /**
47
+ * Generate a temporary SSH key pair for a delegation
48
+ */
49
+ generateCredential(delegationId: string, _ttlSeconds: number): Promise<{
50
+ credential: string;
18
51
  endpoint: {
19
52
  host: string;
20
53
  port: number;
@@ -22,11 +55,7 @@ export declare class CredentialManager {
22
55
  };
23
56
  }>;
24
57
  /**
25
- * Ensure CA key exists, auto-generate if not present
26
- */
27
- private ensureCaKey;
28
- /**
29
- * Revoke a credential (delete key files, certificate expires automatically)
58
+ * Revoke a credential
30
59
  */
31
60
  revokeCredential(delegationId: string): Promise<void>;
32
61
  /**
@@ -37,14 +66,22 @@ export declare class CredentialManager {
37
66
  * Revoke all credentials
38
67
  */
39
68
  revokeAll(): Promise<void>;
69
+ /**
70
+ * Clean up stale AWCP keys from authorized_keys (call on startup)
71
+ */
72
+ cleanupStaleKeys(): Promise<number>;
40
73
  /**
41
74
  * Clean up stale key files from key directory (call on startup)
42
75
  */
43
76
  cleanupStaleKeyFiles(): Promise<number>;
44
77
  /**
45
- * Sign public key with CA to create certificate with TTL
78
+ * Add a public key to authorized_keys
79
+ */
80
+ private addToAuthorizedKeys;
81
+ /**
82
+ * Remove a public key from authorized_keys by delegation ID
46
83
  */
47
- private signCertificate;
84
+ private removeFromAuthorizedKeys;
48
85
  /**
49
86
  * Execute ssh-keygen to generate a key pair
50
87
  */
@@ -1 +1 @@
1
- {"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../../src/delegator/credential-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIhF;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,iBAAiB,CAA0C;gBAEvD,MAAM,EAAE,uBAAuB;IAI3C;;OAEG;IACG,kBAAkB,CACtB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QACT,UAAU,EAAE,aAAa,CAAC;QAC1B,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACxD,CAAC;IA4CF;;OAEG;YACW,WAAW;IA0BzB;;OAEG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3D;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIpE;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IA8B7C;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;OAEG;IACH,OAAO,CAAC,aAAa;CAyBtB"}
1
+ {"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../../src/delegator/credential-manager.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;CACtB;AASD;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,iBAAiB,CAA0C;gBAEvD,MAAM,CAAC,EAAE,uBAAuB;IAI5C;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACG,kBAAkB,CACtB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACxD,CAAC;IAsCF;;OAEG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3D;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAIpE;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IA0BzC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAkC7C;;OAEG;YACW,mBAAmB;IAcjC;;OAEG;YACW,wBAAwB;IAkBtC;;OAEG;IACH,OAAO,CAAC,aAAa;CAyBtB"}
@@ -1,51 +1,57 @@
1
- import { unlink, mkdir, readFile, readdir, access, constants } from 'node:fs/promises';
1
+ import { unlink, mkdir, readFile, writeFile, appendFile, readdir } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { spawn } from 'node:child_process';
4
4
  import { homedir } from 'node:os';
5
5
  const DEFAULT_KEY_DIR = join(homedir(), '.awcp', 'keys');
6
+ /**
7
+ * Marker prefix for AWCP-managed keys in authorized_keys
8
+ */
9
+ const AWCP_KEY_COMMENT_PREFIX = 'awcp-temp-key-';
6
10
  /**
7
11
  * SSH Credential Manager
8
12
  *
9
- * Manages temporary SSH certificates for AWCP delegations.
10
- * Uses SSH certificates with built-in expiry for automatic TTL enforcement.
13
+ * Manages temporary SSH keys for AWCP delegations.
14
+ *
15
+ * TODO [Security]: Consider SSH certificates with built-in expiry for production.
11
16
  */
12
17
  export class CredentialManager {
13
18
  config;
14
19
  activeCredentials = new Map();
15
20
  constructor(config) {
16
- this.config = config;
21
+ this.config = config ?? {};
22
+ }
23
+ /**
24
+ * Get the path to authorized_keys file
25
+ */
26
+ getAuthorizedKeysPath() {
27
+ return this.config.authorizedKeysPath ?? join(homedir(), '.ssh', 'authorized_keys');
17
28
  }
18
29
  /**
19
- * Generate a temporary SSH key pair and sign certificate with TTL
30
+ * Generate a temporary SSH key pair for a delegation
20
31
  */
21
- async generateCredential(delegationId, ttlSeconds) {
22
- // Ensure CA key exists (auto-generate if needed)
23
- await this.ensureCaKey();
32
+ async generateCredential(delegationId, _ttlSeconds) {
24
33
  const keyDir = this.config.keyDir ?? DEFAULT_KEY_DIR;
25
34
  await mkdir(keyDir, { recursive: true, mode: 0o700 });
26
- const privateKeyPath = join(keyDir, delegationId);
35
+ const privateKeyPath = join(keyDir, `${delegationId}`);
27
36
  const publicKeyPath = join(keyDir, `${delegationId}.pub`);
28
- const certPath = join(keyDir, `${delegationId}-cert.pub`);
29
- // Generate key pair
30
- await this.execSshKeygen(privateKeyPath, `awcp-${delegationId}`);
31
- // Sign certificate with CA (includes TTL)
32
- await this.signCertificate(publicKeyPath, ttlSeconds, delegationId);
33
- // Read the private key and certificate
37
+ // Generate key pair using ssh-keygen with AWCP marker comment
38
+ const keyComment = `${AWCP_KEY_COMMENT_PREFIX}${delegationId}`;
39
+ await this.execSshKeygen(privateKeyPath, keyComment);
40
+ // Read the generated keys
34
41
  const privateKey = await readFile(privateKeyPath, 'utf-8');
35
- const certificate = await readFile(certPath, 'utf-8');
36
- const credentialInfo = {
42
+ const publicKey = await readFile(publicKeyPath, 'utf-8');
43
+ const credential = {
37
44
  privateKey,
45
+ publicKey,
38
46
  privateKeyPath,
39
47
  publicKeyPath,
40
- certPath,
41
48
  delegationId,
42
49
  };
43
- this.activeCredentials.set(delegationId, credentialInfo);
50
+ this.activeCredentials.set(delegationId, credential);
51
+ // Add public key to authorized_keys
52
+ await this.addToAuthorizedKeys(publicKey);
44
53
  return {
45
- credential: {
46
- privateKey,
47
- certificate,
48
- },
54
+ credential: privateKey,
49
55
  endpoint: {
50
56
  host: this.config.sshHost ?? 'localhost',
51
57
  port: this.config.sshPort ?? 22,
@@ -54,42 +60,28 @@ export class CredentialManager {
54
60
  };
55
61
  }
56
62
  /**
57
- * Ensure CA key exists, auto-generate if not present
58
- */
59
- async ensureCaKey() {
60
- try {
61
- await access(this.config.caKeyPath, constants.R_OK);
62
- return; // CA key exists
63
- }
64
- catch {
65
- // CA key doesn't exist, generate it
66
- }
67
- console.log(`[CredentialManager] CA key not found at ${this.config.caKeyPath}, generating...`);
68
- const caDir = join(this.config.caKeyPath, '..');
69
- await mkdir(caDir, { recursive: true, mode: 0o700 });
70
- await this.execSshKeygen(this.config.caKeyPath, 'awcp-ca');
71
- console.log(`[CredentialManager] CA key pair generated at ${this.config.caKeyPath}`);
72
- console.log('');
73
- console.log(' ⚠️ To enable SSH certificate authentication, add to /etc/ssh/sshd_config:');
74
- console.log(` TrustedUserCAKeys ${this.config.caKeyPath}.pub`);
75
- console.log('');
76
- console.log(' Then restart sshd:');
77
- console.log(' macOS: sudo launchctl stop com.openssh.sshd');
78
- console.log(' Linux: sudo systemctl restart sshd');
79
- console.log('');
80
- }
81
- /**
82
- * Revoke a credential (delete key files, certificate expires automatically)
63
+ * Revoke a credential
83
64
  */
84
65
  async revokeCredential(delegationId) {
85
66
  const credential = this.activeCredentials.get(delegationId);
86
67
  if (!credential) {
87
68
  return;
88
69
  }
89
- // Delete key and certificate files
90
- await unlink(credential.privateKeyPath).catch(() => { });
91
- await unlink(credential.publicKeyPath).catch(() => { });
92
- await unlink(credential.certPath).catch(() => { });
70
+ // Remove from authorized_keys first
71
+ await this.removeFromAuthorizedKeys(delegationId);
72
+ // Remove key files
73
+ try {
74
+ await unlink(credential.privateKeyPath);
75
+ }
76
+ catch {
77
+ // Ignore errors if file doesn't exist
78
+ }
79
+ try {
80
+ await unlink(credential.publicKeyPath);
81
+ }
82
+ catch {
83
+ // Ignore errors if file doesn't exist
84
+ }
93
85
  this.activeCredentials.delete(delegationId);
94
86
  }
95
87
  /**
@@ -106,6 +98,30 @@ export class CredentialManager {
106
98
  await this.revokeCredential(delegationId);
107
99
  }
108
100
  }
101
+ /**
102
+ * Clean up stale AWCP keys from authorized_keys (call on startup)
103
+ */
104
+ async cleanupStaleKeys() {
105
+ const authorizedKeysPath = this.getAuthorizedKeysPath();
106
+ try {
107
+ const content = await readFile(authorizedKeysPath, 'utf-8');
108
+ const lines = content.split('\n');
109
+ const cleanedLines = lines.filter(line => {
110
+ // Keep lines that don't have AWCP marker
111
+ return !line.includes(AWCP_KEY_COMMENT_PREFIX);
112
+ });
113
+ const removedCount = lines.length - cleanedLines.length;
114
+ if (removedCount > 0) {
115
+ await writeFile(authorizedKeysPath, cleanedLines.join('\n'));
116
+ console.log(`[CredentialManager] Cleaned up ${removedCount} stale AWCP keys from authorized_keys`);
117
+ }
118
+ return removedCount;
119
+ }
120
+ catch {
121
+ // File doesn't exist or can't be read, nothing to clean
122
+ return 0;
123
+ }
124
+ }
109
125
  /**
110
126
  * Clean up stale key files from key directory (call on startup)
111
127
  */
@@ -115,14 +131,19 @@ export class CredentialManager {
115
131
  const files = await readdir(keyDir);
116
132
  let removedCount = 0;
117
133
  for (const file of files) {
118
- // Extract delegation ID from filename
119
- const delegationId = file.replace(/(-cert)?\.pub$/, '');
134
+ // Skip files that are currently active
135
+ const delegationId = file.replace(/\.pub$/, '');
120
136
  if (this.activeCredentials.has(delegationId)) {
121
137
  continue;
122
138
  }
123
139
  // Remove stale key files
124
- await unlink(join(keyDir, file)).catch(() => { });
125
- removedCount++;
140
+ try {
141
+ await unlink(join(keyDir, file));
142
+ removedCount++;
143
+ }
144
+ catch {
145
+ // Ignore errors
146
+ }
126
147
  }
127
148
  if (removedCount > 0) {
128
149
  console.log(`[CredentialManager] Cleaned up ${removedCount} stale key files`);
@@ -135,32 +156,35 @@ export class CredentialManager {
135
156
  }
136
157
  }
137
158
  /**
138
- * Sign public key with CA to create certificate with TTL
159
+ * Add a public key to authorized_keys
139
160
  */
140
- signCertificate(publicKeyPath, ttlSeconds, delegationId) {
141
- return new Promise((resolve, reject) => {
142
- const proc = spawn('ssh-keygen', [
143
- '-s', this.config.caKeyPath,
144
- '-I', `awcp-${delegationId}`,
145
- '-n', this.config.sshUser ?? process.env['USER'] ?? 'awcp',
146
- '-V', `+${ttlSeconds}s`,
147
- '-q',
148
- publicKeyPath,
149
- ]);
150
- let stderr = '';
151
- proc.stderr.on('data', (data) => {
152
- stderr += data.toString();
153
- });
154
- proc.on('close', (code) => {
155
- if (code === 0) {
156
- resolve();
157
- }
158
- else {
159
- reject(new Error(`Certificate signing failed: ${stderr}`));
160
- }
161
- });
162
- proc.on('error', reject);
163
- });
161
+ async addToAuthorizedKeys(publicKey) {
162
+ const authorizedKeysPath = this.getAuthorizedKeysPath();
163
+ // Ensure .ssh directory exists
164
+ const sshDir = join(homedir(), '.ssh');
165
+ await mkdir(sshDir, { recursive: true, mode: 0o700 });
166
+ // Ensure the key ends with newline
167
+ const keyLine = publicKey.trim() + '\n';
168
+ // Append to authorized_keys
169
+ await appendFile(authorizedKeysPath, keyLine, { mode: 0o600 });
170
+ }
171
+ /**
172
+ * Remove a public key from authorized_keys by delegation ID
173
+ */
174
+ async removeFromAuthorizedKeys(delegationId) {
175
+ const authorizedKeysPath = this.getAuthorizedKeysPath();
176
+ const keyMarker = `${AWCP_KEY_COMMENT_PREFIX}${delegationId}`;
177
+ try {
178
+ const content = await readFile(authorizedKeysPath, 'utf-8');
179
+ const lines = content.split('\n');
180
+ // Filter out lines containing this delegation's key marker
181
+ const filteredLines = lines.filter(line => !line.includes(keyMarker));
182
+ // Write back
183
+ await writeFile(authorizedKeysPath, filteredLines.join('\n'), { mode: 0o600 });
184
+ }
185
+ catch {
186
+ // File doesn't exist or can't be read, nothing to remove
187
+ }
164
188
  }
165
189
  /**
166
190
  * Execute ssh-keygen to generate a key pair
@@ -1 +1 @@
1
- {"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/delegator/credential-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../../src/delegator/credential-manager.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { CredentialManager } from './credential-manager.js';
1
+ export { CredentialManager, type CredentialManagerConfig, type GeneratedCredential } from './credential-manager.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delegator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA0D,MAAM,yBAAyB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { SshfsMountClient, DEFAULT_TEMP_KEY_DIR, buildSshfsArgs } from './sshfs-client.js';
1
+ export { SshfsMountClient, type SshfsMountConfig, type MountParams } from './sshfs-client.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { SshfsMountClient, DEFAULT_TEMP_KEY_DIR, buildSshfsArgs } from './sshfs-client.js';
1
+ export { SshfsMountClient } from './sshfs-client.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA2C,MAAM,mBAAmB,CAAC"}
@@ -1,10 +1,28 @@
1
- import { type SshCredential } from '@awcp/core';
2
- import type { SshfsMountConfig, MountParams, ActiveMount } from '../types.js';
3
- export declare const DEFAULT_TEMP_KEY_DIR = "/tmp/awcp/client-keys";
4
1
  /**
5
- * Build SSHFS command arguments
2
+ * SSHFS Mount Client configuration
6
3
  */
7
- export declare function buildSshfsArgs(params: MountParams, keyPath: string, certPath: string, defaultOptions?: Record<string, string>): string[];
4
+ export interface SshfsMountConfig {
5
+ /** Directory to store temporary key files */
6
+ tempKeyDir?: string;
7
+ /** Additional sshfs options */
8
+ defaultOptions?: Record<string, string>;
9
+ /** Timeout for mount operation in ms (default: 30000) */
10
+ mountTimeout?: number;
11
+ }
12
+ /**
13
+ * Mount parameters
14
+ */
15
+ export interface MountParams {
16
+ endpoint: {
17
+ host: string;
18
+ port: number;
19
+ user: string;
20
+ };
21
+ exportLocator: string;
22
+ credential: string;
23
+ mountPoint: string;
24
+ options?: Record<string, string>;
25
+ }
8
26
  /**
9
27
  * SSHFS Mount Client
10
28
  *
@@ -14,10 +32,6 @@ export declare class SshfsMountClient {
14
32
  private config;
15
33
  private activeMounts;
16
34
  constructor(config?: SshfsMountConfig);
17
- /**
18
- * Get active mounts (for testing)
19
- */
20
- getActiveMounts(): Map<string, ActiveMount>;
21
35
  /**
22
36
  * Check if sshfs is available
23
37
  */
@@ -26,17 +40,6 @@ export declare class SshfsMountClient {
26
40
  version?: string;
27
41
  error?: string;
28
42
  }>;
29
- /**
30
- * Write credential files to disk
31
- */
32
- writeCredentialFiles(tempKeyDir: string, credential: SshCredential): Promise<{
33
- keyPath: string;
34
- certPath: string;
35
- }>;
36
- /**
37
- * Clean up credential files
38
- */
39
- cleanupCredentialFiles(keyPath: string, certPath: string): Promise<void>;
40
43
  /**
41
44
  * Mount a remote filesystem
42
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sshfs-client.d.ts","sourceRoot":"","sources":["../../src/executor/sshfs-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4C,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9E,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAG5D;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,MAAM,EAAE,CA4BV;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,YAAY,CAAkC;gBAE1C,MAAM,CAAC,EAAE,gBAAgB;IAIrC;;OAEG;IACH,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAI3C;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAoC1F;;OAEG;IACG,oBAAoB,CACxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,aAAa,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAWjD;;OAEG;IACG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC/C;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgChD;;OAEG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUrD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,OAAO,CAAC,SAAS;IAyDjB,OAAO,CAAC,WAAW;CAepB"}
1
+ {"version":3,"file":"sshfs-client.d.ts","sourceRoot":"","sources":["../../src/executor/sshfs-client.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAcD;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,YAAY,CAAkC;gBAE1C,MAAM,CAAC,EAAE,gBAAgB;IAIrC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAoC1F;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+D/C;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgChD;;OAEG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUrD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,OAAO,CAAC,SAAS;IAyDjB,OAAO,CAAC,WAAW;CAepB"}