From 7b28bad7637ee832ea9bcf2dc80738dc9b241ef6 Mon Sep 17 00:00:00 2001 From: Baobhan Sith <80159437+Heavrnl@users.noreply.github.com> Date: Mon, 12 May 2025 11:18:25 +0800 Subject: [PATCH] Update import-export.service.ts --- .../src/services/import-export.service.ts | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/backend/src/services/import-export.service.ts b/packages/backend/src/services/import-export.service.ts index fd84eb3..798cf20 100644 --- a/packages/backend/src/services/import-export.service.ts +++ b/packages/backend/src/services/import-export.service.ts @@ -261,6 +261,27 @@ export const exportConnectionsAsEncryptedZip = async (includeSshKeys: boolean = line += ` -p ${escapeCliArgument(conn.password)}`; } + if (conn.proxy) { + line += ` -proxy-name ${escapeCliArgument(conn.proxy.name)}`; + line += ` -proxy-type ${conn.proxy.type}`; + line += ` -proxy-host ${escapeCliArgument(conn.proxy.host)}`; + line += ` -proxy-port ${conn.proxy.port}`; + if (conn.proxy.username) { + line += ` -proxy-username ${escapeCliArgument(conn.proxy.username)}`; + } + if (conn.proxy.auth_method && conn.proxy.auth_method !== 'none') { + line += ` -proxy-auth-method ${conn.proxy.auth_method}`; + if (conn.proxy.auth_method === 'password' && conn.proxy.password) { + line += ` -proxy-password ${escapeCliArgument(conn.proxy.password)}`; + } else if (conn.proxy.auth_method === 'key' && conn.proxy.private_key) { + line += ` -proxy-key ${escapeCliArgument('key-content-not-exported-for-security')}`; + if (conn.proxy.passphrase) { + line += ` -proxy-passphrase ${escapeCliArgument(conn.proxy.passphrase)}`; + } + } + } + } + if (conn.tag_ids && conn.tag_ids.length > 0) { const tagNames = conn.tag_ids.map(id => tagsMap.get(id)).filter(name => !!name) as string[]; if (tagNames.length > 0) { @@ -334,27 +355,6 @@ export const exportConnectionsAsEncryptedZip = async (includeSshKeys: boolean = } }; -// Adjust PlaintextExportConnectionData to include ssh_key_id if it's relevant -// This change should ideally be in the PlaintextExportConnectionData interface definition -// and getPlaintextConnectionsData needs to populate it. - -// For the sake of this diff, we'll assume getPlaintextConnectionsData is modified -// to include ssh_key_id on the objects in the `connectionsData` array -// if conn.type === 'SSH' and conn.auth_method === 'key'. -// A more robust solution would involve modifying `PlaintextExportConnectionData` -// and `getPlaintextConnectionsData`. - -// Modify getPlaintextConnectionsData to include ssh_key_id -// We need to adjust the interface and the mapping function. -// The diff tool here has limitations, so I'll describe the change needed in getPlaintextConnectionsData: -// 1. Add `ssh_key_id?: number | null;` to `PlaintextExportConnectionData` interface. -// 2. In `getPlaintextConnectionsData`, when mapping `row` to `connection`, add: -// `ssh_key_id: (row.type === 'SSH' && row.auth_method === 'key') ? row.ssh_key_id : null,` - -// Since I cannot apply diff to two parts of the file simultaneously with this tool for the `getPlaintextConnectionsData` modification, -// I will proceed with the current change and note that `getPlaintextConnectionsData` needs that adjustment for `-k ` to work correctly. -// The `connAsAny.ssh_key_id` is a temporary access pattern. - /** * 导入连接配置