mongodb-data-service 21.11.0 → 21.15.0

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 (48) hide show
  1. package/README.md +7 -22
  2. package/lib/connect-mongo-client.d.ts +11 -0
  3. package/lib/connect-mongo-client.js +89 -0
  4. package/lib/connect-mongo-client.js.map +1 -0
  5. package/lib/connect.js +2 -15
  6. package/lib/connect.js.map +1 -1
  7. package/lib/connection-info.d.ts +12 -0
  8. package/lib/connection-info.js +3 -0
  9. package/lib/connection-info.js.map +1 -0
  10. package/lib/connection-options.d.ts +2 -11
  11. package/lib/connection-secrets.d.ts +13 -0
  12. package/lib/connection-secrets.js +98 -0
  13. package/lib/connection-secrets.js.map +1 -0
  14. package/lib/connection-storage.d.ts +4 -6
  15. package/lib/connection-storage.js +8 -8
  16. package/lib/connection-storage.js.map +1 -1
  17. package/lib/connection-title.d.ts +2 -0
  18. package/lib/connection-title.js +25 -0
  19. package/lib/connection-title.js.map +1 -0
  20. package/lib/data-service.d.ts +42 -21
  21. package/lib/data-service.js +440 -175
  22. package/lib/data-service.js.map +1 -1
  23. package/lib/index.d.ts +8 -1
  24. package/lib/index.js +15 -1
  25. package/lib/index.js.map +1 -1
  26. package/lib/instance-detail-helper.d.ts +77 -32
  27. package/lib/instance-detail-helper.js +143 -433
  28. package/lib/instance-detail-helper.js.map +1 -1
  29. package/lib/{legacy-connection-model.d.ts → legacy/legacy-connection-model.d.ts} +17 -8
  30. package/lib/legacy/legacy-connection-model.js +207 -0
  31. package/lib/legacy/legacy-connection-model.js.map +1 -0
  32. package/lib/redact.d.ts +4 -1
  33. package/lib/redact.js +23 -11
  34. package/lib/redact.js.map +1 -1
  35. package/lib/run-command.d.ts +209 -0
  36. package/lib/run-command.js +11 -0
  37. package/lib/run-command.js.map +1 -0
  38. package/lib/ssh-tunnel.d.ts +5 -0
  39. package/lib/ssh-tunnel.js +73 -0
  40. package/lib/ssh-tunnel.js.map +1 -0
  41. package/lib/types.d.ts +7 -98
  42. package/package.json +24 -25
  43. package/lib/.esm-wrapper.mjs +0 -3
  44. package/lib/legacy-connect.d.ts +0 -7
  45. package/lib/legacy-connect.js +0 -123
  46. package/lib/legacy-connect.js.map +0 -1
  47. package/lib/legacy-connection-model.js +0 -158
  48. package/lib/legacy-connection-model.js.map +0 -1
