dbgate-api 6.6.0 → 6.6.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.
Files changed (51) hide show
  1. package/package.json +6 -6
  2. package/src/auth/authProvider.js +1 -1
  3. package/src/controllers/archive.js +1 -1
  4. package/src/controllers/auth.js +1 -1
  5. package/src/controllers/cloud.js +1 -1
  6. package/src/controllers/connections.js +4 -4
  7. package/src/controllers/databaseConnections.js +11 -11
  8. package/src/controllers/files.js +24 -4
  9. package/src/controllers/runners.js +7 -6
  10. package/src/controllers/scheduler.js +1 -1
  11. package/src/controllers/serverConnections.js +4 -4
  12. package/src/controllers/sessions.js +4 -4
  13. package/src/controllers/uploads.js +2 -2
  14. package/src/currentVersion.js +2 -2
  15. package/src/index.js +35 -5
  16. package/src/main.js +59 -20
  17. package/src/proc/databaseConnectionProcess.js +21 -12
  18. package/src/proc/serverConnectionProcess.js +6 -6
  19. package/src/proc/sessionProcess.js +2 -2
  20. package/src/proc/sshForwardProcess.js +1 -1
  21. package/src/shell/archiveWriter.js +1 -1
  22. package/src/shell/copyStream.js +1 -1
  23. package/src/shell/executeQuery.js +3 -3
  24. package/src/shell/importDatabase.js +3 -3
  25. package/src/shell/jsonLinesReader.js +1 -1
  26. package/src/shell/jsonLinesWriter.js +1 -1
  27. package/src/shell/jsonReader.js +1 -1
  28. package/src/shell/jsonWriter.js +1 -1
  29. package/src/shell/loadDatabase.js +2 -2
  30. package/src/shell/modifyJsonLinesReader.js +1 -1
  31. package/src/shell/queryReader.js +1 -1
  32. package/src/shell/requirePlugin.js +6 -1
  33. package/src/shell/runScript.js +1 -1
  34. package/src/shell/sqlDataWriter.js +1 -1
  35. package/src/shell/tableReader.js +3 -3
  36. package/src/shell/tableWriter.js +1 -1
  37. package/src/shell/unzipDirectory.js +4 -4
  38. package/src/shell/zipDirectory.js +3 -3
  39. package/src/shell/zipJsonLinesData.js +3 -3
  40. package/src/utility/DatastoreProxy.js +3 -3
  41. package/src/utility/JsonLinesDatastore.js +4 -2
  42. package/src/utility/appLogStore.js +119 -0
  43. package/src/utility/childProcessChecker.js +1 -1
  44. package/src/utility/cloudIntf.js +5 -5
  45. package/src/utility/connectUtility.js +1 -1
  46. package/src/utility/directories.js +2 -2
  47. package/src/utility/extractSingleFileFromZip.js +3 -3
  48. package/src/utility/loadModelTransform.js +1 -1
  49. package/src/utility/sshTunnel.js +7 -7
  50. package/src/utility/sshTunnelProxy.js +1 -1
  51. package/src/utility/useController.js +3 -3
@@ -77,7 +77,7 @@ function startCloudTokenChecking(sid, callback) {
77
77
  callback(resp.data);
78
78
  }
79
79
  } catch (err) {
80
- logger.error(extractErrorLogData(err), 'Error checking cloud token');
80
+ logger.error(extractErrorLogData(err), 'DBGM-00164 Error checking cloud token');
81
81
  }
82
82
  }, 500);
83
83
  }
@@ -125,7 +125,7 @@ async function getCloudUsedEngines() {
125
125
  const resp = await callCloudApiGet('content-engines');
126
126
  return resp || [];
127
127
  } catch (err) {
128
- logger.error(extractErrorLogData(err), 'Error getting cloud content list');
128
+ logger.error(extractErrorLogData(err), 'DBGM-00165 Error getting cloud content list');
129
129
  return [];
130
130
  }
131
131
  }
@@ -208,7 +208,7 @@ async function updateCloudFiles(isRefresh) {
208
208
  lastCheckedTm = _.max(cloudFiles.map(x => parseInt(x.modifiedTm)));
209
209
  }
210
210
 
211
- logger.info({ tags, lastCheckedTm }, 'Downloading cloud files');
211
+ logger.info({ tags, lastCheckedTm }, 'DBGM-00082 Downloading cloud files');
212
212
 
