mongodb-data-service 21.19.0 → 21.20.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.
package/lib/connect.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import type { ConnectionOptions } from './connection-options';
2
- import DataService from './data-service';
2
+ import type { DataService } from './data-service';
3
3
  export default function connect(connectionOptions: ConnectionOptions): Promise<DataService>;
4
4
  //# sourceMappingURL=connect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,wBAA8B,OAAO,CACnC,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,WAAW,CAAC,CAItB"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,wBAA8B,OAAO,CACnC,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,WAAW,CAAC,CAItB"}
package/lib/connect.js CHANGED
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const data_service_1 = __importDefault(require("./data-service"));
3
+ const data_service_1 = require("./data-service");
7
4
  async function connect(connectionOptions) {
8
- const dataService = new data_service_1.default(connectionOptions);
5
+ const dataService = new data_service_1.DataServiceImpl(connectionOptions);
9
6
  await dataService.connect();
10
7
  return dataService;
11
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;;;;AACA,kEAAyC;AAE1B,KAAK,UAAU,OAAO,CACnC,iBAAoC;IAEpC,MAAM,WAAW,GAAG,IAAI,sBAAW,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC;AAND,0BAMC"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;AAEA,iDAAiD;AAElC,KAAK,UAAU,OAAO,CACnC,iBAAoC;IAEpC,MAAM,WAAW,GAAG,IAAI,8BAAe,CAAC,iBAAiB,CAAC,CAAC;IAC3D,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,WAAW,CAAC;AACrB,CAAC;AAND,0BAMC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection-secrets.d.ts","sourceRoot":"","sources":["../src/connection-secrets.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,wBAAgB,YAAY,CAC1B,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,EACxC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,cAAc,CA4DhB;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG;IACxE,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CA6EA"}
1
+ {"version":3,"file":"connection-secrets.d.ts","sourceRoot":"","sources":["../src/connection-secrets.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,wBAAgB,YAAY,CAC1B,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,EACxC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,cAAc,CA4DhB;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG;IACxE,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CA+EA"}
@@ -115,7 +115,9 @@ function extractSecrets(connectionInfo) {
115
115
  ...kmsProviders.map((p) => `tlsOptions.${p}.tlsCertificateKeyFilePassword`),
116
116
  ];
117
117
  connectionOptions.fleOptions.autoEncryption = lodash_1.default.omit(autoEncryption, secretPaths);
118
- secrets.autoEncryption = lodash_1.default.pick(autoEncryption, secretPaths);
118
+ if (connectionOptions.fleOptions.storeCredentials) {
119
+ secrets.autoEncryption = lodash_1.default.pick(autoEncryption, secretPaths);
120
+ }
119
121
  }
120
122
  return { connectionInfo: connectionInfoWithoutSecrets, secrets };
121
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection-secrets.js","sourceRoot":"","sources":["../src/connection-secrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-secrets.js","sourceRoot":"","sources":["../src/connection-secrets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { MongoClient, Document } from 'mongodb';
2
+ import type { DataService } from './data-service';
3
+ import type { CollectionInfo, CollectionInfoNameOnly } from './run-command';
4
+ export interface CSFLECollectionTracker {
5
+ isUpdateAllowed(ns: string, originalDocument: Document): Promise<boolean>;
6
+ hasKnownSchemaForCollection(ns: string): Promise<boolean>;
7
+ }
8
+ declare type FieldPath = string[];
9
+ interface CSFLECollectionInfo {
10
+ serverEnforcedEncryptedFields?: FieldPath[];
11
+ clientEnforcedEncryptedFields?: FieldPath[];
12
+ hasServerSchema?: boolean;
13
+ lastUpdated?: Date;
14
+ }
15
+ export declare class CSFLECollectionTrackerImpl implements CSFLECollectionTracker {
16
+ _nsToInfo: Map<string, CSFLECollectionInfo>;
17
+ _dataService: Pick<DataService, 'on' | 'listCollections'>;
18
+ _crudClient: MongoClient;
19
+ constructor(dataService: Pick<DataService, 'on' | 'listCollections'>, crudClient: MongoClient);
20
+ isUpdateAllowed(ns: string, originalDocument: Document): Promise<boolean>;
21
+ hasKnownSchemaForCollection(ns: string): Promise<boolean>;
22
+ _processClientSchemaDefinitions(): void;
23
+ _fetchCSFLECollectionInfo(ns: string): Promise<CSFLECollectionInfo>;
24
+ _getCSFLECollectionInfo(ns: string): CSFLECollectionInfo;
25
+ _updateCollectionInfoFromDataService(opts: {
26
+ databaseName: string;
27
+ nameOnly?: boolean;
28
+ }, result: CollectionInfoNameOnly & Partial<CollectionInfo>): void;
29
+ _createHookedMetadataClient(wrappedClient: MongoClient): MongoClient;
30
+ _checkListCollectionsForLibmongocryptResult(dbName: string, filter: Document, collectionInfos: CollectionInfo[]): Error | undefined;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=csfle-collection-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csfle-collection-tracker.d.ts","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,QAAQ,EAET,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EAEvB,MAAM,eAAe,CAAC;AAWvB,MAAM,WAAW,sBAAsB;IAgBrC,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAa1E,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3D;AAMD,aAAK,SAAS,GAAG,MAAM,EAAE,CAAC;AAE1B,UAAU,mBAAmB;IAC3B,6BAA6B,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5C,6BAA6B,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AA2ED,qBAAa,0BAA2B,YAAW,sBAAsB;IACvE,SAAS,mCAA0C;IACnD,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,iBAAiB,CAAC,CAAC;IAC1D,WAAW,EAAE,WAAW,CAAC;gBAGvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,iBAAiB,CAAC,EACxD,UAAU,EAAE,WAAW;IAyBnB,eAAe,CACnB,EAAE,EAAE,MAAM,EACV,gBAAgB,EAAE,QAAQ,GACzB,OAAO,CAAC,OAAO,CAAC;IA+Bb,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/D,+BAA+B,IAAI,IAAI;IAoBjC,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0BzE,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB;IASxD,oCAAoC,CAClC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAClD,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,GACvD,IAAI;IAuBP,2BAA2B,CAAC,aAAa,EAAE,WAAW,GAAG,WAAW;IAmDpE,2CAA2C,CACzC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,EAChB,eAAe,EAAE,cAAc,EAAE,GAChC,KAAK,GAAG,SAAS;CA+CrB"}
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CSFLECollectionTrackerImpl = void 0;
7
+ const mongodb_ns_1 = __importDefault(require("mongodb-ns"));
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
10
+ const { log, mongoLogId } = (0, compass_logging_1.default)('COMPASS-DATA-SERVICE');
11
+ function extractEncryptedFieldsFromSchema(schema) {
12
+ var _a;
13
+ if (schema === null || schema === void 0 ? void 0 : schema.encrypt) {
14
+ return [[]];
15
+ }
16
+ const fields = [];
17
+ for (const [key, subschema] of Object.entries((_a = schema === null || schema === void 0 ? void 0 : schema.properties) !== null && _a !== void 0 ? _a : {})) {
18
+ for (const subfield of extractEncryptedFieldsFromSchema(subschema)) {
19
+ fields.push([key, ...subfield]);
20
+ }
21
+ }
22
+ return fields;
23
+ }
24
+ function extractEncryptedFieldsFromEncryptedFieldsConfig(encryptedFields) {
25
+ var _a;
26
+ return ((_a = encryptedFields === null || encryptedFields === void 0 ? void 0 : encryptedFields.fields) !== null && _a !== void 0 ? _a : []).map((field) => field.path.split('.'));
27
+ }
28
+ function extractEncrytedFieldFromAutoEncryptionOptions(ns, autoEncryption) {
29
+ var _a, _b;
30
+ return [
31
+ ...extractEncryptedFieldsFromSchema((_a = autoEncryption.schemaMap) === null || _a === void 0 ? void 0 : _a[ns]),
32
+ ...extractEncryptedFieldsFromEncryptedFieldsConfig((_b = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.encryptedFieldsMap) === null || _b === void 0 ? void 0 : _b[ns]),
33
+ ];
34
+ }
35
+ function extractEncryptedFieldsFromListCollectionsResult(options) {
36
+ var _a;
37
+ const schema = (_a = options === null || options === void 0 ? void 0 : options.validator) === null || _a === void 0 ? void 0 : _a.$jsonSchema;
38
+ const encryptedFieldsConfig = options === null || options === void 0 ? void 0 : options.encryptedFields;
39
+ return [
40
+ ...extractEncryptedFieldsFromSchema(schema),
41
+ ...extractEncryptedFieldsFromEncryptedFieldsConfig(encryptedFieldsConfig),
42
+ ];
43
+ }
44
+ function extractEncryptedFieldsFromDocument(doc) {
45
+ var _a;
46
+ const decryptedFields = ((_a = doc === null || doc === void 0 ? void 0 : doc[Symbol.for('@@mdb.decryptedKeys')]) !== null && _a !== void 0 ? _a : []).map((field) => [field]);
47
+ for (const [key, value] of Object.entries(doc)) {
48
+ if (!value || typeof value !== 'object') {
49
+ continue;
50
+ }
51
+ const nestedFields = extractEncryptedFieldsFromDocument(value);
52
+ decryptedFields.push(...nestedFields.map((path) => [key, ...path]));
53
+ }
54
+ return decryptedFields;
55
+ }
56
+ function isOlderThan1Minute(oldDate) {
57
+ return Date.now() - oldDate.getTime() >= 60000;
58
+ }
59
+ class CSFLECollectionTrackerImpl {
60
+ constructor(dataService, crudClient) {
61
+ this._nsToInfo = new Map();
62
+ this._dataService = dataService;
63
+ this._crudClient = crudClient;
64
+ this._dataService.on('collectionInfoFetched', this._updateCollectionInfoFromDataService.bind(this));
65
+ this._processClientSchemaDefinitions();
66
+ const { autoEncrypter } = this._crudClient.options;
67
+ if (autoEncrypter) {
68
+ log.info(mongoLogId(1001000118), 'CSFLECollectionTracker', 'Hooking AutoEncrypter metaDataClient property');
69
+ autoEncrypter._metaDataClient = this._createHookedMetadataClient(autoEncrypter._metaDataClient);
70
+ }
71
+ }
72
+ async isUpdateAllowed(ns, originalDocument) {
73
+ var _a, _b;
74
+ const originalDocEncryptedFields = extractEncryptedFieldsFromDocument(originalDocument);
75
+ if (originalDocEncryptedFields.length === 0) {
76
+ return true;
77
+ }
78
+ const info = await this._fetchCSFLECollectionInfo(ns);
79
+ const collectionEncryptedFields = [
80
+ ...((_a = info.serverEnforcedEncryptedFields) !== null && _a !== void 0 ? _a : []),
81
+ ...((_b = info.clientEnforcedEncryptedFields) !== null && _b !== void 0 ? _b : []),
82
+ ];
83
+ for (const originalDocPath of originalDocEncryptedFields) {
84
+ if (!collectionEncryptedFields.some((path) => lodash_1.default.isEqual(originalDocPath, path))) {
85
+ return false;
86
+ }
87
+ }
88
+ return true;
89
+ }
90
+ async hasKnownSchemaForCollection(ns) {
91
+ var _a, _b;
92
+ const info = await this._fetchCSFLECollectionInfo(ns);
93
+ return !!(info.hasServerSchema ||
94
+ ((_a = info.clientEnforcedEncryptedFields) === null || _a === void 0 ? void 0 : _a.length) ||
95
+ ((_b = info.serverEnforcedEncryptedFields) === null || _b === void 0 ? void 0 : _b.length));
96
+ }
97
+ _processClientSchemaDefinitions() {
98
+ var _a, _b;
99
+ const { autoEncryption } = this._crudClient.options;
100
+ for (const ns of [
101
+ ...Object.keys((_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.schemaMap) !== null && _a !== void 0 ? _a : {}),
102
+ ...Object.keys((_b = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.encryptedFieldsMap) !== null && _b !== void 0 ? _b : {}),
103
+ ]) {
104
+ log.info(mongoLogId(1001000119), 'CSFLECollectionTracker', 'Processing client-side schema information', { ns });
105
+ const info = this._getCSFLECollectionInfo(ns);
106
+ info.clientEnforcedEncryptedFields =
107
+ extractEncrytedFieldFromAutoEncryptionOptions(ns, autoEncryption);
108
+ }
109
+ }
110
+ async _fetchCSFLECollectionInfo(ns) {
111
+ const parsedNs = (0, mongodb_ns_1.default)(ns);
112
+ const info = this._getCSFLECollectionInfo(ns);
113
+ if (!info.serverEnforcedEncryptedFields ||
114
+ !info.lastUpdated ||
115
+ isOlderThan1Minute(info.lastUpdated)) {
116
+ log.info(mongoLogId(1001000120), 'CSFLECollectionTracker', 'Refreshing listCollections cache', { ns });
117
+ await this._dataService.listCollections(parsedNs.database, {
118
+ name: parsedNs.collection,
119
+ });
120
+ }
121
+ return info;
122
+ }
123
+ _getCSFLECollectionInfo(ns) {
124
+ const existing = this._nsToInfo.get(ns);
125
+ if (existing)
126
+ return existing;
127
+ const info = {};
128
+ this._nsToInfo.set(ns, info);
129
+ return info;
130
+ }
131
+ _updateCollectionInfoFromDataService(opts, result) {
132
+ var _a, _b;
133
+ if (opts.nameOnly) {
134
+ return;
135
+ }
136
+ const ns = `${opts.databaseName}.${result.name}`;
137
+ log.info(mongoLogId(1001000121), 'CSFLECollectionTracker', 'Processing listCollections update', { ns });
138
+ const info = this._getCSFLECollectionInfo(ns);
139
+ info.serverEnforcedEncryptedFields =
140
+ extractEncryptedFieldsFromListCollectionsResult(result.options);
141
+ info.hasServerSchema = !!((_b = (_a = result.options) === null || _a === void 0 ? void 0 : _a.validator) === null || _b === void 0 ? void 0 : _b.$jsonSchema);
142
+ info.lastUpdated = new Date();
143
+ }
144
+ _createHookedMetadataClient(wrappedClient) {
145
+ return {
146
+ db: (dbName) => {
147
+ return {
148
+ listCollections: (filter, opts) => {
149
+ return {
150
+ toArray: (callback) => {
151
+ wrappedClient
152
+ .db(dbName)
153
+ .listCollections(filter, opts)
154
+ .toArray((err, collectionInfos) => {
155
+ if (!err) {
156
+ err = this._checkListCollectionsForLibmongocryptResult(dbName, filter, (collectionInfos !== null && collectionInfos !== void 0 ? collectionInfos : []));
157
+ if (err) {
158
+ log.error(mongoLogId(1001000122), 'CSFLECollectionTracker', 'Rejecting listCollections in hooked metaDataClient', { error: err.message });
159
+ }
160
+ }
161
+ if (err) {
162
+ callback(err);
163
+ return;
164
+ }
165
+ callback(err, collectionInfos);
166
+ });
167
+ },
168
+ };
169
+ },
170
+ };
171
+ },
172
+ };
173
+ }
174
+ _checkListCollectionsForLibmongocryptResult(dbName, filter, collectionInfos) {
175
+ var _a, _b;
176
+ if (typeof (filter === null || filter === void 0 ? void 0 : filter.name) !== 'string' || collectionInfos.length > 1) {
177
+ return new Error(`[Compass] Unexpected listCollections request on '${dbName}' with name: '${filter === null || filter === void 0 ? void 0 : filter.name}'`);
178
+ }
179
+ const ns = `${dbName}.${filter.name}`;
180
+ const existingInfo = this._getCSFLECollectionInfo(ns);
181
+ if (collectionInfos.length === 0) {
182
+ if ((_a = existingInfo.serverEnforcedEncryptedFields) === null || _a === void 0 ? void 0 : _a.length) {
183
+ return new Error(`[Compass] Missing encrypted field information of collection '${ns}'`);
184
+ }
185
+ return;
186
+ }
187
+ const [info] = collectionInfos;
188
+ if (filter.name !== info.name) {
189
+ return new Error(`[Compass] Unexpected listCollections name mismatch: got ${info.name}, expected ${filter.name}`);
190
+ }
191
+ const newInfo = extractEncryptedFieldsFromListCollectionsResult(info.options);
192
+ for (const expectedEncryptedField of (_b = existingInfo.serverEnforcedEncryptedFields) !== null && _b !== void 0 ? _b : []) {
193
+ if (!newInfo.some((field) => lodash_1.default.isEqual(field, expectedEncryptedField))) {
194
+ return new Error(`[Compass] Missing encrypted field '${expectedEncryptedField.join('.')}' of collection '${ns}' in listCollections result`);
195
+ }
196
+ }
197
+ }
198
+ }
199
+ exports.CSFLECollectionTrackerImpl = CSFLECollectionTrackerImpl;
200
+ //# sourceMappingURL=csfle-collection-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csfle-collection-tracker.js","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,123 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
- import type { AggregateOptions, AggregationCursor, BulkWriteOptions, ClientSession, Collection, CountDocumentsOptions, CreateCollectionOptions, CreateIndexesOptions, DeleteOptions, DeleteResult, Document, EstimatedDocumentCountOptions, ExplainOptions, Filter, FindCursor, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, IndexSpecification, InsertManyResult, InsertOneOptions, InsertOneResult, MongoClientOptions, ReadPreferenceLike, TopologyDescription, TopologyType, UpdateFilter, UpdateOptions, UpdateResult } from 'mongodb';
3
+ import type { AggregateOptions, AggregationCursor, BulkWriteOptions, ClientSession, Collection, CountDocumentsOptions, CreateCollectionOptions, CreateIndexesOptions, DeleteOptions, DeleteResult, Document, EstimatedDocumentCountOptions, Filter, FindCursor, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, IndexSpecification, InsertManyResult, InsertOneOptions, InsertOneResult, MongoClientOptions, ServerClosedEvent, ReadPreferenceLike, ServerDescriptionChangedEvent, ServerHeartbeatFailedEvent, ServerHeartbeatSucceededEvent, ServerOpeningEvent, TopologyClosedEvent, TopologyDescription, TopologyDescriptionChangedEvent, TopologyOpeningEvent, TopologyType, UpdateFilter, UpdateOptions, UpdateResult } from 'mongodb';
4
4
  import ConnectionStringUrl from 'mongodb-connection-string-url';
5
- import type { ConnectionOptions } from './connection-options';
5
+ import type { ConnectionFleOptions, ConnectionOptions } from './connection-options';
6
6
  import type { InstanceDetails } from './instance-detail-helper';
7
7
  import { adaptCollectionInfo, adaptDatabaseInfo } from './instance-detail-helper';
8
+ import type { CollectionInfo, CollectionInfoNameOnly } from './run-command';
8
9
  import type { Callback, CollectionStats } from './types';
9
10
  import type { ConnectionStatusWithPrivileges } from './run-command';
11
+ import type { CSFLECollectionTracker } from './csfle-collection-tracker';
10
12
  declare type ClientType = 'CRUD' | 'META';
11
13
  declare const kSessionClientType: unique symbol;
12
14
  interface CompassClientSession extends ClientSession {
13
15
  [kSessionClientType]: ClientType;
14
16
  }
15
- declare class DataService extends EventEmitter {
17
+ export interface DataServiceEventMap {
18
+ serverDescriptionChanged: (evt: ServerDescriptionChangedEvent) => void;
19
+ serverOpening: (evt: ServerOpeningEvent) => void;
20
+ serverClosed: (evt: ServerClosedEvent) => void;
21
+ topologyOpening: (evt: TopologyOpeningEvent) => void;
22
+ topologyClosed: (evt: TopologyClosedEvent) => void;
23
+ topologyDescriptionChanged: (evt: TopologyDescriptionChangedEvent) => void;
24
+ serverHeartbeatSucceeded: (evt: ServerHeartbeatSucceededEvent) => void;
25
+ serverHeartbeatFailed: (evt: ServerHeartbeatFailedEvent) => void;
26
+ collectionInfoFetched: (opts: {
27
+ databaseName: string;
28
+ nameOnly?: boolean;
29
+ }, result: CollectionInfoNameOnly & Partial<CollectionInfo>) => void;
30
+ }
31
+ export interface DataService {
32
+ on<K extends keyof DataServiceEventMap>(event: K, listener: DataServiceEventMap[K]): this;
33
+ once<K extends keyof DataServiceEventMap>(event: K, listener: DataServiceEventMap[K]): this;
34
+ emit<K extends keyof DataServiceEventMap>(event: K, ...args: DataServiceEventMap[K] extends (...args: infer P) => any ? P : never): unknown;
35
+ getMongoClientConnectionOptions(): {
36
+ url: string;
37
+ options: MongoClientOptions;
38
+ } | undefined;
39
+ getConnectionOptions(): Readonly<ConnectionOptions>;
40
+ getConnectionString(): ConnectionStringUrl;
41
+ getReadPreference(): ReadPreferenceLike;
42
+ setCSFLEEnabled(enabled: boolean): void;
43
+ collection(ns: string, options: unknown, callback: Callback<Document>): void;
44
+ collections(databaseName: string, callback: Callback<CollectionStats[]>): void;
45
+ collectionStats(databaseName: string, collectionName: string, callback: Callback<CollectionStats>): void;
46
+ collectionInfo(dbName: string, collName: string): Promise<ReturnType<typeof adaptCollectionInfo> | null>;
47
+ command(databaseName: string, comm: Document, callback: Callback<Document>): void;
48
+ isWritable(): boolean;
49
+ isMongos(): boolean;
50
+ currentTopologyType(): TopologyType;
51
+ connectionStatus(): Promise<ConnectionStatusWithPrivileges>;
52
+ listCollections(databaseName: string, filter?: Document, options?: {
53
+ nameOnly?: true;
54
+ privileges?: ConnectionStatusWithPrivileges['authInfo']['authenticatedUserPrivileges'] | null;
55
+ }): Promise<ReturnType<typeof adaptCollectionInfo>[]>;
56
+ listDatabases(options?: {
57
+ nameOnly?: true;
58
+ privileges?: ConnectionStatusWithPrivileges['authInfo']['authenticatedUserPrivileges'] | null;
59
+ roles?: ConnectionStatusWithPrivileges['authInfo']['authenticatedUserRoles'] | null;
60
+ }): Promise<{
61
+ _id: string;
62
+ name: string;
63
+ }[]>;
64
+ connect(): Promise<void>;
65
+ estimatedCount(ns: string, options: EstimatedDocumentCountOptions, callback: Callback<number>): void;
66
+ count(ns: string, filter: Filter<Document>, options: CountDocumentsOptions, callback: Callback<number>): void;
67
+ createCollection(ns: string, options: CreateCollectionOptions, callback: Callback<Collection<Document>>): void;
68
+ createIndex(ns: string, spec: IndexSpecification, options: CreateIndexesOptions, callback: Callback<string>): void;
69
+ database(name: string, options: unknown, callback: Callback<Document>): void;
70
+ deleteOne(ns: string, filter: Filter<Document>, options: DeleteOptions, callback: Callback<DeleteResult>): void;
71
+ deleteMany(ns: string, filter: Filter<Document>, options: DeleteOptions, callback: Callback<DeleteResult>): void;
72
+ disconnect(): Promise<void>;
73
+ dropCollection(ns: string, callback: Callback<boolean>): void;
74
+ dropDatabase(name: string, callback: Callback<boolean>): void;
75
+ dropIndex(ns: string, name: string, callback: Callback<Document>): void;
76
+ aggregate(ns: string, pipeline: Document[], options?: AggregateOptions): AggregationCursor;
77
+ aggregate(ns: string, pipeline: Document[], callback: Callback<AggregationCursor>): void;
78
+ aggregate(ns: string, pipeline: Document[], options: AggregateOptions | undefined, callback: Callback<AggregationCursor>): void;
79
+ find(ns: string, filter: Filter<Document>, options: FindOptions, callback: Callback<Document[]>): void;
80
+ fetch(ns: string, filter: Filter<Document>, options: FindOptions): FindCursor;
81
+ findOneAndReplace(ns: string, filter: Filter<Document>, replacement: Document, options: FindOneAndReplaceOptions, callback: Callback<Document>): void;
82
+ findOneAndUpdate(ns: string, filter: Filter<Document>, update: Document, options: FindOneAndUpdateOptions, callback: Callback<Document>): void;
83
+ explain(ns: string, filter: Filter<Document>, options: FindOptions, callback: Callback<Document>): void;
84
+ indexes(ns: string, options: unknown, callback: Callback<Document>): void;
85
+ instance(): Promise<InstanceDetails>;
86
+ insertOne(ns: string, doc: Document, options: InsertOneOptions, callback: Callback<InsertOneResult<Document>>): void;
87
+ insertMany(ns: string, docs: Document[], options: BulkWriteOptions, callback: Callback<InsertManyResult<Document>>): void;
88
+ putMany(ns: string, docs: Document[], options: BulkWriteOptions): Promise<InsertManyResult<Document>>;
89
+ updateCollection(ns: string, flags: Document & {
90
+ collMod?: never;
91
+ }, callback: Callback<Document>): void;
92
+ updateOne(ns: string, filter: Filter<Document>, update: Document | UpdateFilter<Document>, options: UpdateOptions, callback: Callback<Document>): void;
93
+ updateMany(ns: string, filter: Filter<Document>, update: UpdateFilter<Document>, options: UpdateOptions, callback: Callback<Document | UpdateResult>): void;
94
+ currentOp(includeAll: boolean, callback: Callback<Document>): void;
95
+ getLastSeenTopology(): null | TopologyDescription;
96
+ serverstats(callback: Callback<Document>): void;
97
+ top(callback: Callback<Document>): void;
98
+ createView(name: string, sourceNs: string, pipeline: Document[], options: CreateCollectionOptions, callback: Callback<Collection<Document>>): void;
99
+ updateView(name: string, sourceNs: string, pipeline: Document[], options: Document, callback: Callback<Document>): void;
100
+ dropView(ns: string, callback: Callback<boolean>): void;
101
+ sample(ns: string, args?: {
102
+ query?: Filter<Document>;
103
+ size?: number;
104
+ fields?: Document;
105
+ }, options?: AggregateOptions): AggregationCursor;
106
+ startSession(clientType: ClientType): CompassClientSession;
107
+ killSessions(sessions: CompassClientSession | CompassClientSession[]): Promise<Document>;
108
+ isConnected(): boolean;
109
+ databaseStats(name: string): Promise<ReturnType<typeof adaptDatabaseInfo> & {
110
+ name: string;
111
+ }>;
112
+ }
113
+ export declare class DataServiceImpl extends EventEmitter implements DataService {
16
114
  private readonly _connectionOptions;
17
115
  private _isConnecting;
18
116
  private _mongoClientConnectionOptions?;
19
117
  private _metadataClient?;
20
118
  private _crudClient?;
119
+ private _useCRUDClient;
120
+ private _csfleCollectionTracker?;
21
121
  private _tunnel?;
22
122
  private _lastSeenTopology;
23
123
  private _isWritable;
@@ -32,6 +132,8 @@ declare class DataService extends EventEmitter {
32
132
  getConnectionOptions(): Readonly<ConnectionOptions>;
33
133
  getConnectionString(): ConnectionStringUrl;
34
134
  getReadPreference(): ReadPreferenceLike;
135
+ setCSFLEEnabled(enabled: boolean): void;
136
+ getCSFLEMode(): 'enabled' | 'disabled' | 'unavailable';
35
137
  collection(ns: string, options: unknown, callback: Callback<Document>): void;
36
138
  collections(databaseName: string, callback: Callback<CollectionStats[]>): void;
37
139
  collectionStats(databaseName: string, collectionName: string, callback: Callback<CollectionStats>): void;
@@ -42,13 +144,15 @@ declare class DataService extends EventEmitter {
42
144
  currentTopologyType(): TopologyType;
43
145
  connectionStatus(): Promise<ConnectionStatusWithPrivileges>;
44
146
  private _getPrivilegesOrFallback;
147
+ private _getRolesOrFallback;
45
148
  listCollections(databaseName: string, filter?: Document, { nameOnly, privileges, }?: {
46
149
  nameOnly?: true;
47
150
  privileges?: ConnectionStatusWithPrivileges['authInfo']['authenticatedUserPrivileges'] | null;
48
151
  }): Promise<ReturnType<typeof adaptCollectionInfo>[]>;
49
- listDatabases({ nameOnly, privileges, }?: {
152
+ listDatabases({ nameOnly, privileges, roles, }?: {
50
153
  nameOnly?: true;
51
154
  privileges?: ConnectionStatusWithPrivileges['authInfo']['authenticatedUserPrivileges'] | null;
155
+ roles?: ConnectionStatusWithPrivileges['authInfo']['authenticatedUserRoles'] | null;
52
156
  }): Promise<{
53
157
  _id: string;
54
158
  name: string;
@@ -72,7 +176,7 @@ declare class DataService extends EventEmitter {
72
176
  fetch(ns: string, filter: Filter<Document>, options: FindOptions): FindCursor;
73
177
  findOneAndReplace(ns: string, filter: Filter<Document>, replacement: Document, options: FindOneAndReplaceOptions, callback: Callback<Document>): void;
74
178
  findOneAndUpdate(ns: string, filter: Filter<Document>, update: Document, options: FindOneAndUpdateOptions, callback: Callback<Document>): void;
75
- explain(ns: string, filter: Filter<Document>, options: ExplainOptions, callback: Callback<Document>): void;
179
+ explain(ns: string, filter: Filter<Document>, options: FindOptions, callback: Callback<Document>): void;
76
180
  indexes(ns: string, options: unknown, callback: Callback<Document>): void;
77
181
  instance(): Promise<InstanceDetails>;
78
182
  insertOne(ns: string, doc: Document, options: InsertOneOptions, callback: Callback<InsertOneResult<Document>>): void;
@@ -100,6 +204,7 @@ declare class DataService extends EventEmitter {
100
204
  isConnected(): boolean;
101
205
  private setupListeners;
102
206
  private _initializedClient;
207
+ getCSFLECollectionTracker(): CSFLECollectionTracker;
103
208
  databaseStats(name: string): Promise<ReturnType<typeof adaptDatabaseInfo> & {
104
209
  name: string;
105
210
  }>;
@@ -114,6 +219,12 @@ declare class DataService extends EventEmitter {
114
219
  private _translateMessage;
115
220
  private _cleanup;
116
221
  private _startLogOp;
222
+ _csfleLogInformation(fleOptions?: Readonly<ConnectionFleOptions>): {
223
+ storeCredentials: boolean;
224
+ schemaMapNamespaces: string[];
225
+ keyVaultNamespace: string | undefined;
226
+ kmsProviders: string[];
227
+ } | null;
117
228
  }
118
229
  export default DataService;
119
230
  //# sourceMappingURL=data-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-service.d.ts","sourceRoot":"","sources":["../src/data-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-service.d.ts","sourceRoot":"","sources":["../src/data-service.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ 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.DataServiceImpl = void 0;
6
7
  const util_1 = require("util");
7
8
  const async_1 = __importDefault(require("async"));
8
9
  const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
@@ -14,6 +15,7 @@ const instance_detail_helper_1 = require("./instance-detail-helper");
14
15
  const redact_1 = require("./redact");
15
16
  const connect_mongo_client_1 = __importDefault(require("./connect-mongo-client"));
16
17
  const run_command_1 = require("./run-command");
18
+ const csfle_collection_tracker_1 = require("./csfle-collection-tracker");
17
19
  const { fetch: getIndexes } = require('mongodb-index-model');
18
20
  const { log, mongoLogId, debug } = (0, compass_logging_1.default)('COMPASS-DATA-SERVICE');
19
21
  function uniqueBy(values, key) {
@@ -24,10 +26,11 @@ function isEmptyObject(obj) {
24
26
  }
25
27
  let id = 0;
26
28
  const kSessionClientType = Symbol('kSessionClientType');
27
- class DataService extends events_1.EventEmitter {
29
+ class DataServiceImpl extends events_1.EventEmitter {
28
30
  constructor(connectionOptions) {
29
31
  super();
30
32
  this._isConnecting = false;
33
+ this._useCRUDClient = true;
31
34
  this._lastSeenTopology = null;
32
35
  this._isWritable = false;
33
36
  this._topologyType = 'Unknown';
@@ -49,6 +52,25 @@ class DataService extends events_1.EventEmitter {
49
52
  getReadPreference() {
50
53
  return this._initializedClient('CRUD').readPreference;
51
54
  }
55
+ setCSFLEEnabled(enabled) {
56
+ log.info(mongoLogId(1001000117), this._logCtx(), 'Setting CSFLE mode', {
57
+ enabled,
58
+ });
59
+ this._useCRUDClient = enabled;
60
+ }
61
+ getCSFLEMode() {
62
+ if (this._crudClient && (0, instance_detail_helper_1.checkIsCSFLEConnection)(this._crudClient)) {
63
+ if (this._useCRUDClient) {
64
+ return 'enabled';
65
+ }
66
+ else {
67
+ return 'disabled';
68
+ }
69
+ }
70
+ else {
71
+ return 'unavailable';
72
+ }
73
+ }
52
74
  collection(ns, options, callback) {
53
75
  async_1.default.parallel({
54
76
  stats: this.collectionStats.bind(this, this._databaseName(ns), this._collectionName(ns)),
@@ -136,12 +158,25 @@ class DataService extends events_1.EventEmitter {
136
158
  const { authInfo: { authenticatedUserPrivileges }, } = await this.connectionStatus();
137
159
  return authenticatedUserPrivileges;
138
160
  }
161
+ async _getRolesOrFallback(roles = null) {
162
+ if (roles) {
163
+ return roles;
164
+ }
165
+ const { authInfo: { authenticatedUserRoles }, } = await this.connectionStatus();
166
+ return authenticatedUserRoles;
167
+ }
139
168
  async listCollections(databaseName, filter = {}, { nameOnly, privileges = null, } = {}) {
140
169
  const logop = this._startLogOp(mongoLogId(1001000032), 'Running listCollections', { db: databaseName, nameOnly: nameOnly !== null && nameOnly !== void 0 ? nameOnly : false });
141
170
  const db = this._initializedClient('CRUD').db(databaseName);
142
171
  const listCollections = async () => {
143
172
  try {
144
- return await db.listCollections(filter, { nameOnly }).toArray();
173
+ const cursor = db.listCollections(filter, { nameOnly });
174
+ const results = [];
175
+ for await (const result of cursor) {
176
+ this.emit('collectionInfoFetched', { databaseName, nameOnly }, result);
177
+ results.push(result);
178
+ }
179
+ return results;
145
180
  }
146
181
  catch (err) {
147
182
  log.warn(mongoLogId(1001000099), this._logCtx(), 'Failed to run listCollections', { message: err.message });
@@ -168,7 +203,7 @@ class DataService extends events_1.EventEmitter {
168
203
  throw err;
169
204
  }
170
205
  }
171
- async listDatabases({ nameOnly, privileges = null, } = {}) {
206
+ async listDatabases({ nameOnly, privileges = null, roles = null, } = {}) {
172
207
  const logop = this._startLogOp(mongoLogId(1001000033), 'Running listDatabases', { nameOnly: nameOnly !== null && nameOnly !== void 0 ? nameOnly : false });
173
208
  const adminDb = this._initializedClient('CRUD').db('admin');
174
209
  const listDatabases = async () => {
@@ -190,12 +225,17 @@ class DataService extends events_1.EventEmitter {
190
225
  .filter(Boolean)
191
226
  .map((name) => ({ name }));
192
227
  };
228
+ const getDatabasesFromRoles = async () => {
229
+ const databases = (0, instance_detail_helper_1.getDatabasesByRoles)(await this._getRolesOrFallback(roles), ['read', 'readWrite', 'dbAdmin', 'dbOwner']);
230
+ return databases.map((name) => ({ name }));
231
+ };
193
232
  try {
194
- const [listedDatabases, databasesFromPrivileges] = await Promise.all([
233
+ const [listedDatabases, databasesFromPrivileges, databasesFromRoles] = await Promise.all([
195
234
  listDatabases(),
196
235
  getDatabasesFromPrivileges(),
236
+ getDatabasesFromRoles(),
197
237
  ]);
198
- const databases = uniqueBy([...databasesFromPrivileges, ...listedDatabases], 'name').map((db) => {
238
+ const databases = uniqueBy([...databasesFromRoles, ...databasesFromPrivileges, ...listedDatabases], 'name').map((db) => {
199
239
  return { _id: db.name, name: db.name, ...(0, instance_detail_helper_1.adaptDatabaseInfo)(db) };
200
240
  });
201
241
  logop(null, { databasesCount: databases.length });
@@ -219,6 +259,7 @@ class DataService extends events_1.EventEmitter {
219
259
  this._isConnecting = true;
220
260
  log.info(mongoLogId(1001000014), this._logCtx(), 'Connecting', {
221
261
  url: (0, redact_1.redactConnectionString)(this._connectionOptions.connectionString),
262
+ csfle: this._csfleLogInformation(this._connectionOptions.fleOptions),
222
263
  });
223
264
  try {
224
265
  const [metadataClient, crudClient, tunnel, connectionOptions] = await (0, connect_mongo_client_1.default)(this._connectionOptions, this.setupListeners.bind(this));
@@ -232,6 +273,7 @@ class DataService extends events_1.EventEmitter {
232
273
  this._crudClient = crudClient;
233
274
  this._tunnel = tunnel;
234
275
  this._mongoClientConnectionOptions = connectionOptions;
276
+ this._csfleCollectionTracker = new csfle_collection_tracker_1.CSFLECollectionTrackerImpl(this, this._crudClient);
235
277
  }
236
278
  finally {
237
279
  this._isConnecting = false;
@@ -427,7 +469,10 @@ class DataService extends events_1.EventEmitter {
427
469
  }
428
470
  async instance() {
429
471
  try {
430
- const instanceData = await (0, instance_detail_helper_1.getInstance)(this._initializedClient('META'));
472
+ const instanceData = {
473
+ ...(await (0, instance_detail_helper_1.getInstance)(this._initializedClient('META'))),
474
+ csfleMode: this.getCSFLEMode(),
475
+ };
431
476
  log.info(mongoLogId(1001000024), this._logCtx(), 'Fetched instance information', {
432
477
  serverVersion: instanceData.build.version,
433
478
  genuineMongoDB: instanceData.genuineMongoDB,
@@ -768,12 +813,20 @@ class DataService extends events_1.EventEmitter {
768
813
  if (type !== 'CRUD' && type !== 'META') {
769
814
  throw new Error(`Invalid client type: ${type}`);
770
815
  }
771
- const client = type === 'CRUD' ? this._crudClient : this._metadataClient;
816
+ const client = type === 'CRUD' && this._useCRUDClient
817
+ ? this._crudClient
818
+ : this._metadataClient;
772
819
  if (!client) {
773
820
  throw new Error('Client not yet initialized');
774
821
  }
775
822
  return client;
776
823
  }
824
+ getCSFLECollectionTracker() {
825
+ if (!this._csfleCollectionTracker) {
826
+ throw new Error('Client not yet initialized');
827
+ }
828
+ return this._csfleCollectionTracker;
829
+ }
777
830
  async databaseStats(name) {
778
831
  const logop = this._startLogOp(mongoLogId(1001000057), 'Running databaseStats', { db: name });
779
832
  try {
@@ -897,6 +950,19 @@ class DataService extends events_1.EventEmitter {
897
950
  }
898
951
  };
899
952
  }
953
+ _csfleLogInformation(fleOptions) {
954
+ var _a, _b, _c, _d;
955
+ if (!fleOptions || !(0, instance_detail_helper_1.hasAnyKMSProvider)(fleOptions.autoEncryption))
956
+ return null;
957
+ return {
958
+ storeCredentials: fleOptions.storeCredentials,
959
+ schemaMapNamespaces: Object.keys((_b = (_a = fleOptions.autoEncryption) === null || _a === void 0 ? void 0 : _a.schemaMap) !== null && _b !== void 0 ? _b : {}),
960
+ keyVaultNamespace: fleOptions.autoEncryption.keyVaultNamespace,
961
+ kmsProviders: Object.entries((_d = (_c = fleOptions.autoEncryption) === null || _c === void 0 ? void 0 : _c.kmsProviders) !== null && _d !== void 0 ? _d : {})
962
+ .filter(([, kmsOptions]) => Object.values(kmsOptions).filter(Boolean).length > 0)
963
+ .map(([kmsProviderName]) => kmsProviderName),
964
+ };
965
+ }
900
966
  }
901
- exports.default = DataService;
967
+ exports.DataServiceImpl = DataServiceImpl;
902
968
  //# sourceMappingURL=data-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-service.js","sourceRoot":"","sources":["../src/data-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-service.js","sourceRoot":"","sources":["../src/data-service.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -3,8 +3,8 @@ import { ConnectionInfo, ConnectionFavoriteOptions } from './connection-info';
3
3
  import { ConnectionOptions } from './connection-options';
4
4
  import { ConnectionStorage, promisifyAmpersandMethod } from './connection-storage';
5
5
  import { getConnectionTitle } from './connection-title';
6
- import DataService from './data-service';
6
+ import { DataService, DataServiceImpl } from './data-service';
7
7
  import { convertConnectionModelToInfo, convertConnectionInfoToModel } from './legacy/legacy-connection-model';
8
8
  import { ConnectionSecrets, extractSecrets, mergeSecrets } from './connection-secrets';
9
- export { ConnectionInfo, ConnectionFavoriteOptions, ConnectionOptions, ConnectionStorage, DataService, connect, getConnectionTitle, convertConnectionModelToInfo, convertConnectionInfoToModel, ConnectionSecrets, extractSecrets, mergeSecrets, promisifyAmpersandMethod, };
9
+ export { ConnectionInfo, ConnectionFavoriteOptions, ConnectionOptions, ConnectionStorage, DataService, DataServiceImpl, connect, getConnectionTitle, convertConnectionModelToInfo, convertConnectionInfoToModel, ConnectionSecrets, extractSecrets, mergeSecrets, promisifyAmpersandMethod, };
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,wBAAwB,GACzB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,OAAO,EACP,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,wBAAwB,GACzB,CAAC"}
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@ 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.promisifyAmpersandMethod = exports.mergeSecrets = exports.extractSecrets = exports.convertConnectionInfoToModel = exports.convertConnectionModelToInfo = exports.getConnectionTitle = exports.connect = exports.DataService = exports.ConnectionStorage = void 0;
6
+ exports.promisifyAmpersandMethod = exports.mergeSecrets = exports.extractSecrets = exports.convertConnectionInfoToModel = exports.convertConnectionModelToInfo = exports.getConnectionTitle = exports.connect = exports.DataServiceImpl = exports.ConnectionStorage = void 0;
7
7
  const connect_1 = __importDefault(require("./connect"));
8
8
  exports.connect = connect_1.default;
9
9
  const connection_storage_1 = require("./connection-storage");
@@ -11,8 +11,8 @@ Object.defineProperty(exports, "ConnectionStorage", { enumerable: true, get: fun
11
11
  Object.defineProperty(exports, "promisifyAmpersandMethod", { enumerable: true, get: function () { return connection_storage_1.promisifyAmpersandMethod; } });
12
12
  const connection_title_1 = require("./connection-title");
13
13
  Object.defineProperty(exports, "getConnectionTitle", { enumerable: true, get: function () { return connection_title_1.getConnectionTitle; } });
14
- const data_service_1 = __importDefault(require("./data-service"));
15
- exports.DataService = data_service_1.default;
14
+ const data_service_1 = require("./data-service");
15
+ Object.defineProperty(exports, "DataServiceImpl", { enumerable: true, get: function () { return data_service_1.DataServiceImpl; } });
16
16
  const legacy_connection_model_1 = require("./legacy/legacy-connection-model");
17
17
  Object.defineProperty(exports, "convertConnectionModelToInfo", { enumerable: true, get: function () { return legacy_connection_model_1.convertConnectionModelToInfo; } });
18
18
  Object.defineProperty(exports, "convertConnectionInfoToModel", { enumerable: true, get: function () { return legacy_connection_model_1.convertConnectionInfoToModel; } });
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAyB9B,kBAzBK,iBAAO,CAyBL;AAtBT,6DAG8B;AAiB5B,kGAnBA,sCAAiB,OAmBA;AASjB,yGA3BA,6CAAwB,OA2BA;AAzB1B,yDAAwD;AAmBtD,mGAnBO,qCAAkB,OAmBP;AAlBpB,kEAAyC;AAgBvC,sBAhBK,sBAAW,CAgBL;AAfb,8EAG0C;AAexC,6GAjBA,sDAA4B,OAiBA;AAC5B,6GAjBA,sDAA4B,OAiBA;AAf9B,6DAI8B;AAa5B,+FAfA,mCAAc,OAeA;AACd,6FAfA,iCAAY,OAeA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AA0B9B,kBA1BK,iBAAO,CA0BL;AAvBT,6DAG8B;AAiB5B,kGAnBA,sCAAiB,OAmBA;AAUjB,yGA5BA,6CAAwB,OA4BA;AA1B1B,yDAAwD;AAoBtD,mGApBO,qCAAkB,OAoBP;AAnBpB,iDAA8D;AAiB5D,gGAjBoB,8BAAe,OAiBpB;AAhBjB,8EAG0C;AAgBxC,6GAlBA,sDAA4B,OAkBA;AAC5B,6GAlBA,sDAA4B,OAkBA;AAhB9B,6DAI8B;AAc5B,+FAhBA,mCAAc,OAgBA;AACd,6FAhBA,iCAAY,OAgBA"}
@@ -1,4 +1,4 @@
1
- import type { MongoClient, Document } from 'mongodb';
1
+ import type { MongoClient, Document, MongoClientOptions, AutoEncryptionOptions } from 'mongodb';
2
2
  import type { CollectionInfo, CollectionInfoNameOnly, ConnectionStatusWithPrivileges, DatabaseInfo, DbStats } from './run-command';
3
3
  declare type BuildInfoDetails = {
4
4
  isEnterprise: boolean;
@@ -34,6 +34,7 @@ declare type CollectionDetails = {
34
34
  specialish: boolean;
35
35
  normal: boolean;
36
36
  readonly: boolean;
37
+ clustered: boolean;
37
38
  collation: Document | null;
38
39
  view_on: string | null;
39
40
  pipeline: Document[] | null;
@@ -66,10 +67,16 @@ export declare type InstanceDetails = {
66
67
  dataLake: DataLakeDetails;
67
68
  featureCompatibilityVersion: string | null;
68
69
  isAtlas: boolean;
70
+ csfleMode: 'enabled' | 'disabled' | 'unavailable';
69
71
  };
70
- export declare function getInstance(client: MongoClient): Promise<InstanceDetails>;
72
+ export declare function getInstance(client: MongoClient): Promise<Omit<InstanceDetails, 'csfleMode'>>;
73
+ export declare function checkIsCSFLEConnection(client: {
74
+ options: MongoClientOptions;
75
+ }): boolean;
76
+ export declare function hasAnyKMSProvider(autoEncryption?: AutoEncryptionOptions): boolean;
71
77
  declare type DatabaseCollectionPrivileges = Record<string, Record<string, string[]>>;
72
78
  export declare function getPrivilegesByDatabaseAndCollection(authenticatedUserPrivileges?: ConnectionStatusWithPrivileges['authInfo']['authenticatedUserPrivileges'] | null, requiredActions?: string[] | null): DatabaseCollectionPrivileges;
79
+ export declare function getDatabasesByRoles(authenticatedUserRoles?: ConnectionStatusWithPrivileges['authInfo']['authenticatedUserRoles'] | null, possibleRoles?: string[] | null): string[];
73
80
  export declare function adaptDatabaseInfo(databaseStats: Partial<DbStats> & Partial<DatabaseInfo>): Omit<DatabaseDetails, '_id' | 'collections' | 'name'>;
74
81
  export declare function adaptCollectionInfo({ db, name, info, options, type, }: CollectionInfoNameOnly & Partial<CollectionInfo> & {
75
82
  db: string;
@@ -1 +1 @@
1
- {"version":3,"file":"instance-detail-helper.d.ts","sourceRoot":"","sources":["../src/instance-detail-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance-detail-helper.d.ts","sourceRoot":"","sources":["../src/instance-detail-helper.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ 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.adaptCollectionInfo = exports.adaptDatabaseInfo = exports.getPrivilegesByDatabaseAndCollection = exports.getInstance = void 0;
6
+ exports.adaptCollectionInfo = exports.adaptDatabaseInfo = exports.getDatabasesByRoles = exports.getPrivilegesByDatabaseAndCollection = exports.hasAnyKMSProvider = exports.checkIsCSFLEConnection = exports.getInstance = void 0;
7
7
  const mongodb_build_info_1 = require("mongodb-build-info");
8
8
  const mongodb_ns_1 = __importDefault(require("mongodb-ns"));
9
9
  const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
@@ -46,6 +46,18 @@ function checkIsAtlas(client, atlasVersionInfo) {
46
46
  }
47
47
  return true;
48
48
  }
49
+ function checkIsCSFLEConnection(client) {
50
+ var _a;
51
+ return hasAnyKMSProvider((_a = client.options) === null || _a === void 0 ? void 0 : _a.autoEncryption);
52
+ }
53
+ exports.checkIsCSFLEConnection = checkIsCSFLEConnection;
54
+ function hasAnyKMSProvider(autoEncryption) {
55
+ const kmsProviders = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders;
56
+ return (Object.values(kmsProviders !== null && kmsProviders !== void 0 ? kmsProviders : {})
57
+ .flatMap((kms) => Object.values(kms))
58
+ .filter(Boolean).length > 0);
59
+ }
60
+ exports.hasAnyKMSProvider = hasAnyKMSProvider;
49
61
  function buildGenuineMongoDBInfo(buildInfo, cmdLineOpts) {
50
62
  const { isGenuine, serverName } = (0, mongodb_build_info_1.getGenuineMongoDB)(buildInfo, cmdLineOpts);
51
63
  return {
@@ -95,6 +107,20 @@ function getPrivilegesByDatabaseAndCollection(authenticatedUserPrivileges = null
95
107
  return result;
96
108
  }
97
109
  exports.getPrivilegesByDatabaseAndCollection = getPrivilegesByDatabaseAndCollection;
110
+ function getDatabasesByRoles(authenticatedUserRoles = null, possibleRoles = null) {
111
+ const roles = authenticatedUserRoles !== null && authenticatedUserRoles !== void 0 ? authenticatedUserRoles : [];
112
+ const results = new Set();
113
+ const filteredRoles = possibleRoles && possibleRoles.length > 0
114
+ ? roles.filter(({ role }) => {
115
+ return possibleRoles.includes(role);
116
+ })
117
+ : roles;
118
+ for (const { db } of filteredRoles) {
119
+ results.add(db);
120
+ }
121
+ return [...results];
122
+ }
123
+ exports.getDatabasesByRoles = getDatabasesByRoles;
98
124
  function isNotAuthorized(err) {
99
125
  if (!err) {
100
126
  return false;
@@ -152,7 +178,7 @@ function adaptCollectionInfo({ db, name, info, options, type, }) {
152
178
  const ns = (0, mongodb_ns_1.default)(`${db}.${name}`);
153
179
  const { collection, database, system, oplog, command, special, specialish, normal, } = ns;
154
180
  const { readOnly } = info !== null && info !== void 0 ? info : {};
155
- const { collation, viewOn, pipeline, validator, validationAction, validationLevel, } = options !== null && options !== void 0 ? options : {};
181
+ const { collation, viewOn, pipeline, validator, validationAction, validationLevel, clusteredIndex, } = options !== null && options !== void 0 ? options : {};
156
182
  const hasValidation = Boolean(validator || validationAction || validationLevel);
157
183
  return {
158
184
  _id: ns.toString(),
@@ -169,6 +195,7 @@ function adaptCollectionInfo({ db, name, info, options, type, }) {
169
195
  collation: collation !== null && collation !== void 0 ? collation : null,
170
196
  view_on: viewOn !== null && viewOn !== void 0 ? viewOn : null,
171
197
  pipeline: pipeline !== null && pipeline !== void 0 ? pipeline : null,
198
+ clustered: clusteredIndex ? true : false,
172
199
  validation: hasValidation
173
200
  ? { validator, validationAction, validationLevel }
174
201
  : null,
@@ -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":"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"}
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "email": "compass@mongodb.com"
8
8
  },
9
9
  "homepage": "https://github.com/mongodb-js/compass",
10
- "version": "21.19.0",
10
+ "version": "21.20.0",
11
11
  "repository": {
12
12
  "type": "git",
13
13
  "url": "https://github.com/mongodb-js/compass.git"
@@ -20,11 +20,14 @@
20
20
  "mongodb-js"
21
21
  ],
22
22
  "main": "lib/index.js",
23
+ "compass:main": "src/index.ts",
23
24
  "exports": {
24
- "webpack": "./src/index.ts",
25
25
  "require": "./lib/index.js",
26
26
  "import": "./lib/.esm-wrapper.mjs"
27
27
  },
28
+ "compass:exports": {
29
+ ".": "./src/index.ts"
30
+ },
28
31
  "types": "./lib/index.d.ts",
29
32
  "files": [
30
33
  "lib",
@@ -47,6 +50,9 @@
47
50
  "test": "mocha",
48
51
  "test-connectivity": "mocha ./src/connect.spec.ts",
49
52
  "posttest": "mongodb-runner stop --port=27018",
53
+ "pretest-csfle": "mongodb-runner start --enterprise --mongodb-version \">=6.0.0-rc1\" --topology=replicaset --secondaries=0 --port=27018",
54
+ "test-csfle": "mocha ./src/csfle-collection-tracker.spec.ts",
55
+ "posttest-csfle": "mongodb-runner stop --enterprise --mongodb-version \">=6.0.0-rc1\" --topology=replicaset --secondaries=0 --port=27018",
50
56
  "test-cov": "nyc -x \"**/*.spec.*\" --reporter=lcov --reporter=text --reporter=html npm run test",
51
57
  "test-watch": "npm run test -- --watch",
52
58
  "test-ci": "npm run test-cov",
@@ -57,22 +63,22 @@
57
63
  "mongodb": "^4.4.0"
58
64
  },
59
65
  "dependencies": {
60
- "@mongodb-js/compass-logging": "^0.10.0",
61
- "@mongodb-js/devtools-connect": "^1.2.4",
62
- "@mongodb-js/ssh-tunnel": "^1.5.0",
66
+ "@mongodb-js/compass-logging": "^0.11.0",
67
+ "@mongodb-js/devtools-connect": "^1.3.1",
68
+ "@mongodb-js/ssh-tunnel": "^1.6.0",
63
69
  "async": "^3.2.0",
64
70
  "debug": "4.3.0",
65
71
  "lodash": "^4.17.20",
66
72
  "mongodb-build-info": "^1.3.0",
67
- "mongodb-connection-model": "^21.15.0",
73
+ "mongodb-connection-model": "^21.16.0",
68
74
  "mongodb-connection-string-url": "^2.5.2",
69
- "mongodb-index-model": "^3.9.0",
70
- "mongodb-ns": "^2.3.0",
75
+ "mongodb-index-model": "^3.10.0",
76
+ "mongodb-ns": "^2.4.0",
71
77
  "uuid": "^8.3.2"
72
78
  },
73
79
  "devDependencies": {
74
80
  "@mongodb-js/devtools-docker-test-envs": "^1.2.4",
75
- "@mongodb-js/eslint-config-compass": "^0.7.0",
81
+ "@mongodb-js/eslint-config-compass": "^0.8.0",
76
82
  "@mongodb-js/mocha-config-compass": "^0.10.0",
77
83
  "@mongodb-js/prettier-config-compass": "^0.5.0",
78
84
  "@mongodb-js/tsconfig-compass": "^0.6.0",
@@ -88,13 +94,14 @@
88
94
  "kerberos": "^2.0.0",
89
95
  "mocha": "^8.4.0",
90
96
  "mongodb": "^4.4.0",
91
- "mongodb-runner": "^4.8.3",
97
+ "mongodb-client-encryption": "^2.1.0",
98
+ "mongodb-runner": "^4.9.0",
92
99
  "nyc": "^15.0.0",
93
100
  "prettier": "2.3.2",
94
101
  "rimraf": "^3.0.2",
95
102
  "sinon": "^9.2.3",
96
- "storage-mixin": "^4.13.0",
103
+ "storage-mixin": "^4.14.0",
97
104
  "typescript": "^4.3.5"
98
105
  },
99
- "gitHead": "a1283df32eb52881cc00eb73f8d435f772cdbfde"
106
+ "gitHead": "2c4149184e87b8340851590663287b914d7ee63e"
100
107
  }