@@ -3,466 +3,176 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.listDatabases = exports.listCollections = exports.getInstance = exports.getHostInfo = exports.getDataLake = exports.getGenuineMongoDB = exports.getDatabaseCollections = exports.getCmdLineOpts = exports.getBuildInfo = exports.getAllowedDatabases = exports.getAllowedCollections = void 0;
7
- const async_1 = __importDefault(require("async"));
8
- const debug_1 = __importDefault(require("debug"));
9
- const lodash_1 = require("lodash");
10
- const mongodb_1 = require("mongodb");
11
- const isNotAuthorized = require('mongodb-js-errors').isNotAuthorized;
12
- const toNS = require('mongodb-ns');
13
- const security = require('mongodb-security');
14
- const getMongoDBBuildInfo = require('mongodb-build-info');
15
- const debug = debug_1.default('mongodb-data-service:instance-detail-helper');
16
- function getReadPreferenceOptions(db) {
17
- const readPreference = db.readPreference
18
- ? db.readPreference
19
- : mongodb_1.ReadPreference.PRIMARY;
20
- return { readPreference };
21
- }
22
- function getStats(results, done) {
23
- const databases = results.databases;
24
- const keys = [
25
- 'document_count',
26
- 'storage_size',
27
- 'index_count',
28
- 'index_size',
29
- ];
30
- const stats = {
31
- document_count: 0,
32
- storage_size: 0,
33
- index_count: 0,
34
- index_size: 0,
35
- };
36
- databases.map(function (db) {
37
- keys.map(function (k) {
38
- stats[k] += db[k];
39
- });
40
- });
41
- done(null, stats);
42
- }
43
- function parseBuildInfo(buildInfo) {
44
- buildInfo = buildInfo || {};
6
+ exports.adaptCollectionInfo = exports.adaptDatabaseInfo = exports.getPrivilegesByDatabaseAndCollection = exports.getInstance = void 0;
7
+ const mongodb_build_info_1 = require("mongodb-build-info");
8
+ const mongodb_ns_1 = __importDefault(require("mongodb-ns"));
9
+ const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
10
+ const run_command_1 = require("./run-command");
11
+ const { debug } = (0, compass_logging_1.default)('COMPASS-CONNECT');
12
+ async function getInstance(client) {
13
+ var _a;
14
+ const adminDb = client.db('admin');
15
+ const [connectionStatus, getCmdLineOptsResult, hostInfoResult, buildInfoResult, getParameterResult, atlasVersionResult,] = await Promise.all([
16
+ (0, run_command_1.runCommand)(adminDb, { connectionStatus: 1, showPrivileges: true }).catch(ignoreNotAuthorized(null)),
17
+ (0, run_command_1.runCommand)(adminDb, { getCmdLineOpts: 1 }).catch((err) => {
18
+ return { errmsg: err.message };
19
+ }),
20
+ (0, run_command_1.runCommand)(adminDb, { hostInfo: 1 }).catch(ignoreNotAuthorized({})),
21
+ (0, run_command_1.runCommand)(adminDb, { buildInfo: 1 }),
22
+ (0, run_command_1.runCommand)(adminDb, {
23
+ getParameter: 1,
24
+ featureCompatibilityVersion: 1,
25
+ }).catch(() => null),
26
+ (0, run_command_1.runCommand)(adminDb, { atlasVersion: 1 }).catch((err) => {
27
+ return { version: '', gitVersion: '' };
28
+ }),
29
+ ]);
45
30
  return {
46
- version: buildInfo.version,
47
- commit: buildInfo.gitVersion,
48
- commit_url: buildInfo.gitVersion
49
- ? `https://github.com/mongodb/mongo/commit/${buildInfo.gitVersion}`
50
- : '',
51
- flags_loader: buildInfo.loaderFlags,
52
- flags_compiler: buildInfo.compilerFlags,
53
- allocator: buildInfo.allocator,
54
- javascript_engine: buildInfo.javascriptEngine,
55
- debug: buildInfo.debug,
56
- for_bits: buildInfo.bits,
57
- max_bson_object_size: buildInfo.maxBsonObjectSize,
58
- enterprise_module: getMongoDBBuildInfo.isEnterprise(buildInfo),
59
- query_engine: buildInfo.queryEngine ? buildInfo.queryEngine : null,
60
- raw: buildInfo,
31
+ auth: adaptAuthInfo(connectionStatus),
32
+ build: adaptBuildInfo(buildInfoResult),
33
+ host: adaptHostInfo(hostInfoResult),
34
+ genuineMongoDB: buildGenuineMongoDBInfo(buildInfoResult, getCmdLineOptsResult),
35
+ dataLake: buildDataLakeInfo(buildInfoResult),
36
+ featureCompatibilityVersion: (_a = getParameterResult === null || getParameterResult === void 0 ? void 0 : getParameterResult.featureCompatibilityVersion.version) !== null && _a !== void 0 ? _a : null,
37
+ isAtlas: checkIsAtlas(client, atlasVersionResult),
61
38
  };
62
39
  }
63
- function getBuildInfo(results, done) {
64
- const db = results.db;
65
- debug('checking we can get buildInfo...');
66
- const spec = {
67
- buildInfo: 1,
68
- };
69
- const adminDb = db.databaseName === 'admin' ? db : db.admin();
70
- void adminDb.command(spec, getReadPreferenceOptions(db), (err, res) => {
71
- if (err) {
72
- debug('buildInfo failed!', err);
73
- err.command = 'buildInfo';
74
- return done(err);
75
- }
76
- done(null, parseBuildInfo(res));
77
- });
78
- }
79
- exports.getBuildInfo = getBuildInfo;
80
- function getCmdLineOpts(results, done) {
81
- const db = results.db;
82
- const spec = {
83
- getCmdLineOpts: 1,
84
- };
85
- const adminDb = db.databaseName === 'admin' ? db : db.admin();
86
- void adminDb.command(spec, getReadPreferenceOptions(db), (err, res) => {
87
- if (err) {
88
- debug('getCmdLineOpts failed!', err);
89
- return done(null, { errmsg: err.message });
90
- }
91
- done(null, res);
92
- });
40
+ exports.getInstance = getInstance;
41
+ function checkIsAtlas(client, atlasVersionInfo) {
42
+ var _a;
43
+ const firstHost = ((_a = client.options.hosts[0]) === null || _a === void 0 ? void 0 : _a.host) || '';
44
+ if (atlasVersionInfo.version === '') {
45
+ return /mongodb(-dev)?\.net$/i.test(firstHost);
46
+ }
47
+ return true;
93
48
  }
94
- exports.getCmdLineOpts = getCmdLineOpts;
95
- function getGenuineMongoDB(results, done) {
96
- const buildInfo = results.build.raw;
97
- const cmdLineOpts = results.cmdLineOpts;
98
- debug('genuineMongoDB check: buildInfo and cmdLineOpts', buildInfo, cmdLineOpts);
99
- const { isGenuine, serverName } = getMongoDBBuildInfo.getGenuineMongoDB(buildInfo, cmdLineOpts);
100
- done(null, {
49
+ function buildGenuineMongoDBInfo(buildInfo, cmdLineOpts) {
50
+ const { isGenuine, serverName } = (0, mongodb_build_info_1.getGenuineMongoDB)(buildInfo, cmdLineOpts);
51
+ return {
101
52
  isGenuine,
102
53
  dbType: serverName,
103
- });
54
+ };
104
55
  }
105
- exports.getGenuineMongoDB = getGenuineMongoDB;
106
- function getDataLake(results, done) {
107
- const buildInfo = results.build.raw;
108
- debug('isDataLake check: buildInfo.dataLake', buildInfo.dataLake);
109
- const { isDataLake, dlVersion } = getMongoDBBuildInfo.getDataLake(buildInfo);
110
- done(null, {
56
+ function buildDataLakeInfo(buildInfo) {
57
+ const { isDataLake, dlVersion } = (0, mongodb_build_info_1.getDataLake)(buildInfo);
58
+ return {
111
59
  isDataLake,
112
60
  version: dlVersion,
113
- });
61
+ };
114
62
  }
115
- exports.getDataLake = getDataLake;
116
- function parseHostInfo(hostInfo) {
117
- hostInfo = hostInfo || {};
118
- const hostInfoSystem = hostInfo.system || {};
119
- const hostInfoOs = hostInfo.os || {};
120
- const hostInfoExtra = hostInfo.extra || {};
63
+ function adaptAuthInfo(connectionStatus) {
64
+ var _a;
65
+ if (connectionStatus === null) {
66
+ return { user: null, roles: [], privileges: [] };
67
+ }
68
+ const { authenticatedUsers, authenticatedUserRoles, authenticatedUserPrivileges, } = connectionStatus.authInfo;
121
69
  return {
122
- system_time: hostInfoSystem.currentTime,
123
- hostname: hostInfoSystem.hostname || 'unknown',
124
- os: hostInfoOs.name,
125
- os_family: (hostInfoOs.type || 'unknown').toLowerCase(),
126
- kernel_version: hostInfoOs.version,
127
- kernel_version_string: hostInfoExtra.versionString,
128
- memory_bits: (hostInfoSystem.memSizeMB || 0) * 1024 * 1024,
129
- memory_page_size: hostInfoExtra.pageSize,
130
- arch: hostInfoSystem.cpuArch,
131
- cpu_cores: hostInfoSystem.numCores,
132
- cpu_cores_physical: hostInfoExtra.physicalCores,
133
- cpu_scheduler: hostInfoExtra.scheduler,
134
- cpu_frequency: (hostInfoExtra.cpuFrequencyMHz || 0) * 1000000,
135
- cpu_string: hostInfoExtra.cpuString,
136
- cpu_bits: hostInfoSystem.cpuAddrSize,
137
- machine_model: hostInfoExtra.model,
138
- feature_numa: hostInfoSystem.numaEnabled,
139
- feature_always_full_sync: hostInfoExtra.alwaysFullSync,
140
- feature_nfs_async: hostInfoExtra.nfsAsync,
70
+ user: (_a = authenticatedUsers[0]) !== null && _a !== void 0 ? _a : null,
71
+ roles: authenticatedUserRoles,
72
+ privileges: authenticatedUserPrivileges,
141
73
  };
142
74
  }
143
- function getHostInfo(results, done) {
144
- const db = results.db;
145
- const spec = {
146
- hostInfo: 1,
147
- };
148
- const adminDb = db.databaseName === 'admin' ? db : db.admin();
149
- void adminDb.command(spec, getReadPreferenceOptions(db), (err, res) => {
150
- if (err) {
151
- if (isNotAuthorized(err)) {
152
- debug('user does not have hostInfo privilege, returning empty document {}');
153
- done(null, {});
154
- return;
75
+ function getPrivilegesByDatabaseAndCollection(authenticatedUserPrivileges = null, requiredActions = null) {
76
+ const privileges = authenticatedUserPrivileges !== null && authenticatedUserPrivileges !== void 0 ? authenticatedUserPrivileges : [];
77
+ const filteredPrivileges = requiredActions && requiredActions.length > 0
78
+ ? privileges.filter(({ actions }) => {
79
+ return requiredActions.every((action) => actions.includes(action));
80
+ })
81
+ : privileges;
82
+ const result = {};
83
+ for (const { resource, actions } of filteredPrivileges) {
84
+ if (typeof resource.db !== 'undefined' &&
85
+ typeof resource.collection !== 'undefined') {
86
+ const { db, collection } = resource;
87
+ if (result[db]) {
88
+ Object.assign(result[db], { [collection]: actions });
155
89
  }
156
- debug('driver error', err);
157
- err.command = 'hostInfo';
158
- done(err);
159
- return;
160
- }
161
- done(null, parseHostInfo(res));
162
- });
163
- }
164
- exports.getHostInfo = getHostInfo;
165
- function listDatabases(results, done) {
166
- const db = results.db;
167
- const userInfo = results.userInfo;
168
- const cluster = security
169
- .getResourcesWithActions(userInfo, ['listDatabases'])
170
- .filter(function (resource) {
171
- return resource.cluster;
172
- });
173
- if (!cluster) {
174
- done(null, []);
175
- }
176
- const spec = {
177
- listDatabases: 1,
178
- };
179
- const options = getReadPreferenceOptions(db);
180
- const adminDb = db.databaseName === 'admin' ? db : db.admin();
181
- void adminDb.command(spec, options, function (err, res) {
182
- if (err) {
183
- if (isNotAuthorized(err)) {
184
- void adminDb.command({ connectionStatus: 1, showPrivileges: 1 }, options, function (err, res) {
185
- if (err) {
186
- done(err);
187
- return;
188
- }
189
- const privileges = (res.authInfo || {})
190
- .authenticatedUserPrivileges;
191
- if (privileges === undefined) {
192
- done(null, []);
193
- return;
194
- }
195
- done(null, privileges
196
- .filter(function (priv) {
197
- return ((priv.resource || {}).db || '').length > 0;
198
- })
199
- .map(function (priv) {
200
- return priv.resource.db;
201
- })
202
- .filter(function (db, idx, arr) {
203
- return arr.indexOf(db) === idx;
204
- })
205
- .sort());
206
- });
207
- return;
90
+ else {
91
+ result[db] = { [collection]: actions };
208
92
  }
209
- debug('listDatabases failed', err);
210
- err.command = 'listDatabases';
211
- done(err);
212
- return;
213
93
  }
214
- const names = res.databases.map(function (d) {
215
- return d.name;
216
- });
217
- debug('listDatabases succeeded!', {
218
- res: JSON.stringify(res),
219
- names: names,
220
- });
221
- done(null, names);
222
- });
223
- }
224
- exports.listDatabases = listDatabases;
225
- function getDatabase(client, db, name, done) {
226
- if (typeof name === 'function') {
227
- done = name;
228
- name = db.databaseName;
229
94
  }
230
- const spec = {
231
- dbStats: 1,
232
- };
233
- const options = getReadPreferenceOptions(db);
234
- debug('running dbStats for `%s`...', name);
235
- client.db(name).command(spec, options, function (err, res) {
236
- if (err || !res) {
237
- debug('dbStats failed. Falling back to no stats.');
238
- res = {};
239
- }
240
- else {
241
- debug('got dbStats for `%s`', name, res);
242
- }
243
- const dbName = res.db || name;
244
- const details = {
245
- _id: dbName,
246
- name: dbName,
247
- document_count: res.objects || 0,
248
- storage_size: res.storageSize || 0,
249
- index_count: res.indexes || 0,
250
- index_size: res.indexSize || 0,
251
- };
252
- done === null || done === void 0 ? void 0 : done(null, details);
253
- });
254
- }
255
- function getDatabases(results, done) {
256
- const db = results.db;
257
- const client = results.client;
258
- const dbnames = lodash_1.union(results.listDatabases, results.allowedDatabases);
259
- async_1.default.parallel(dbnames.map((name) => {
260
- return (done) => {
261
- getDatabase(client, db, name, done);
262
- };
263
- }), done);
264
- }
265
- function getUserInfo(results, done) {
266
- const db = results.db;
267
- const options = getReadPreferenceOptions(db);
268
- db.command({
269
- connectionStatus: 1,
270
- showPrivileges: true,
271
- }, options, function (err, res) {
272
- if (err) {
273
- return done(err);
274
- }
275
- if (!lodash_1.has(res, 'authInfo.authenticatedUsers') ||
276
- !res.authInfo.authenticatedUsers[0]) {
277
- debug('no logged in user, returning empty document');
278
- return done(null, {});
279
- }
280
- const user = res.authInfo.authenticatedUsers[0];
281
- db.command({ usersInfo: user, showPrivileges: true }, options, function (_err, _res) {
282
- if (_err) {
283
- debug(`Command "usersInfo" could not be retrieved: ${(_err === null || _err === void 0 ? void 0 : _err.message) || '<no result>'}`);
284
- return done(null, {});
285
- }
286
- done(null, _res.users[0] || {});
287
- });
288
- });
289
- }
290
- function getAllowedDatabases(results, done) {
291
- const userInfo = results.userInfo;
292
- let databases = security
293
- .getResourcesWithActions(userInfo, ['listCollections'])
294
- .map(function (resource) {
295
- return resource.db;
296
- });
297
- databases = databases.concat(security
298
- .getResourcesWithActions(userInfo, ['find'])
299
- .map(function (resource) {
300
- return resource.db;
301
- }));
302
- done(null, databases.filter((f, i) => f && databases.indexOf(f) === i));
95
+ return result;
303
96
  }
304
- exports.getAllowedDatabases = getAllowedDatabases;
305
- function parseCollection(resp) {
306
- const ns = toNS(`${resp.db}.${resp.name}`);
307
- return {
308
- _id: ns.toString(),
309
- name: ns.collection,
310
- database: ns.database,
311
- readonly: lodash_1.get(resp, 'info.readOnly', false),
312
- collation: lodash_1.get(resp, 'options.collation', null),
313
- type: lodash_1.get(resp, 'type', 'collection'),
314
- view_on: lodash_1.get(resp, 'options.viewOn', undefined),
315
- pipeline: lodash_1.get(resp, 'options.pipeline', undefined),
316
- };
317
- }
318
- function getAllowedCollections(results, done) {
319
- const userInfo = results.userInfo;
320
- const compassActions = ['find', 'collStats'];
321
- let collections = security
322
- .getResourcesWithActions(userInfo, compassActions)
323
- .map(function (resource) {
324
- return {
325
- db: resource.db,
326
- name: resource.collection,
327
- };
328
- });
329
- collections = collections
330
- .concat(security
331
- .getResourcesWithActions(userInfo, ['find'])
332
- .map(function (resource) {
333
- return {
334
- db: resource.db,
335
- name: resource.collection,
336
- };
337
- }))
338
- .filter((f) => f.name);
339
- collections = lodash_1.uniqBy(collections, (c) => `${c.db}.${c.name}`);
340
- const collDetails = lodash_1.map(collections, parseCollection);
341
- debug('allowed collections', collDetails);
342
- done(null, collDetails);
343
- }
344
- exports.getAllowedCollections = getAllowedCollections;
345
- function isMongosLocalException(err) {
97
+ exports.getPrivilegesByDatabaseAndCollection = getPrivilegesByDatabaseAndCollection;
98
+ function isNotAuthorized(err) {
346
99
  if (!err) {
347
100
  return false;
348
101
  }
349
- const msg = err.message || err.err || JSON.stringify(err);
350
- return new RegExp('database through mongos').test(msg);
351
- }
352
- function getDatabaseCollections(db, done) {
353
- debug('getDatabaseCollections...');
354
- const spec = {};
355
- db.listCollections(spec, getReadPreferenceOptions(db)).toArray(function (err, res) {
356
- if (err) {
357
- if (isNotAuthorized(err) || isMongosLocalException(err)) {
358
- debug('not allowed to run `listCollections` command on %s, returning' +
359
- ' empty result [].', db.databaseName);
360
- return done(null, []);
361
- }
362
- debug('listCollections failed', err);
363
- err.command = 'listCollections';
364
- return done(err);
365
- }
366
- done(null, lodash_1.map(res, function (d) {
367
- return parseCollection({
368
- ...d,
369
- db: db.databaseName,
102
+ const msg = err.message || JSON.stringify(err);
103
+ return new RegExp('not (authorized|allowed)').test(msg);
104
+ }
105
+ function ignoreNotAuthorized(fallback) {
106
+ return (err) => {
107
+ if (isNotAuthorized(err)) {
108
+ debug('ignoring not authorized error and returning fallback value:', {
109
+ err,
110
+ fallback,
370
111
  });
371
- }));
372
- });
373
- }
374
- exports.getDatabaseCollections = getDatabaseCollections;
375
- function getCollections(results, done) {
376
- let collections = [
377
- ...results.listCollections,
378
- ...results.allowedCollections,
379
- ].filter((f) => f.name !== '');
380
- collections = lodash_1.uniqBy(collections, (c) => c._id);
381
- done(null, collections);
382
- }
383
- function listCollections(results, done) {
384
- const client = results.client;
385
- const databases = results.databases;
386
- const tasks = databases.map(function (_db) {
387
- return getDatabaseCollections.bind(null, client.db(_db.name));
388
- });
389
- async_1.default.parallel(tasks, function (err, res) {
390
- if (err) {
391
- debug('listCollections failed', err);
392
- return done(err);
112
+ return Promise.resolve(fallback);
393
113
  }
394
- done(null, lodash_1.flatten(res));
395
- });
114
+ return Promise.reject(err);
115
+ };
396
116
  }
397
- exports.listCollections = listCollections;
398
- function getHierarchy(results, done) {
399
- const databases = results.databases;
400
- const collections = lodash_1.groupBy(results.collections, function (collection) {
401
- return collection.database;
402
- });
403
- lodash_1.forEach(databases, function (db) {
404
- db.collections = collections[db.name] || [];
405
- });
406
- done(null);
117
+ function adaptHostInfo(rawHostInfo) {
118
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
119
+ return {
120
+ os: (_a = rawHostInfo.os) === null || _a === void 0 ? void 0 : _a.name,
121
+ os_family: ((_b = rawHostInfo.os) === null || _b === void 0 ? void 0 : _b.type)
122
+ ? rawHostInfo.os.type.toLowerCase()
123
+ : undefined,
124
+ kernel_version: (_c = rawHostInfo.os) === null || _c === void 0 ? void 0 : _c.version,
125
+ kernel_version_string: (_d = rawHostInfo.extra) === null || _d === void 0 ? void 0 : _d.versionString,
126
+ arch: (_e = rawHostInfo.system) === null || _e === void 0 ? void 0 : _e.cpuArch,
127
+ memory_bits: ((_g = (_f = rawHostInfo.system) === null || _f === void 0 ? void 0 : _f.memSizeMB) !== null && _g !== void 0 ? _g : 0) * 1024 * 1024,
128
+ cpu_cores: (_h = rawHostInfo.system) === null || _h === void 0 ? void 0 : _h.numCores,
129
+ cpu_frequency: parseInt(((_j = rawHostInfo.extra) === null || _j === void 0 ? void 0 : _j.cpuFrequencyMHz) || '0', 10) * 1000000,
130
+ };
407
131
  }
408
- function attach(anything, done) {
409
- done(null, anything);
132
+ function adaptBuildInfo(rawBuildInfo) {
133
+ var _a;
134
+ return {
135
+ version: (_a = rawBuildInfo.version) !== null && _a !== void 0 ? _a : '',
136
+ isEnterprise: (0, mongodb_build_info_1.isEnterprise)(rawBuildInfo),
137
+ };
410
138
  }
411
- function getInstanceDetail(client, db, done) {
412
- const tasks = {
413
- client: attach.bind(null, client),
414
- db: attach.bind(null, db),
415
- userInfo: ['client', 'db', getUserInfo],
416
- host: ['client', 'db', getHostInfo],
417
- build: ['client', 'db', getBuildInfo],
418
- cmdLineOpts: ['client', 'db', getCmdLineOpts],
419
- genuineMongoDB: ['build', 'cmdLineOpts', getGenuineMongoDB],
420
- dataLake: ['build', getDataLake],
421
- listDatabases: ['client', 'db', 'userInfo', listDatabases],
422
- allowedDatabases: ['userInfo', getAllowedDatabases],
423
- databases: [
424
- 'client',
425
- 'db',
426
- 'listDatabases',
427
- 'allowedDatabases',
428
- getDatabases,
429
- ],
430
- listCollections: ['client', 'db', 'databases', listCollections],
431
- allowedCollections: ['userInfo', getAllowedCollections],
432
- collections: [
433
- 'client',
434
- 'db',
435
- 'listCollections',
436
- 'allowedCollections',
437
- getCollections,
438
- ],
439
- hierarchy: ['databases', 'collections', getHierarchy],
440
- stats: ['databases', getStats],
139
+ function adaptDatabaseInfo(databaseStats) {
140
+ var _a, _b, _c, _d, _e, _f;
141
+ return {
142
+ collection_count: (_a = databaseStats.collections) !== null && _a !== void 0 ? _a : 0,
143
+ document_count: (_b = databaseStats.objects) !== null && _b !== void 0 ? _b : 0,
144
+ index_count: (_c = databaseStats.indexes) !== null && _c !== void 0 ? _c : 0,
145
+ storage_size: (_d = databaseStats.storageSize) !== null && _d !== void 0 ? _d : 0,
146
+ data_size: (_e = databaseStats.dataSize) !== null && _e !== void 0 ? _e : 0,
147
+ index_size: (_f = databaseStats.indexSize) !== null && _f !== void 0 ? _f : 0,
441
148
  };
442
- async_1.default.auto(tasks, function (err, results) {
443
- if (err) {
444
- return done(err);
445
- }
446
- const cleanedResult = lodash_1.omit(results, [
447
- 'db',
448
- 'listDatabases',
449
- 'allowedDatabases',
450
- 'userInfo',
451
- 'listCollections',
452
- 'allowedCollections',
453
- 'cmdLineOpts',
454
- ]);
455
- return done(null, cleanedResult);
456
- });
457
149
  }
458
- function getInstance(client, db, done) {
459
- getInstanceDetail(client, db, function (err, res) {
460
- if (err) {
461
- return done(err);
462
- }
463
- debug('instance.get returning', res);
464
- done(null, res);
465
- });
150
+ exports.adaptDatabaseInfo = adaptDatabaseInfo;
151
+ function adaptCollectionInfo({ db, name, info, options, type, }) {
152
+ const ns = (0, mongodb_ns_1.default)(`${db}.${name}`);
153
+ const { collection, database, system, oplog, command, special, specialish, normal, } = ns;
154
+ const { readOnly } = info !== null && info !== void 0 ? info : {};
155
+ const { collation, viewOn, pipeline, validator, validationAction, validationLevel, } = options !== null && options !== void 0 ? options : {};
156
+ const hasValidation = Boolean(validator || validationAction || validationLevel);
157
+ return {
158
+ _id: ns.toString(),
159
+ name: collection,
160
+ database,
161
+ system,
162
+ oplog,
163
+ command,
164
+ special,
165
+ specialish,
166
+ normal,
167
+ type: type !== null && type !== void 0 ? type : 'collection',
168
+ readonly: readOnly !== null && readOnly !== void 0 ? readOnly : false,
169
+ collation: collation !== null && collation !== void 0 ? collation : null,
170
+ view_on: viewOn !== null && viewOn !== void 0 ? viewOn : null,
171
+ pipeline: pipeline !== null && pipeline !== void 0 ? pipeline : null,
172
+ validation: hasValidation
173
+ ? { validator, validationAction, validationLevel }
174
+ : null,
175
+ };
466
176
  }
467
- exports.getInstance = getInstance;
177
+ exports.adaptCollectionInfo = adaptCollectionInfo;
468
178
  //# sourceMappingURL=instance-detail-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instance-detail-helper.js","sourceRoot":"","sources":["../src/instance-detail-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance-detail-helper.js","sourceRoot":"","sources":["../src/instance-detail-helper.ts"],"names":[],"mappings":";;;;;;AACA,2DAI4B;AAC5B,4DAA8B;AAC9B,kFAAuD;AAEvD,+CAWuB;AAEvB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,yBAAY,EAAC,iBAAiB,CAAC,CAAC;AAgF3C,KAAK,UAAU,WAAW,CAC/B,MAAmB;;IAEnB,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,CACJ,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EACnB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,IAAA,wBAAU,EAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CACtE,mBAAmB,CAAC,IAAI,CAAC,CAC1B;QAED,IAAA,wBAAU,EAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAOvD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QACjC,CAAC,CAAC;QACF,IAAA,wBAAU,EAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAInE,IAAA,wBAAU,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAIrC,IAAA,wBAAU,EAAuD,OAAO,EAAE;YACxE,YAAY,EAAE,CAAC;YACf,2BAA2B,EAAE,CAAC;SAC/B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAEpB,IAAA,wBAAU,EAAC,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACrD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,gBAAgB,CAAC;QACrC,KAAK,EAAE,cAAc,CAAC,eAAe,CAAC;QACtC,IAAI,EAAE,aAAa,CAAC,cAAc,CAAC;QACnC,cAAc,EAAE,uBAAuB,CACrC,eAAe,EACf,oBAAoB,CACrB;QACD,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC;QAC5C,2BAA2B,EACzB,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,2BAA2B,CAAC,OAAO,mCAAI,IAAI;QACjE,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC;KAClD,CAAC;AACJ,CAAC;AAzDD,kCAyDC;AAED,SAAS,YAAY,CACnB,MAAmB,EACnB,gBAAkC;;IAElC,MAAM,SAAS,GAAG,CAAA,MAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,0CAAE,IAAI,KAAI,EAAE,CAAC;IAEtD,IAAI,gBAAgB,CAAC,OAAO,KAAK,EAAE,EAAE;QACnC,OAAO,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChD;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAC9B,SAA6B,EAC7B,WAAsD;IAEtD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAA,sCAAiB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAE5E,OAAO;QACL,SAAS;QACT,MAAM,EAAE,UAAU;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,SAA6B;IACtD,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAA,gCAAW,EAAC,SAAS,CAAC,CAAC;IAEzD,OAAO;QACL,UAAU;QACV,OAAO,EAAE,SAAS;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,gBAAuD;;IAEvD,IAAI,gBAAgB,KAAK,IAAI,EAAE;QAC7B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;KAClD;IAED,MAAM,EACJ,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,GAC5B,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAE9B,OAAO;QACL,IAAI,EAAE,MAAA,kBAAkB,CAAC,CAAC,CAAC,mCAAI,IAAI;QACnC,KAAK,EAAE,sBAAsB;QAC7B,UAAU,EAAE,2BAA2B;KACxC,CAAC;AACJ,CAAC;AAID,SAAgB,oCAAoC,CAClD,8BAEW,IAAI,EACf,kBAAmC,IAAI;IAEvC,MAAM,UAAU,GAAG,2BAA2B,aAA3B,2BAA2B,cAA3B,2BAA2B,GAAI,EAAE,CAAC;IAErD,MAAM,kBAAkB,GACtB,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;QAC3C,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YAChC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC;QACJ,CAAC,CAAC,UAAU,CAAC;IAEjB,MAAM,MAAM,GAAiC,EAAE,CAAC;IAEhD,KAAK,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,kBAAkB,EAAE;QAStD,IACE,OAAO,QAAQ,CAAC,EAAE,KAAK,WAAW;YAClC,OAAO,QAAQ,CAAC,UAAU,KAAK,WAAW,EAC1C;YACA,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;YAEpC,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;gBACd,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;aACtD;iBAAM;gBACL,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;aACxC;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAzCD,oFAyCC;AAED,SAAS,eAAe,CAAC,GAAa;IACpC,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,IAAI,MAAM,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,mBAAmB,CAAI,QAAW;IACzC,OAAO,CAAC,GAAa,EAAE,EAAE;QACvB,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACxB,KAAK,CAAC,6DAA6D,EAAE;gBACnE,GAAG;gBACH,QAAQ;aACT,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAClC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,WAA8B;;IACnD,OAAO;QACL,EAAE,EAAE,MAAA,WAAW,CAAC,EAAE,0CAAE,IAAI;QACxB,SAAS,EAAE,CAAA,MAAA,WAAW,CAAC,EAAE,0CAAE,IAAI;YAC7B,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;YACnC,CAAC,CAAC,SAAS;QACb,cAAc,EAAE,MAAA,WAAW,CAAC,EAAE,0CAAE,OAAO;QACvC,qBAAqB,EAAE,MAAA,WAAW,CAAC,KAAK,0CAAE,aAAa;QACvD,IAAI,EAAE,MAAA,WAAW,CAAC,MAAM,0CAAE,OAAO;QACjC,WAAW,EAAE,CAAC,MAAA,MAAA,WAAW,CAAC,MAAM,0CAAE,SAAS,mCAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;QAC/D,SAAS,EAAE,MAAA,WAAW,CAAC,MAAM,0CAAE,QAAQ;QACvC,aAAa,EACX,QAAQ,CAAC,CAAA,MAAA,WAAW,CAAC,KAAK,0CAAE,eAAe,KAAI,GAAG,EAAE,EAAE,CAAC,GAAG,OAAS;KACtE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,YAAgC;;IACtD,OAAO;QACL,OAAO,EAAE,MAAA,YAAY,CAAC,OAAO,mCAAI,EAAE;QAEnC,YAAY,EAAE,IAAA,iCAAY,EAAC,YAAY,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAgB,iBAAiB,CAC/B,aAAuD;;IAEvD,OAAO;QACL,gBAAgB,EAAE,MAAA,aAAa,CAAC,WAAW,mCAAI,CAAC;QAChD,cAAc,EAAE,MAAA,aAAa,CAAC,OAAO,mCAAI,CAAC;QAC1C,WAAW,EAAE,MAAA,aAAa,CAAC,OAAO,mCAAI,CAAC;QACvC,YAAY,EAAE,MAAA,aAAa,CAAC,WAAW,mCAAI,CAAC;QAC5C,SAAS,EAAE,MAAA,aAAa,CAAC,QAAQ,mCAAI,CAAC;QACtC,UAAU,EAAE,MAAA,aAAa,CAAC,SAAS,mCAAI,CAAC;KACzC,CAAC;AACJ,CAAC;AAXD,8CAWC;AAED,SAAgB,mBAAmB,CAAC,EAClC,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,IAAI,GAEoC;IACxC,MAAM,EAAE,GAAG,IAAA,oBAAI,EAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACjC,MAAM,EACJ,UAAU,EACV,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,EACP,UAAU,EACV,MAAM,GACP,GAAG,EAAE,CAAC;IACP,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;IAChC,MAAM,EACJ,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,eAAe,GAChB,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IAElB,MAAM,aAAa,GAAG,OAAO,CAC3B,SAAS,IAAI,gBAAgB,IAAI,eAAe,CACjD,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,EAAE,CAAC,QAAQ,EAAE;QAClB,IAAI,EAAE,UAAU;QAChB,QAAQ;QACR,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;QACN,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,YAAY;QAC1B,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,KAAK;QAC3B,SAAS,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI;QAC5B,OAAO,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI;QACvB,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI;QAC1B,UAAU,EAAE,aAAa;YACvB,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE;YAClD,CAAC,CAAC,IAAI;KACT,CAAC;AACJ,CAAC;AApDD,kDAoDC"}