213
213
  const resp = await axios.default.get(
214
214
  `${DBGATE_CLOUD_URL}/public-cloud-updates?lastCheckedTm=${lastCheckedTm}&tags=${tags}&isRefresh=${
@@ -223,7 +223,7 @@ async function updateCloudFiles(isRefresh) {
223
223
  }
224
224
  );
225
225
 
226
- logger.info(`Downloaded ${resp.data.length} cloud files`);
226
+ logger.info(`DBGM-00083 Downloaded ${resp.data.length} cloud files`);
227
227
 
228
228
  const filesByPath = lastCheckedTm == 0 ? {} : _.keyBy(cloudFiles, 'path');
229
229
  for (const file of resp.data) {
@@ -269,7 +269,7 @@ async function refreshPublicFiles(isRefresh) {
269
269
  try {
270
270
  await updateCloudFiles(isRefresh);
271
271
  } catch (err) {
272
- logger.error(extractErrorLogData(err), 'Error updating cloud files');
272
+ logger.error(extractErrorLogData(err), 'DBGM-00166 Error updating cloud files');
273
273
  }
274
274
  }
275
275
 
@@ -132,7 +132,7 @@ async function connectUtility(driver, storedConnection, connectionMode, addition
132
132
 
133
133
  connection.ssl = await extractConnectionSslParams(connection);
134
134
 
135
- const conn = await driver.connect({ ...connection, ...additionalOptions });
135
+ const conn = await driver.connect({ conid: connectionLoaded?._id, ...connection, ...additionalOptions });
136
136
  return conn;
137
137
  }
138
138
 
@@ -14,11 +14,11 @@ const createDirectories = {};
14
14
  const ensureDirectory = (dir, clean) => {
15
15
  if (!createDirectories[dir]) {
16
16
  if (clean && fs.existsSync(dir) && !platformInfo.isForkedApi) {
17
- getLogger('directories').info(`Cleaning directory ${dir}`);
17
+ getLogger('directories').info(`DBGM-00170 Cleaning directory ${dir}`);
18
18
  cleanDirectory(dir, _.isNumber(clean) ? clean : null);
19
19
  }
20
20
  if (!fs.existsSync(dir)) {
21
- getLogger('directories').info(`Creating directory ${dir}`);
21
+ getLogger('directories').info(`DBGM-00171 Creating directory ${dir}`);
22
22
  fs.mkdirSync(dir);
23
23
  }
24
24
  createDirectories[dir] = true;
@@ -42,13 +42,13 @@ function extractSingleFileFromZip(zipPath, fileInZip, outputPath) {
42
42
 
43
43
  // When the file is finished writing, resolve
44
44
  writeStream.on('finish', () => {
45
- logger.info(`File "${fileInZip}" extracted to "${outputPath}".`);
45
+ logger.info(`DBGM-00088 File "${fileInZip}" extracted to "${outputPath}".`);
46
46
  resolve(true);
47
47
  });
48
48
 
49
49
  // Handle write errors
50
50
  writeStream.on('error', writeErr => {
51
- logger.error(extractErrorLogData(writeErr), `Error extracting "${fileInZip}" from "${zipPath}".`);
51
+ logger.error(extractErrorLogData(writeErr), `DBGM-00089 Error extracting "${fileInZip}" from "${zipPath}".`);
52
52
  reject(writeErr);
53
53
  });
54
54
  });
@@ -67,7 +67,7 @@ function extractSingleFileFromZip(zipPath, fileInZip, outputPath) {
67
67
 
68
68
  // Handle general errors
69
69
  zipFile.on('error', err => {
70
- logger.error(extractErrorLogData(err), `ZIP file error in ${zipPath}.`);
70
+ logger.error(extractErrorLogData(err), `DBGM-00172 ZIP file error in ${zipPath}.`);
71
71
  reject(err);
72
72
  });
73
73
  });
@@ -28,7 +28,7 @@ async function loadModelTransform(file) {
28
28
  }
29
29
  return null;
30
30
  } catch (err) {
31
- logger.error(extractErrorLogData(err), `Error loading model transform ${file}`);
31
+ logger.error(extractErrorLogData(err), `DBGM-00173 Error loading model transform ${file}`);
32
32
  return null;
33
33
  }
34
34
  }
@@ -40,7 +40,7 @@ function callForwardProcess(connection, tunnelConfig, tunnelCacheKey) {
40
40
  tunnelConfig,
41
41
  });
42
42
  } catch (err) {
43
- logger.error(extractErrorLogData(err), 'Error connecting SSH');
43
+ logger.error(extractErrorLogData(err), 'DBGM-00174 Error connecting SSH');
44
44
  }
45
45
  return new Promise((resolve, reject) => {
46
46
  let promiseHandled = false;
@@ -57,18 +57,18 @@ function callForwardProcess(connection, tunnelConfig, tunnelCacheKey) {
57
57
  }
58
58
  });
59
59
  subprocess.on('exit', code => {
60
- logger.info(`SSH forward process exited with code ${code}`);
60
+ logger.info(`DBGM-00090 SSH forward process exited with code ${code}`);
61
61
  delete sshTunnelCache[tunnelCacheKey];
62
62
  if (!promiseHandled) {
63
63
  reject(
64
64
  new Error(
65
- 'SSH forward process exited, try to change "Local host address for SSH connections" in Settings/Connections'
65
+ 'DBGM-00091 SSH forward process exited, try to change "Local host address for SSH connections" in Settings/Connections'
66
66
  )
67
67
  );
68
68
  }
69
69
  });
70
70
  subprocess.on('error', error => {
71
- logger.error(extractErrorLogData(error), 'SSH forward process error');
71
+ logger.error(extractErrorLogData(error), 'DBGM-00092 SSH forward process error');
72
72
  delete sshTunnelCache[tunnelCacheKey];
73
73
  if (!promiseHandled) {
74
74
  reject(error);
@@ -97,13 +97,13 @@ async function getSshTunnel(connection) {
97
97
  };
98
98
  try {
99
99
  logger.info(
100
- `Creating SSH tunnel to ${connection.sshHost}-${connection.server}:${connection.port}, using local port ${localPort}`
100
+ `DBGM-00093 Creating SSH tunnel to ${connection.sshHost}-${connection.server}:${connection.port}, using local port ${localPort}`
101
101
  );
102
102
 
103
103
  const subprocess = await callForwardProcess(connection, tunnelConfig, tunnelCacheKey);
104
104
 
105
105
  logger.info(
106
- `Created SSH tunnel to ${connection.sshHost}-${connection.server}:${connection.port}, using local port ${localPort}`
106
+ `DBGM-00094 Created SSH tunnel to ${connection.sshHost}-${connection.server}:${connection.port}, using local port ${localPort}`
107
107
  );
108
108
 
109
109
  sshTunnelCache[tunnelCacheKey] = {
@@ -114,7 +114,7 @@ async function getSshTunnel(connection) {
114
114
  };
115
115
  return sshTunnelCache[tunnelCacheKey];
116
116
  } catch (err) {
117
- logger.error(extractErrorLogData(err), 'Error creating SSH tunnel:');
117
+ logger.error(extractErrorLogData(err), 'DBGM-00095 Error creating SSH tunnel:');
118
118
  // error is not cached
119
119
  return {
120
120
  state: 'error',
@@ -10,7 +10,7 @@ async function handleGetSshTunnelRequest({ msgid, connection }, subprocess) {
10
10
  try {
11
11
  subprocess.send({ msgtype: 'getsshtunnel-response', msgid, response });
12
12
  } catch (err) {
13
- logger.error(extractErrorLogData(err), 'Error sending to SSH tunnel');
13
+ logger.error(extractErrorLogData(err), 'DBGM-00175 Error sending to SSH tunnel');
14
14
  }
15
15
  }
16
16
 
@@ -12,11 +12,11 @@ module.exports = function useController(app, electron, route, controller) {
12
12
  const router = express.Router();
13
13
 
14
14
  if (controller._init) {
15
- logger.info(`Calling init controller for controller ${route}`);
15
+ logger.info(`DBGM-00096 Calling init controller for controller ${route}`);
16
16
  try {
17
17
  controller._init();
18
18
  } catch (err) {
19
- logger.error(extractErrorLogData(err), `Error initializing controller, exiting application`);
19
+ logger.error(extractErrorLogData(err), `DBGM-00097 Error initializing controller, exiting application`);
20
20
  process.exit(1);
21
21
  }
22
22
  }
@@ -78,7 +78,7 @@ module.exports = function useController(app, electron, route, controller) {
78
78
  const data = await controller[key]({ ...req.body, ...req.query }, req);
79
79
  res.json(data);
80
80
  } catch (err) {
81
- logger.error(extractErrorLogData(err), `Error when processing route ${route}/${key}`);
81
+ logger.error(extractErrorLogData(err), `DBGM-00176 Error when processing route ${route}/${key}`);
82
82
  if (err instanceof MissingCredentialsError) {
83
83
  res.json({
84
84
  missingCredentials: true,