mongodb-data-service 21.24.1 → 22.1.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.
- package/lib/connect-mongo-client.d.ts +6 -2
- package/lib/connect-mongo-client.d.ts.map +1 -1
- package/lib/connect-mongo-client.js +9 -2
- package/lib/connect-mongo-client.js.map +1 -1
- package/lib/connection-secrets.d.ts.map +1 -1
- package/lib/connection-secrets.js +8 -2
- package/lib/connection-secrets.js.map +1 -1
- package/lib/connection-storage.d.ts +0 -2
- package/lib/connection-storage.d.ts.map +1 -1
- package/lib/connection-storage.js +4 -15
- package/lib/connection-storage.js.map +1 -1
- package/lib/csfle-collection-tracker.d.ts +22 -5
- package/lib/csfle-collection-tracker.d.ts.map +1 -1
- package/lib/csfle-collection-tracker.js +79 -38
- package/lib/csfle-collection-tracker.js.map +1 -1
- package/lib/data-service.d.ts +5 -5
- package/lib/data-service.d.ts.map +1 -1
- package/lib/data-service.js +34 -4
- package/lib/data-service.js.map +1 -1
- package/lib/encrypt.d.ts +16 -0
- package/lib/encrypt.d.ts.map +1 -0
- package/lib/encrypt.js +104 -0
- package/lib/encrypt.js.map +1 -0
- package/lib/import-export-connection.d.ts +15 -0
- package/lib/import-export-connection.d.ts.map +1 -0
- package/lib/import-export-connection.js +115 -0
- package/lib/import-export-connection.js.map +1 -0
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -2
- package/lib/index.js.map +1 -1
- package/lib/instance-detail-helper.js +2 -2
- package/lib/instance-detail-helper.js.map +1 -1
- package/lib/legacy/legacy-connection-model.d.ts +1 -4
- package/lib/legacy/legacy-connection-model.d.ts.map +1 -1
- package/lib/legacy/legacy-connection-model.js.map +1 -1
- package/lib/run-command.d.ts +1 -1
- package/lib/run-command.d.ts.map +1 -1
- package/package.json +22 -22
|
@@ -2,9 +2,13 @@ import { MongoClient } from 'mongodb';
|
|
|
2
2
|
import type { DevtoolsConnectOptions } from '@mongodb-js/devtools-connect';
|
|
3
3
|
import type SSHTunnel from '@mongodb-js/ssh-tunnel';
|
|
4
4
|
import type { ConnectionOptions } from './connection-options';
|
|
5
|
+
export declare const createClonedClient: unique symbol;
|
|
6
|
+
export declare type CloneableMongoClient = MongoClient & {
|
|
7
|
+
[createClonedClient](): Promise<CloneableMongoClient>;
|
|
8
|
+
};
|
|
5
9
|
export default function connectMongoClientCompass(connectionOptions: Readonly<ConnectionOptions>, setupListeners: (client: MongoClient) => void): Promise<[
|
|
6
|
-
metadataClient:
|
|
7
|
-
crudClient:
|
|
10
|
+
metadataClient: CloneableMongoClient,
|
|
11
|
+
crudClient: CloneableMongoClient,
|
|
8
12
|
sshTunnel: SSHTunnel | undefined,
|
|
9
13
|
options: {
|
|
10
14
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-mongo-client.d.ts","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAMpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAS9D,wBAA8B,yBAAyB,CACrD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9C,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAC5C,OAAO,CACR;IACE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"connect-mongo-client.d.ts","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAMpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAS9D,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,oBAAY,oBAAoB,GAAG,WAAW,GAAG;IAC/C,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACvD,CAAC;AAEF,wBAA8B,yBAAyB,CACrD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9C,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAC5C,OAAO,CACR;IACE,cAAc,EAAE,oBAAoB;IACpC,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,SAAS,GAAG,SAAS;IAChC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,sBAAsB,CAAA;KAAE;CAC1D,CACF,CAqGA"}
|
|
@@ -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.createClonedClient = void 0;
|
|
6
7
|
const mongodb_1 = require("mongodb");
|
|
7
8
|
const devtools_connect_1 = require("@mongodb-js/devtools-connect");
|
|
8
9
|
const events_1 = __importDefault(require("events"));
|
|
@@ -11,6 +12,7 @@ const lodash_1 = __importDefault(require("lodash"));
|
|
|
11
12
|
const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
|
|
12
13
|
const ssh_tunnel_1 = require("./ssh-tunnel");
|
|
13
14
|
const { debug, log } = (0, compass_logging_1.default)('COMPASS-CONNECT');
|
|
15
|
+
exports.createClonedClient = Symbol('createClonedClient');
|
|
14
16
|
async function connectMongoClientCompass(connectionOptions, setupListeners) {
|
|
15
17
|
var _a, _b;
|
|
16
18
|
debug('connectMongoClient invoked', (0, redact_1.redactConnectionOptions)(connectionOptions));
|
|
@@ -44,9 +46,14 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
|
|
|
44
46
|
const connectLogger = new events_1.default();
|
|
45
47
|
(0, devtools_connect_1.hookLogger)(connectLogger, log.unbound, 'compass', redact_1.redactConnectionString);
|
|
46
48
|
async function connectSingleClient(overrideOptions) {
|
|
47
|
-
const
|
|
49
|
+
const connectOptions = lodash_1.default.cloneDeep({ ...options, ...overrideOptions });
|
|
50
|
+
const client = await (0, devtools_connect_1.connectMongoClient)(url, connectOptions, connectLogger, CompassMongoClient);
|
|
48
51
|
await client.db('admin').command({ ping: 1 });
|
|
49
|
-
return client
|
|
52
|
+
return Object.assign(client, {
|
|
53
|
+
async [exports.createClonedClient]() {
|
|
54
|
+
return await connectSingleClient(connectOptions);
|
|
55
|
+
},
|
|
56
|
+
});
|
|
50
57
|
}
|
|
51
58
|
let metadataClient;
|
|
52
59
|
let crudClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-mongo-client.js","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connect-mongo-client.js","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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,CA6DhB;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG;IACxE,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CAwFA"}
|
|
@@ -30,7 +30,7 @@ exports.extractSecrets = exports.mergeSecrets = void 0;
|
|
|
30
30
|
const lodash_1 = __importDefault(require("lodash"));
|
|
31
31
|
const mongodb_connection_string_url_1 = __importStar(require("mongodb-connection-string-url"));
|
|
32
32
|
function mergeSecrets(connectionInfo, secrets) {
|
|
33
|
-
var _a
|
|
33
|
+
var _a;
|
|
34
34
|
const connectionInfoWithSecrets = lodash_1.default.cloneDeep(connectionInfo);
|
|
35
35
|
if (!secrets) {
|
|
36
36
|
return connectionInfoWithSecrets;
|
|
@@ -49,7 +49,7 @@ function mergeSecrets(connectionInfo, secrets) {
|
|
|
49
49
|
secrets.sshTunnelPassphrase;
|
|
50
50
|
}
|
|
51
51
|
if (secrets.autoEncryption && ((_a = connectionOptions.fleOptions) === null || _a === void 0 ? void 0 : _a.autoEncryption)) {
|
|
52
|
-
lodash_1.default.merge(
|
|
52
|
+
lodash_1.default.merge(connectionOptions.fleOptions.autoEncryption, secrets.autoEncryption);
|
|
53
53
|
}
|
|
54
54
|
if (secrets.tlsCertificateKeyFilePassword) {
|
|
55
55
|
searchParams.set('tlsCertificateKeyFilePassword', secrets.tlsCertificateKeyFilePassword);
|
|
@@ -119,6 +119,9 @@ function extractSecrets(connectionInfo) {
|
|
|
119
119
|
...kmsProviders.map((p) => `tlsOptions.${p}.tlsCertificateKeyFilePassword`),
|
|
120
120
|
];
|
|
121
121
|
connectionOptions.fleOptions.autoEncryption = lodash_1.default.omit(autoEncryption, secretPaths);
|
|
122
|
+
if (connectionOptions.fleOptions.autoEncryption.kmsProviders)
|
|
123
|
+
connectionOptions.fleOptions.autoEncryption.kmsProviders =
|
|
124
|
+
omitPropertiesWhoseValuesAreEmptyObjects(connectionOptions.fleOptions.autoEncryption.kmsProviders);
|
|
122
125
|
if (connectionOptions.fleOptions.storeCredentials) {
|
|
123
126
|
secrets.autoEncryption = lodash_1.default.pick(autoEncryption, secretPaths);
|
|
124
127
|
}
|
|
@@ -126,4 +129,7 @@ function extractSecrets(connectionInfo) {
|
|
|
126
129
|
return { connectionInfo: connectionInfoWithoutSecrets, secrets };
|
|
127
130
|
}
|
|
128
131
|
exports.extractSecrets = extractSecrets;
|
|
132
|
+
function omitPropertiesWhoseValuesAreEmptyObjects(obj) {
|
|
133
|
+
return Object.fromEntries(Object.entries(obj).filter(([, value]) => Object.keys(value).length > 0));
|
|
134
|
+
}
|
|
129
135
|
//# sourceMappingURL=connection-secrets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-secrets.js","sourceRoot":"","sources":["../src/connection-secrets.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAuB;AACvB,+FAEuC;AAkBvC,SAAgB,YAAY,CAC1B,cAAwC,EACxC,OAAsC;;IAEtC,MAAM,yBAAyB,GAAG,gBAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE9D,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,yBAAyB,CAAC;KAClC;IAED,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,iBAAiB,CAAC;IAEtE,MAAM,GAAG,GAAG,IAAI,uCAAgB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"connection-secrets.js","sourceRoot":"","sources":["../src/connection-secrets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import type { ConnectionInfo } from './connection-info';
|
|
2
|
-
import type { AmpersandMethodOptions } from './legacy/legacy-connection-model';
|
|
3
2
|
export declare class ConnectionStorage {
|
|
4
3
|
loadAll(): Promise<ConnectionInfo[]>;
|
|
5
4
|
save(connectionInfo: ConnectionInfo): Promise<void>;
|
|
6
5
|
delete(connectionInfo: ConnectionInfo): Promise<void>;
|
|
7
6
|
load(id: string): Promise<ConnectionInfo | undefined>;
|
|
8
7
|
}
|
|
9
|
-
export declare function promisifyAmpersandMethod<T>(fn: (options: AmpersandMethodOptions<T>) => void): () => Promise<T>;
|
|
10
8
|
//# sourceMappingURL=connection-storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-storage.d.ts","sourceRoot":"","sources":["../src/connection-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"connection-storage.d.ts","sourceRoot":"","sources":["../src/connection-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAaxD,qBAAa,iBAAiB;IAMtB,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA6CpC,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCnD,MAAM,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BrD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;CAe5D"}
|
|
@@ -3,16 +3,17 @@ 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.
|
|
6
|
+
exports.ConnectionStorage = void 0;
|
|
7
7
|
const uuid_1 = require("uuid");
|
|
8
8
|
const legacy_connection_model_1 = require("./legacy/legacy-connection-model");
|
|
9
9
|
const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
|
|
10
|
+
const compass_utils_1 = require("@mongodb-js/compass-utils");
|
|
10
11
|
const { log, mongoLogId } = (0, compass_logging_1.default)('COMPASS-DATA-SERVICE');
|
|
11
12
|
class ConnectionStorage {
|
|
12
13
|
async loadAll() {
|
|
13
14
|
const { ConnectionCollection } = require('mongodb-connection-model');
|
|
14
15
|
const connectionCollection = new ConnectionCollection();
|
|
15
|
-
const fetchConnectionModels = promisifyAmpersandMethod(connectionCollection.fetch.bind(connectionCollection));
|
|
16
|
+
const fetchConnectionModels = (0, compass_utils_1.promisifyAmpersandMethod)(connectionCollection.fetch.bind(connectionCollection));
|
|
16
17
|
try {
|
|
17
18
|
await fetchConnectionModels();
|
|
18
19
|
}
|
|
@@ -44,6 +45,7 @@ class ConnectionStorage {
|
|
|
44
45
|
model.save(undefined, {
|
|
45
46
|
success: resolve,
|
|
46
47
|
error: reject,
|
|
48
|
+
validate: false,
|
|
47
49
|
});
|
|
48
50
|
});
|
|
49
51
|
}
|
|
@@ -74,17 +76,4 @@ class ConnectionStorage {
|
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
exports.ConnectionStorage = ConnectionStorage;
|
|
77
|
-
function promisifyAmpersandMethod(fn) {
|
|
78
|
-
return (...args) => new Promise((resolve, reject) => {
|
|
79
|
-
fn(...args, {
|
|
80
|
-
success: (model) => {
|
|
81
|
-
resolve(model);
|
|
82
|
-
},
|
|
83
|
-
error: (model, error) => {
|
|
84
|
-
reject(error);
|
|
85
|
-
},
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
exports.promisifyAmpersandMethod = promisifyAmpersandMethod;
|
|
90
79
|
//# sourceMappingURL=connection-storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-storage.js","sourceRoot":"","sources":["../src/connection-storage.ts"],"names":[],"mappings":";;;;;;AAEA,+BAAgD;
|
|
1
|
+
{"version":3,"file":"connection-storage.js","sourceRoot":"","sources":["../src/connection-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,34 @@
|
|
|
1
1
|
import type { MongoClient, Document } from 'mongodb';
|
|
2
2
|
import type { DataService } from './data-service';
|
|
3
3
|
import type { CollectionInfo, CollectionInfoNameOnly } from './run-command';
|
|
4
|
+
declare type FieldPath = string[];
|
|
5
|
+
export interface CSFLEEncryptedFieldsSet {
|
|
6
|
+
readonly encryptedFields: FieldPath[];
|
|
7
|
+
readonly equalityQueryableEncryptedFields: FieldPath[];
|
|
8
|
+
}
|
|
4
9
|
export interface CSFLECollectionTracker {
|
|
5
10
|
isUpdateAllowed(ns: string, originalDocument: Document): Promise<boolean>;
|
|
6
11
|
knownSchemaForCollection(ns: string): Promise<{
|
|
7
12
|
hasSchema: boolean;
|
|
8
|
-
encryptedFields:
|
|
13
|
+
encryptedFields: CSFLEEncryptedFieldsSet;
|
|
9
14
|
}>;
|
|
10
15
|
}
|
|
11
|
-
declare
|
|
16
|
+
declare class CSFLEEncryptedFieldsSetImpl implements CSFLEEncryptedFieldsSet {
|
|
17
|
+
_encryptedFields: {
|
|
18
|
+
path: FieldPath;
|
|
19
|
+
equalityQueryable: boolean;
|
|
20
|
+
}[];
|
|
21
|
+
get encryptedFields(): FieldPath[];
|
|
22
|
+
get equalityQueryableEncryptedFields(): FieldPath[];
|
|
23
|
+
addField(path: Readonly<FieldPath>, equalityQueryable: boolean): this;
|
|
24
|
+
withPathPrefix(prefix: string): CSFLEEncryptedFieldsSetImpl;
|
|
25
|
+
static isEncryptedField(set: CSFLEEncryptedFieldsSet, path: FieldPath): boolean;
|
|
26
|
+
static isEqualityQueryableEncryptedField(set: CSFLEEncryptedFieldsSet, path: FieldPath): boolean;
|
|
27
|
+
static merge(...sets: (CSFLEEncryptedFieldsSet | undefined)[]): CSFLEEncryptedFieldsSetImpl;
|
|
28
|
+
}
|
|
12
29
|
interface CSFLECollectionInfo {
|
|
13
|
-
serverEnforcedEncryptedFields?:
|
|
14
|
-
clientEnforcedEncryptedFields?:
|
|
30
|
+
serverEnforcedEncryptedFields?: CSFLEEncryptedFieldsSetImpl;
|
|
31
|
+
clientEnforcedEncryptedFields?: CSFLEEncryptedFieldsSetImpl;
|
|
15
32
|
hasServerSchema?: boolean;
|
|
16
33
|
lastUpdated?: Date;
|
|
17
34
|
}
|
|
@@ -23,7 +40,7 @@ export declare class CSFLECollectionTrackerImpl implements CSFLECollectionTracke
|
|
|
23
40
|
isUpdateAllowed(ns: string, originalDocument: Document): Promise<boolean>;
|
|
24
41
|
knownSchemaForCollection(ns: string): Promise<{
|
|
25
42
|
hasSchema: boolean;
|
|
26
|
-
encryptedFields:
|
|
43
|
+
encryptedFields: CSFLEEncryptedFieldsSetImpl;
|
|
27
44
|
}>;
|
|
28
45
|
_processClientSchemaDefinitions(): void;
|
|
29
46
|
_fetchCSFLECollectionInfo(ns: string): Promise<CSFLECollectionInfo>;
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"csfle-collection-tracker.d.ts","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,38 +8,89 @@ const mongodb_ns_1 = __importDefault(require("mongodb-ns"));
|
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
9
|
const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
|
|
10
10
|
const { log, mongoLogId } = (0, compass_logging_1.default)('COMPASS-DATA-SERVICE');
|
|
11
|
+
class CSFLEEncryptedFieldsSetImpl {
|
|
12
|
+
constructor() {
|
|
13
|
+
this._encryptedFields = [];
|
|
14
|
+
}
|
|
15
|
+
get encryptedFields() {
|
|
16
|
+
return this._encryptedFields.map(({ path }) => path);
|
|
17
|
+
}
|
|
18
|
+
get equalityQueryableEncryptedFields() {
|
|
19
|
+
return this._encryptedFields
|
|
20
|
+
.filter(({ equalityQueryable }) => equalityQueryable)
|
|
21
|
+
.map(({ path }) => path);
|
|
22
|
+
}
|
|
23
|
+
addField(path, equalityQueryable) {
|
|
24
|
+
const existingField = this._encryptedFields.find((field) => lodash_1.default.isEqual(field.path, path));
|
|
25
|
+
if (existingField) {
|
|
26
|
+
existingField.equalityQueryable && (existingField.equalityQueryable = equalityQueryable);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this._encryptedFields.push({ path: [...path], equalityQueryable });
|
|
30
|
+
}
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
withPathPrefix(prefix) {
|
|
34
|
+
const ret = new CSFLEEncryptedFieldsSetImpl();
|
|
35
|
+
ret._encryptedFields = this._encryptedFields.map(({ path, equalityQueryable }) => ({
|
|
36
|
+
path: [prefix, ...path],
|
|
37
|
+
equalityQueryable,
|
|
38
|
+
}));
|
|
39
|
+
return ret;
|
|
40
|
+
}
|
|
41
|
+
static isEncryptedField(set, path) {
|
|
42
|
+
return set.encryptedFields.some((encryptedField) => lodash_1.default.isEqual(path, encryptedField));
|
|
43
|
+
}
|
|
44
|
+
static isEqualityQueryableEncryptedField(set, path) {
|
|
45
|
+
return set.equalityQueryableEncryptedFields.some((encryptedField) => lodash_1.default.isEqual(path, encryptedField));
|
|
46
|
+
}
|
|
47
|
+
static merge(...sets) {
|
|
48
|
+
const ret = new CSFLEEncryptedFieldsSetImpl();
|
|
49
|
+
for (const set of sets) {
|
|
50
|
+
if (!set)
|
|
51
|
+
continue;
|
|
52
|
+
for (const field of set.encryptedFields) {
|
|
53
|
+
ret.addField(field, this.isEqualityQueryableEncryptedField(set, field));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return ret;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
11
59
|
function extractEncryptedFieldsFromSchema(schema) {
|
|
12
|
-
var _a;
|
|
60
|
+
var _a, _b;
|
|
61
|
+
let ret = new CSFLEEncryptedFieldsSetImpl();
|
|
13
62
|
if (schema === null || schema === void 0 ? void 0 : schema.encrypt) {
|
|
14
|
-
|
|
63
|
+
const algorithm = (_a = schema === null || schema === void 0 ? void 0 : schema.encrypt) === null || _a === void 0 ? void 0 : _a.algorithm;
|
|
64
|
+
return ret.addField([], algorithm === 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic');
|
|
15
65
|
}
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
fields.push([key, ...subfield]);
|
|
20
|
-
}
|
|
66
|
+
for (const [key, subschema] of Object.entries((_b = schema === null || schema === void 0 ? void 0 : schema.properties) !== null && _b !== void 0 ? _b : {})) {
|
|
67
|
+
const subfields = extractEncryptedFieldsFromSchema(subschema);
|
|
68
|
+
ret = CSFLEEncryptedFieldsSetImpl.merge(ret, subfields.withPathPrefix(key));
|
|
21
69
|
}
|
|
22
|
-
return
|
|
70
|
+
return ret;
|
|
23
71
|
}
|
|
24
72
|
function extractEncryptedFieldsFromEncryptedFieldsConfig(encryptedFields) {
|
|
25
|
-
var _a;
|
|
26
|
-
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const fields = (_a = encryptedFields === null || encryptedFields === void 0 ? void 0 : encryptedFields.fields) !== null && _a !== void 0 ? _a : [];
|
|
75
|
+
const ret = new CSFLEEncryptedFieldsSetImpl();
|
|
76
|
+
for (const field of fields) {
|
|
77
|
+
const queries = Array.isArray(field.queries)
|
|
78
|
+
? field.queries
|
|
79
|
+
: [(_b = field.queries) !== null && _b !== void 0 ? _b : {}];
|
|
80
|
+
const equalityQueryable = queries.some(({ queryType }) => queryType === 'equality' || queryType === 'range');
|
|
81
|
+
ret.addField(field.path.split('.'), equalityQueryable);
|
|
82
|
+
}
|
|
83
|
+
return ret;
|
|
27
84
|
}
|
|
28
85
|
function extractEncrytedFieldFromAutoEncryptionOptions(ns, autoEncryption) {
|
|
29
86
|
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
|
-
];
|
|
87
|
+
return CSFLEEncryptedFieldsSetImpl.merge(extractEncryptedFieldsFromSchema((_a = autoEncryption.schemaMap) === null || _a === void 0 ? void 0 : _a[ns]), extractEncryptedFieldsFromEncryptedFieldsConfig((_b = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.encryptedFieldsMap) === null || _b === void 0 ? void 0 : _b[ns]));
|
|
34
88
|
}
|
|
35
89
|
function extractEncryptedFieldsFromListCollectionsResult(options) {
|
|
36
90
|
var _a;
|
|
37
91
|
const schema = (_a = options === null || options === void 0 ? void 0 : options.validator) === null || _a === void 0 ? void 0 : _a.$jsonSchema;
|
|
38
92
|
const encryptedFieldsConfig = options === null || options === void 0 ? void 0 : options.encryptedFields;
|
|
39
|
-
return
|
|
40
|
-
...extractEncryptedFieldsFromSchema(schema),
|
|
41
|
-
...extractEncryptedFieldsFromEncryptedFieldsConfig(encryptedFieldsConfig),
|
|
42
|
-
];
|
|
93
|
+
return CSFLEEncryptedFieldsSetImpl.merge(extractEncryptedFieldsFromSchema(schema), extractEncryptedFieldsFromEncryptedFieldsConfig(encryptedFieldsConfig));
|
|
43
94
|
}
|
|
44
95
|
function extractEncryptedFieldsFromDocument(doc) {
|
|
45
96
|
var _a;
|
|
@@ -70,34 +121,23 @@ class CSFLECollectionTrackerImpl {
|
|
|
70
121
|
}
|
|
71
122
|
}
|
|
72
123
|
async isUpdateAllowed(ns, originalDocument) {
|
|
73
|
-
var _a, _b;
|
|
74
124
|
const originalDocEncryptedFields = extractEncryptedFieldsFromDocument(originalDocument);
|
|
75
125
|
if (originalDocEncryptedFields.length === 0) {
|
|
76
126
|
return true;
|
|
77
127
|
}
|
|
78
|
-
const
|
|
79
|
-
const collectionEncryptedFields = [
|
|
80
|
-
...((_a = info.serverEnforcedEncryptedFields) !== null && _a !== void 0 ? _a : []),
|
|
81
|
-
...((_b = info.clientEnforcedEncryptedFields) !== null && _b !== void 0 ? _b : []),
|
|
82
|
-
];
|
|
128
|
+
const { encryptedFields } = await this.knownSchemaForCollection(ns);
|
|
83
129
|
for (const originalDocPath of originalDocEncryptedFields) {
|
|
84
|
-
if (!
|
|
130
|
+
if (!CSFLEEncryptedFieldsSetImpl.isEncryptedField(encryptedFields, originalDocPath)) {
|
|
85
131
|
return false;
|
|
86
132
|
}
|
|
87
133
|
}
|
|
88
134
|
return true;
|
|
89
135
|
}
|
|
90
136
|
async knownSchemaForCollection(ns) {
|
|
91
|
-
var _a, _b, _c, _d;
|
|
92
137
|
const info = await this._fetchCSFLECollectionInfo(ns);
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const encryptedFields = [
|
|
97
|
-
...((_c = info.clientEnforcedEncryptedFields) !== null && _c !== void 0 ? _c : []),
|
|
98
|
-
...((_d = info.serverEnforcedEncryptedFields) !== null && _d !== void 0 ? _d : []),
|
|
99
|
-
].map((fieldPath) => fieldPath.join('.'));
|
|
100
|
-
return { hasSchema, encryptedFields: [...new Set(encryptedFields)] };
|
|
138
|
+
const encryptedFields = CSFLEEncryptedFieldsSetImpl.merge(info.clientEnforcedEncryptedFields, info.serverEnforcedEncryptedFields);
|
|
139
|
+
const hasSchema = !!(info.hasServerSchema || encryptedFields.encryptedFields.length > 0);
|
|
140
|
+
return { hasSchema, encryptedFields };
|
|
101
141
|
}
|
|
102
142
|
_processClientSchemaDefinitions() {
|
|
103
143
|
var _a, _b;
|
|
@@ -177,14 +217,14 @@ class CSFLECollectionTrackerImpl {
|
|
|
177
217
|
};
|
|
178
218
|
}
|
|
179
219
|
_checkListCollectionsForLibmongocryptResult(dbName, filter, collectionInfos) {
|
|
180
|
-
var _a, _b;
|
|
220
|
+
var _a, _b, _c, _d;
|
|
181
221
|
if (typeof (filter === null || filter === void 0 ? void 0 : filter.name) !== 'string' || collectionInfos.length > 1) {
|
|
182
222
|
return new Error(`[Compass] Unexpected listCollections request on '${dbName}' with name: '${filter === null || filter === void 0 ? void 0 : filter.name}'`);
|
|
183
223
|
}
|
|
184
224
|
const ns = `${dbName}.${filter.name}`;
|
|
185
225
|
const existingInfo = this._getCSFLECollectionInfo(ns);
|
|
186
226
|
if (collectionInfos.length === 0) {
|
|
187
|
-
if ((_a = existingInfo.serverEnforcedEncryptedFields) === null || _a === void 0 ? void 0 : _a.length) {
|
|
227
|
+
if ((_b = (_a = existingInfo.serverEnforcedEncryptedFields) === null || _a === void 0 ? void 0 : _a.encryptedFields) === null || _b === void 0 ? void 0 : _b.length) {
|
|
188
228
|
return new Error(`[Compass] Missing encrypted field information of collection '${ns}'`);
|
|
189
229
|
}
|
|
190
230
|
return;
|
|
@@ -194,8 +234,9 @@ class CSFLECollectionTrackerImpl {
|
|
|
194
234
|
return new Error(`[Compass] Unexpected listCollections name mismatch: got ${info.name}, expected ${filter.name}`);
|
|
195
235
|
}
|
|
196
236
|
const newInfo = extractEncryptedFieldsFromListCollectionsResult(info.options);
|
|
197
|
-
for (const expectedEncryptedField of (
|
|
198
|
-
|
|
237
|
+
for (const expectedEncryptedField of (_d = (_c = existingInfo
|
|
238
|
+
.serverEnforcedEncryptedFields) === null || _c === void 0 ? void 0 : _c.encryptedFields) !== null && _d !== void 0 ? _d : []) {
|
|
239
|
+
if (!newInfo.encryptedFields.some((field) => lodash_1.default.isEqual(field, expectedEncryptedField))) {
|
|
199
240
|
return new Error(`[Compass] Missing encrypted field '${expectedEncryptedField.join('.')}' of collection '${ns}' in listCollections result`);
|
|
200
241
|
}
|
|
201
242
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csfle-collection-tracker.js","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"csfle-collection-tracker.js","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":";;;;;;AAaA,4DAAwC;AACxC,oDAAuB;AACvB,kFAAmE;AAEnE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAA,yBAAwB,EAAC,sBAAsB,CAAC,CAAC;AA0D7E,MAAM,2BAA2B;IAAjC;QACE,qBAAgB,GAAsD,EAAE,CAAC;IAoE3E,CAAC;IAlEC,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,gCAAgC;QAClC,OAAO,IAAI,CAAC,gBAAgB;aACzB,MAAM,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC;aACpD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,IAAyB,EAAE,iBAA0B;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACzD,gBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAC5B,CAAC;QACF,IAAI,aAAa,EAAE;YAIjB,aAAa,CAAC,iBAAiB,KAA/B,aAAa,CAAC,iBAAiB,GAAK,iBAAiB,EAAC;SACvD;aAAM;YACL,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;SACpE;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,MAAM,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAC;QAC9C,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAC9C,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;YACvB,iBAAiB;SAClB,CAAC,CACH,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,GAA4B,EAC5B,IAAe;QAEf,OAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CACjD,gBAAC,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,iCAAiC,CACtC,GAA4B,EAC5B,IAAe;QAEf,OAAO,GAAG,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAClE,gBAAC,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CACV,GAAG,IAA6C;QAEhD,MAAM,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,eAAe,EAAE;gBACvC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,iCAAiC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;aACzE;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAUD,SAAS,gCAAgC,CACvC,MAA4B;;IAE5B,IAAI,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAC;IAC5C,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE;QACnB,MAAM,SAAS,GACb,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,SAAS,CAAC;QAE7B,OAAO,GAAG,CAAC,QAAQ,CACjB,EAAE,EACF,SAAS,KAAK,6CAA6C,CAC5D,CAAC;KACH;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,mCAAI,EAAE,CAAC,EAAE;QACvE,MAAM,SAAS,GAAG,gCAAgC,CAAC,SAAqB,CAAC,CAAC;QAC1E,GAAG,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7E;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,SAAS,+CAA+C,CACtD,eAAqC;;IAErC,MAAM,MAAM,GAAU,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,EAAE,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,2BAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,MAAM,OAAO,GAAU,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACjD,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;QAC1B,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CACpC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,OAAO,CACrE,CAAC;QACF,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC;KACxD;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,SAAS,6CAA6C,CACpD,EAAU,EACV,cAAqC;;IAErC,OAAO,2BAA2B,CAAC,KAAK,CACtC,gCAAgC,CAAC,MAAA,cAAc,CAAC,SAAS,0CAAG,EAAE,CAAC,CAAC,EAChE,+CAA+C,CAC7C,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,kBAAkB,0CAAG,EAAE,CAAC,CACzC,CACF,CAAC;AACJ,CAAC;AAGD,SAAS,+CAA+C,CACtD,OAA8C;;IAE9C,MAAM,MAAM,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,WAAW,CAAC;IAC/C,MAAM,qBAAqB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,CAAC;IACvD,OAAO,2BAA2B,CAAC,KAAK,CACtC,gCAAgC,CAAC,MAAM,CAAC,EACxC,+CAA+C,CAAC,qBAAqB,CAAC,CACvE,CAAC;AACJ,CAAC;AAID,SAAS,kCAAkC,CAAC,GAAQ;;IAClD,MAAM,eAAe,GAAG,CAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,GAAG,CAC1E,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAC3B,CAAC;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC9C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACvC,SAAS;SACV;QACD,MAAM,YAAY,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAAC;QAC/D,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;KACrE;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAa;IACvC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,KAAM,CAAC;AAClD,CAAC;AAED,MAAa,0BAA0B;IAKrC,YACE,WAAwD,EACxD,UAAuB;QANzB,cAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;QAQjD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAE9B,IAAI,CAAC,YAAY,CAAC,EAAE,CAClB,uBAAuB,EACvB,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,CACrD,CAAC;QACF,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEvC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACnD,IAAI,aAAa,EAAE;YACjB,GAAG,CAAC,IAAI,CACN,UAAU,CAAC,UAAa,CAAC,EACzB,wBAAwB,EACxB,+CAA+C,CAChD,CAAC;YAED,aAAqB,CAAC,eAAe,GAAG,IAAI,CAAC,2BAA2B,CACtE,aAAqB,CAAC,eAAe,CACvC,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,EAAU,EACV,gBAA0B;QAE1B,MAAM,0BAA0B,GAC9B,kCAAkC,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,0BAA0B,CAAC,MAAM,KAAK,CAAC,EAAE;YAI3C,OAAO,IAAI,CAAC;SACb;QACD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAMpE,KAAK,MAAM,eAAe,IAAI,0BAA0B,EAAE;YACxD,IACE,CAAC,2BAA2B,CAAC,gBAAgB,CAC3C,eAAe,EACf,eAAe,CAChB,EACD;gBACA,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,EAAU;QAIvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,2BAA2B,CAAC,KAAK,CACvD,IAAI,CAAC,6BAA6B,EAClC,IAAI,CAAC,6BAA6B,CACnC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,CAAC,CAClB,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CACnE,CAAC;QACF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;IACxC,CAAC;IAED,+BAA+B;;QAE7B,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI;YACf,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,mCAAI,EAAE,CAAC;YAC/C,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,kBAAkB,mCAAI,EAAE,CAAC;SACzD,EAAE;YACD,GAAG,CAAC,IAAI,CACN,UAAU,CAAC,UAAa,CAAC,EACzB,wBAAwB,EACxB,2CAA2C,EAC3C,EAAE,EAAE,EAAE,CACP,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,6BAA6B;gBAChC,6CAA6C,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;SACrE;IACH,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,EAAU;QACxC,MAAM,QAAQ,GAAG,IAAA,oBAAc,EAAC,EAAE,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAC9C,IACE,CAAC,IAAI,CAAC,6BAA6B;YACnC,CAAC,IAAI,CAAC,WAAW;YACjB,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EACpC;YACA,GAAG,CAAC,IAAI,CACN,UAAU,CAAC,UAAa,CAAC,EACzB,wBAAwB,EACxB,kCAAkC,EAClC,EAAE,EAAE,EAAE,CACP,CAAC;YAMF,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACzD,IAAI,EAAE,QAAQ,CAAC,UAAU;aAC1B,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,EAAU;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAoC,CAClC,IAAkD,EAClD,MAAwD;;QAExD,IAAI,IAAI,CAAC,QAAQ,EAAE;YAEjB,OAAO;SACR;QAED,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACjD,GAAG,CAAC,IAAI,CACN,UAAU,CAAC,UAAa,CAAC,EACzB,wBAAwB,EACxB,mCAAmC,EACnC,EAAE,EAAE,EAAE,CACP,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAG9C,IAAI,CAAC,6BAA6B;YAChC,+CAA+C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAA,MAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,SAAS,0CAAE,WAAW,CAAA,CAAC;QAChE,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,2BAA2B,CAAC,aAA0B;QAYpD,OAAO;YACL,EAAE,EAAE,CAAC,MAAc,EAAE,EAAE;gBACrB,OAAO;oBACL,eAAe,EAAE,CAAC,MAAgB,EAAE,IAA4B,EAAE,EAAE;wBAClE,OAAO;4BACL,OAAO,EAAE,CAAC,QAAkD,EAAE,EAAE;gCAC9D,aAAa;qCACV,EAAE,CAAC,MAAM,CAAC;qCACV,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;qCAC7B,OAAO,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE;oCAChC,IAAI,CAAC,GAAG,EAAE;wCACR,GAAG,GAAG,IAAI,CAAC,2CAA2C,CACpD,MAAM,EACN,MAAM,EACN,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,CAAqB,CAC5C,CAAC;wCACF,IAAI,GAAG,EAAE;4CACP,GAAG,CAAC,KAAK,CACP,UAAU,CAAC,UAAa,CAAC,EACzB,wBAAwB,EACxB,oDAAoD,EACpD,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CACvB,CAAC;yCACH;qCACF;oCACD,IAAI,GAAG,EAAE;wCACP,QAAQ,CAAC,GAAG,CAAC,CAAC;wCACd,OAAO;qCACR;oCACD,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;gCACjC,CAAC,CAAC,CAAC;4BACP,CAAC;yBACF,CAAC;oBACJ,CAAC;iBACF,CAAC;YACJ,CAAC;SACa,CAAC;IACnB,CAAC;IAED,2CAA2C,CACzC,MAAc,EACd,MAAgB,EAChB,eAAiC;;QAEjC,IAAI,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,KAAK,QAAQ,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAIlE,OAAO,IAAI,KAAK,CACd,oDAAoD,MAAM,iBACxD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IACV,GAAG,CACJ,CAAC;SACH;QAED,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;QAEtD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,IAAI,MAAA,MAAA,YAAY,CAAC,6BAA6B,0CAAE,eAAe,0CAAE,MAAM,EAAE;gBACvE,OAAO,IAAI,KAAK,CACd,gEAAgE,EAAE,GAAG,CACtE,CAAC;aACH;YACD,OAAO;SACR;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;YAG7B,OAAO,IAAI,KAAK,CACd,2DAA2D,IAAI,CAAC,IAAI,cAAc,MAAM,CAAC,IAAI,EAAE,CAChG,CAAC;SACH;QACD,MAAM,OAAO,GAAG,+CAA+C,CAC7D,IAAI,CAAC,OAAO,CACb,CAAC;QAEF,KAAK,MAAM,sBAAsB,IAAI,MAAA,MAAA,YAAY;aAC9C,6BAA6B,0CAAE,eAAe,mCAAI,EAAE,EAAE;YACvD,IACE,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACtC,gBAAC,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC,CACzC,EACD;gBACA,OAAO,IAAI,KAAK,CACd,sCAAsC,sBAAsB,CAAC,IAAI,CAC/D,GAAG,CACJ,oBAAoB,EAAE,6BAA6B,CACrD,CAAC;aACH;SACF;IACH,CAAC;CACF;AAxQD,gEAwQC"}
|
package/lib/data-service.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ import type { Callback, CollectionStats } from './types';
|
|
|
10
10
|
import type { ConnectionStatusWithPrivileges } from './run-command';
|
|
11
11
|
import type { CSFLECollectionTracker } from './csfle-collection-tracker';
|
|
12
12
|
import * as mongodb from 'mongodb';
|
|
13
|
-
import type { ClientEncryption as ClientEncryptionType, ClientEncryptionDataKeyProvider, ClientEncryptionCreateDataKeyProviderOptions } from 'mongodb-client-encryption';
|
|
14
13
|
declare type ClientType = 'CRUD' | 'META';
|
|
15
14
|
declare const kSessionClientType: unique symbol;
|
|
16
15
|
interface CompassClientSession extends ClientSession {
|
|
@@ -95,7 +94,7 @@ export interface DataService {
|
|
|
95
94
|
findOneAndUpdate(ns: string, filter: Filter<Document>, update: Document, options: FindOneAndUpdateOptions, callback: Callback<Document>): void;
|
|
96
95
|
explain(ns: string, filter: Filter<Document>, options: FindOptions, callback: Callback<Document>): void;
|
|
97
96
|
explainAggregate(ns: string, pipeline: Document[], options: AggregateOptions, executionOptions?: ExplainExecuteOptions): Promise<Document>;
|
|
98
|
-
indexes(ns: string, options: unknown, callback: Callback<Document>): void;
|
|
97
|
+
indexes(ns: string, options: unknown, callback: Callback<Document[]>): void;
|
|
99
98
|
instance(): Promise<InstanceDetails>;
|
|
100
99
|
insertOne(ns: string, doc: Document, options: InsertOneOptions, callback: Callback<InsertOneResult<Document>>): void;
|
|
101
100
|
insertMany(ns: string, docs: Document[], options: BulkWriteOptions, callback: Callback<InsertManyResult<Document>>): void;
|
|
@@ -194,7 +193,7 @@ export declare class DataServiceImpl extends EventEmitter implements DataService
|
|
|
194
193
|
findOneAndUpdate(ns: string, filter: Filter<Document>, update: Document, options: FindOneAndUpdateOptions, callback: Callback<Document>): void;
|
|
195
194
|
explain(ns: string, filter: Filter<Document>, options: FindOptions, callback: Callback<Document>): void;
|
|
196
195
|
explainAggregate(ns: string, pipeline: Document[], options: AggregateOptions, executionOptions?: ExplainExecuteOptions): Promise<Document>;
|
|
197
|
-
indexes(ns: string, options: unknown, callback: Callback<Document>): void;
|
|
196
|
+
indexes(ns: string, options: unknown, callback: Callback<Document[]>): void;
|
|
198
197
|
instance(): Promise<InstanceDetails>;
|
|
199
198
|
insertOne(ns: string, doc: Document, options: InsertOneOptions, callback: Callback<InsertOneResult<Document>>): void;
|
|
200
199
|
insertMany(ns: string, docs: Document[], options: BulkWriteOptions, callback: Callback<InsertManyResult<Document>>): void;
|
|
@@ -237,11 +236,12 @@ export declare class DataServiceImpl extends EventEmitter implements DataService
|
|
|
237
236
|
private _checkIsWritable;
|
|
238
237
|
private _translateMessage;
|
|
239
238
|
private _cleanup;
|
|
239
|
+
private _resetCRUDClient;
|
|
240
240
|
private _startLogOp;
|
|
241
241
|
configuredKMSProviders(): string[];
|
|
242
242
|
_csfleLogInformation(fleOptions?: Readonly<ConnectionFleOptions>): null | Record<string, unknown>;
|
|
243
|
-
createDataKey(provider:
|
|
244
|
-
_getClientEncryption():
|
|
243
|
+
createDataKey(provider: any, options?: any): Promise<Document>;
|
|
244
|
+
_getClientEncryption(): any;
|
|
245
245
|
}
|
|
246
246
|
export default DataService;
|
|
247
247
|
//# sourceMappingURL=data-service.d.ts.map
|