diff --git a/packages/api/src/proc/connectProcess.js b/packages/api/src/proc/connectProcess.js index d6724e148..5e6041441 100644 --- a/packages/api/src/proc/connectProcess.js +++ b/packages/api/src/proc/connectProcess.js @@ -2,6 +2,25 @@ const childProcessChecker = require('../utility/childProcessChecker'); const requireEngineDriver = require('../utility/requireEngineDriver'); const connectUtility = require('../utility/connectUtility'); const { handleProcessCommunication } = require('../utility/processComm'); +const _ = require('lodash'); + +function pickSafeConnectionInfo(connection) { + return _.mapValues(connection, (v, k) => { + if (k == 'engine' || k == 'port' || k == 'authType' || k == 'sshMode' || k == 'passwordMode') return v; + if (v === null || v === true || v === false) return v; + if (v) return '***'; + return undefined; + }); +} + +const formatErrorDetail = (e, connection) => `${e.stack} + +Error JSON: ${JSON.stringify(e, undefined, 2)} + +Connection: ${JSON.stringify(pickSafeConnectionInfo(connection), undefined, 2)} + +Platform: ${process.platform} +`; function start() { childProcessChecker(); @@ -14,7 +33,11 @@ function start() { process.send({ msgtype: 'connected', ...res }); } catch (e) { console.error(e); - process.send({ msgtype: 'error', error: e.message }); + process.send({ + msgtype: 'error', + error: e.message, + detail: formatErrorDetail(e, connection), + }); } }); } diff --git a/packages/web/src/modals/ConnectionModal.svelte b/packages/web/src/modals/ConnectionModal.svelte index a8231c43c..db1351d49 100644 --- a/packages/web/src/modals/ConnectionModal.svelte +++ b/packages/web/src/modals/ConnectionModal.svelte @@ -12,8 +12,10 @@ import FormFieldTemplateLarge from '../forms/FormFieldTemplateLarge.svelte'; import ModalBase from './ModalBase.svelte'; - import { closeCurrentModal, closeModal } from './modalTools'; + import { closeCurrentModal, closeModal, showModal } from './modalTools'; import createRef from '../utility/createRef'; + import Link from '../elements/Link.svelte'; + import ErrorMessageModal from './ErrorMessageModal.svelte'; export let connection; @@ -92,6 +94,16 @@
{message}
+ {:else}
+