mongodb-data-service 22.6.0 → 22.8.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-mongo-client.d.ts +13 -2
- package/lib/connect-mongo-client.d.ts.map +1 -1
- package/lib/connect-mongo-client.js +75 -19
- package/lib/connect-mongo-client.js.map +1 -1
- package/lib/connect.d.ts +9 -1
- package/lib/connect.d.ts.map +1 -1
- package/lib/connect.js +7 -3
- package/lib/connect.js.map +1 -1
- package/lib/connection-options.d.ts +5 -0
- package/lib/connection-options.d.ts.map +1 -1
- package/lib/csfle-collection-tracker.d.ts +5 -3
- package/lib/csfle-collection-tracker.d.ts.map +1 -1
- package/lib/csfle-collection-tracker.js +16 -13
- package/lib/csfle-collection-tracker.js.map +1 -1
- package/lib/data-service.d.ts +26 -12
- package/lib/data-service.d.ts.map +1 -1
- package/lib/data-service.js +188 -121
- package/lib/data-service.js.map +1 -1
- package/lib/instance-detail-helper.d.ts.map +1 -1
- package/lib/instance-detail-helper.js +2 -3
- package/lib/instance-detail-helper.js.map +1 -1
- package/lib/legacy/legacy-connection-model.d.ts +1 -3
- package/lib/legacy/legacy-connection-model.d.ts.map +1 -1
- package/lib/legacy/legacy-connection-model.js.map +1 -1
- package/lib/logger.d.ts +19 -0
- package/lib/logger.d.ts.map +1 -0
- package/lib/logger.js +10 -0
- package/lib/logger.js.map +1 -0
- package/lib/ssh-tunnel.d.ts +3 -2
- package/lib/ssh-tunnel.d.ts.map +1 -1
- package/lib/ssh-tunnel.js +7 -9
- package/lib/ssh-tunnel.js.map +1 -1
- package/lib/types.d.ts +0 -11
- package/lib/types.d.ts.map +1 -1
- package/package.json +23 -27
|
@@ -1,15 +1,26 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { MongoClient } from 'mongodb';
|
|
2
|
-
import type { DevtoolsConnectOptions } from '@mongodb-js/devtools-connect';
|
|
3
|
+
import type { DevtoolsConnectOptions, DevtoolsConnectionState } from '@mongodb-js/devtools-connect';
|
|
3
4
|
import type SSHTunnel from '@mongodb-js/ssh-tunnel';
|
|
4
5
|
import type { ConnectionOptions } from './connection-options';
|
|
6
|
+
import type { UnboundDataServiceImplLogger } from './logger';
|
|
5
7
|
export declare const createClonedClient: unique symbol;
|
|
6
8
|
export type CloneableMongoClient = MongoClient & {
|
|
7
9
|
[createClonedClient](): Promise<CloneableMongoClient>;
|
|
8
10
|
};
|
|
9
|
-
export
|
|
11
|
+
export declare function prepareOIDCOptions(connectionOptions: Readonly<ConnectionOptions>, signal?: AbortSignal): Required<Pick<DevtoolsConnectOptions, 'oidc' | 'authMechanismProperties'>>;
|
|
12
|
+
export declare function connectMongoClientDataService({ connectionOptions, setupListeners, signal, logger, productName, productDocsLink, }: {
|
|
13
|
+
connectionOptions: Readonly<ConnectionOptions>;
|
|
14
|
+
setupListeners: (client: MongoClient) => void;
|
|
15
|
+
signal?: AbortSignal;
|
|
16
|
+
logger?: UnboundDataServiceImplLogger;
|
|
17
|
+
productName?: string;
|
|
18
|
+
productDocsLink?: string;
|
|
19
|
+
}): Promise<[
|
|
10
20
|
metadataClient: CloneableMongoClient,
|
|
11
21
|
crudClient: CloneableMongoClient,
|
|
12
22
|
sshTunnel: SSHTunnel | undefined,
|
|
23
|
+
connectionState: DevtoolsConnectionState,
|
|
13
24
|
options: {
|
|
14
25
|
url: string;
|
|
15
26
|
options: DevtoolsConnectOptions;
|
|
@@ -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,
|
|
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,EACV,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAIpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAO9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAK7D,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAC/C,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACvD,CAAC;AAEF,wBAAgB,kBAAkB,CAChC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9C,MAAM,CAAC,EAAE,WAAW,GACnB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAqB5E;AAED,wBAAsB,6BAA6B,CAAC,EAClD,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,MAAM,EACN,WAAW,EACX,eAAe,GAChB,EAAE;IACD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC/C,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CACT;IACE,cAAc,EAAE,oBAAoB;IACpC,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,SAAS,GAAG,SAAS;IAChC,eAAe,EAAE,uBAAuB;IACxC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,sBAAsB,CAAA;KAAE;CAC1D,CACF,CA6JA"}
|
|
@@ -3,25 +3,44 @@ 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
|
+
exports.connectMongoClientDataService = exports.prepareOIDCOptions = exports.createClonedClient = void 0;
|
|
7
7
|
const mongodb_1 = require("mongodb");
|
|
8
8
|
const devtools_connect_1 = require("@mongodb-js/devtools-connect");
|
|
9
9
|
const events_1 = __importDefault(require("events"));
|
|
10
10
|
const redact_1 = require("./redact");
|
|
11
11
|
const lodash_1 = __importDefault(require("lodash"));
|
|
12
|
-
const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
|
|
13
12
|
const ssh_tunnel_1 = require("./ssh-tunnel");
|
|
14
13
|
const run_command_1 = require("./run-command");
|
|
15
|
-
const
|
|
14
|
+
const logger_1 = require("./logger");
|
|
15
|
+
const debug = logger_1.debug.extend('compass-connect');
|
|
16
16
|
exports.createClonedClient = Symbol('createClonedClient');
|
|
17
|
-
|
|
17
|
+
function prepareOIDCOptions(connectionOptions, signal) {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
var _c;
|
|
20
|
+
const options = {
|
|
21
|
+
oidc: { ...connectionOptions.oidc },
|
|
22
|
+
authMechanismProperties: {},
|
|
23
|
+
};
|
|
24
|
+
(_a = (_c = options.oidc).allowedFlows) !== null && _a !== void 0 ? _a : (_c.allowedFlows = ['auth-code']);
|
|
25
|
+
if ((_b = connectionOptions.oidc) === null || _b === void 0 ? void 0 : _b.enableUntrustedEndpoints) {
|
|
26
|
+
options.authMechanismProperties.ALLOWED_HOSTS = ['*'];
|
|
27
|
+
}
|
|
28
|
+
options.oidc.signal = signal;
|
|
29
|
+
return options;
|
|
30
|
+
}
|
|
31
|
+
exports.prepareOIDCOptions = prepareOIDCOptions;
|
|
32
|
+
async function connectMongoClientDataService({ connectionOptions, setupListeners, signal, logger, productName, productDocsLink, }) {
|
|
18
33
|
var _a, _b;
|
|
19
34
|
debug('connectMongoClient invoked', (0, redact_1.redactConnectionOptions)(connectionOptions));
|
|
35
|
+
const oidcOptions = prepareOIDCOptions(connectionOptions, signal);
|
|
20
36
|
const url = connectionOptions.connectionString;
|
|
21
37
|
const options = {
|
|
38
|
+
productName: productName !== null && productName !== void 0 ? productName : 'MongoDB Compass',
|
|
39
|
+
productDocsLink: productDocsLink !== null && productDocsLink !== void 0 ? productDocsLink : 'https://www.mongodb.com/docs/compass/',
|
|
22
40
|
monitorCommands: true,
|
|
23
41
|
useSystemCA: connectionOptions.useSystemCA,
|
|
24
42
|
autoEncryption: (_a = connectionOptions.fleOptions) === null || _a === void 0 ? void 0 : _a.autoEncryption,
|
|
43
|
+
...oidcOptions,
|
|
25
44
|
};
|
|
26
45
|
if (options.autoEncryption && process.env.COMPASS_CRYPT_LIBRARY_PATH) {
|
|
27
46
|
options.autoEncryption = {
|
|
@@ -32,7 +51,7 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
|
|
|
32
51
|
},
|
|
33
52
|
};
|
|
34
53
|
}
|
|
35
|
-
const [tunnel, socks5Options] = await (0, ssh_tunnel_1.openSshTunnel)(connectionOptions.sshTunnel);
|
|
54
|
+
const [tunnel, socks5Options] = await (0, ssh_tunnel_1.openSshTunnel)(connectionOptions.sshTunnel, logger);
|
|
36
55
|
if (socks5Options) {
|
|
37
56
|
Object.assign(options, socks5Options);
|
|
38
57
|
}
|
|
@@ -45,32 +64,69 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
|
|
|
45
64
|
}
|
|
46
65
|
}
|
|
47
66
|
const connectLogger = new events_1.default();
|
|
48
|
-
(
|
|
67
|
+
if (logger) {
|
|
68
|
+
(0, devtools_connect_1.hookLogger)(connectLogger, logger, 'compass', redact_1.redactConnectionString);
|
|
69
|
+
}
|
|
49
70
|
async function connectSingleClient(overrideOptions) {
|
|
50
71
|
const connectOptions = lodash_1.default.cloneDeep({ ...options, ...overrideOptions });
|
|
51
|
-
const client = await (0, devtools_connect_1.connectMongoClient)(url, connectOptions, connectLogger, CompassMongoClient);
|
|
72
|
+
const { client, state } = await (0, devtools_connect_1.connectMongoClient)(url, connectOptions, connectLogger, CompassMongoClient);
|
|
52
73
|
await (0, run_command_1.runCommand)(client.db('admin'), { ping: 1 });
|
|
53
|
-
return
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
74
|
+
return {
|
|
75
|
+
client: Object.assign(client, {
|
|
76
|
+
async [exports.createClonedClient]() {
|
|
77
|
+
const { client } = await connectSingleClient({
|
|
78
|
+
...connectOptions,
|
|
79
|
+
parentState: state,
|
|
80
|
+
});
|
|
81
|
+
return client;
|
|
82
|
+
},
|
|
83
|
+
}),
|
|
84
|
+
state,
|
|
85
|
+
};
|
|
58
86
|
}
|
|
59
87
|
let metadataClient;
|
|
60
88
|
let crudClient;
|
|
89
|
+
let state;
|
|
61
90
|
try {
|
|
62
91
|
debug('waiting for MongoClient to connect ...');
|
|
63
|
-
[metadataClient, crudClient] = await Promise.race([
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
92
|
+
[metadataClient, crudClient, state] = await Promise.race([
|
|
93
|
+
(async () => {
|
|
94
|
+
const { client: metadataClient, state } = await connectSingleClient({
|
|
95
|
+
autoEncryption: undefined,
|
|
96
|
+
});
|
|
97
|
+
const parentHandlePromise = state.getStateShareServer();
|
|
98
|
+
parentHandlePromise.catch(() => {
|
|
99
|
+
});
|
|
100
|
+
let crudClient;
|
|
101
|
+
if (options.autoEncryption) {
|
|
102
|
+
try {
|
|
103
|
+
crudClient = (await connectSingleClient({
|
|
104
|
+
parentState: state,
|
|
105
|
+
})).client;
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
await metadataClient.close();
|
|
109
|
+
throw err;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
await parentHandlePromise;
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
await metadataClient.close();
|
|
117
|
+
await (crudClient === null || crudClient === void 0 ? void 0 : crudClient.close());
|
|
118
|
+
throw err;
|
|
119
|
+
}
|
|
120
|
+
return [metadataClient, crudClient, state];
|
|
121
|
+
})(),
|
|
68
122
|
(0, ssh_tunnel_1.waitForTunnelError)(tunnel),
|
|
69
123
|
]);
|
|
124
|
+
options.parentHandle = await state.getStateShareServer();
|
|
70
125
|
return [
|
|
71
126
|
metadataClient,
|
|
72
127
|
crudClient !== null && crudClient !== void 0 ? crudClient : metadataClient,
|
|
73
128
|
tunnel,
|
|
129
|
+
state,
|
|
74
130
|
{ url, options },
|
|
75
131
|
];
|
|
76
132
|
}
|
|
@@ -78,7 +134,7 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
|
|
|
78
134
|
debug('connection error', err);
|
|
79
135
|
debug('force shutting down ssh tunnel ...');
|
|
80
136
|
await Promise.all([
|
|
81
|
-
(0, ssh_tunnel_1.forceCloseTunnel)(tunnel),
|
|
137
|
+
(0, ssh_tunnel_1.forceCloseTunnel)(tunnel, logger),
|
|
82
138
|
crudClient === null || crudClient === void 0 ? void 0 : crudClient.close(),
|
|
83
139
|
metadataClient === null || metadataClient === void 0 ? void 0 : metadataClient.close(),
|
|
84
140
|
]).catch(() => {
|
|
@@ -86,5 +142,5 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
|
|
|
86
142
|
throw err;
|
|
87
143
|
}
|
|
88
144
|
}
|
|
89
|
-
exports.
|
|
145
|
+
exports.connectMongoClientDataService = connectMongoClientDataService;
|
|
90
146
|
//# sourceMappingURL=connect-mongo-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect-mongo-client.js","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":";;;;;;AACA,qCAAsC;AACtC,mEAA8E;
|
|
1
|
+
{"version":3,"file":"connect-mongo-client.js","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":"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"}
|
package/lib/connect.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import type { ConnectionOptions } from './connection-options';
|
|
2
3
|
import type { DataService } from './data-service';
|
|
3
|
-
|
|
4
|
+
import type { DataServiceImplLogger } from './logger';
|
|
5
|
+
export default function connect({ connectionOptions, signal, logger, productName, productDocsLink, }: {
|
|
6
|
+
connectionOptions: ConnectionOptions;
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
logger?: DataServiceImplLogger;
|
|
9
|
+
productName?: string;
|
|
10
|
+
productDocsLink?: string;
|
|
11
|
+
}): Promise<DataService>;
|
|
4
12
|
//# sourceMappingURL=connect.d.ts.map
|
package/lib/connect.d.ts.map
CHANGED
|
@@ -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,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
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;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtD,wBAA8B,OAAO,CAAC,EACpC,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,WAAW,EACX,eAAe,GAChB,EAAE;IACD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,WAAW,CAAC,CAQvB"}
|
package/lib/connect.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const data_service_1 = require("./data-service");
|
|
4
|
-
async function connect(connectionOptions) {
|
|
5
|
-
const dataService = new data_service_1.DataServiceImpl(connectionOptions);
|
|
6
|
-
await dataService.connect(
|
|
4
|
+
async function connect({ connectionOptions, signal, logger, productName, productDocsLink, }) {
|
|
5
|
+
const dataService = new data_service_1.DataServiceImpl(connectionOptions, logger);
|
|
6
|
+
await dataService.connect({
|
|
7
|
+
signal,
|
|
8
|
+
productName,
|
|
9
|
+
productDocsLink,
|
|
10
|
+
});
|
|
7
11
|
return dataService;
|
|
8
12
|
}
|
|
9
13
|
exports.default = connect;
|
package/lib/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;AAGA,iDAAiD;AAElC,KAAK,UAAU,OAAO,CAAC,EACpC,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,WAAW,EACX,eAAe,GAOhB;IACC,MAAM,WAAW,GAAG,IAAI,8BAAe,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,WAAW,CAAC,OAAO,CAAC;QACxB,MAAM;QACN,WAAW;QACX,eAAe;KAChB,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC;AApBD,0BAoBC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { AutoEncryptionOptions } from 'mongodb';
|
|
2
|
+
import type { DevtoolsConnectOptions } from '@mongodb-js/devtools-connect';
|
|
3
|
+
export type OIDCOptions = Omit<NonNullable<DevtoolsConnectOptions['oidc']>, 'notifyDeviceFlow' | 'signal'> & {
|
|
4
|
+
enableUntrustedEndpoints?: boolean;
|
|
5
|
+
};
|
|
2
6
|
export interface ConnectionOptions {
|
|
3
7
|
connectionString: string;
|
|
4
8
|
sshTunnel?: ConnectionSshOptions;
|
|
5
9
|
useSystemCA?: boolean;
|
|
10
|
+
oidc?: OIDCOptions;
|
|
6
11
|
fleOptions?: ConnectionFleOptions;
|
|
7
12
|
}
|
|
8
13
|
export interface ConnectionFleOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-options.d.ts","sourceRoot":"","sources":["../src/connection-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"connection-options.d.ts","sourceRoot":"","sources":["../src/connection-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,WAAW,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,EAC3C,kBAAkB,GAAG,QAAQ,CAC9B,GAAG;IAGF,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAIhC,gBAAgB,EAAE,MAAM,CAAC;IAKzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAKjC,WAAW,CAAC,EAAE,OAAO,CAAC;IAKtB,IAAI,CAAC,EAAE,WAAW,CAAC;IAKnB,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IAInC,gBAAgB,EAAE,OAAO,CAAC;IAK1B,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,oBAAoB;IAInC,IAAI,EAAE,MAAM,CAAC;IAKb,IAAI,EAAE,MAAM,CAAC;IAKb,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
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
|
+
import type { UnboundDataServiceImplLogger } from './logger';
|
|
4
5
|
type FieldPath = string[];
|
|
5
6
|
export interface CSFLEEncryptedFieldsSet {
|
|
6
7
|
readonly encryptedFields: FieldPath[];
|
|
@@ -34,10 +35,11 @@ interface CSFLECollectionInfo {
|
|
|
34
35
|
lastUpdated?: Date;
|
|
35
36
|
}
|
|
36
37
|
export declare class CSFLECollectionTrackerImpl implements CSFLECollectionTracker {
|
|
38
|
+
private _dataService;
|
|
39
|
+
private _crudClient;
|
|
40
|
+
private _logger?;
|
|
37
41
|
_nsToInfo: Map<string, CSFLECollectionInfo>;
|
|
38
|
-
_dataService: Pick<DataService, 'on' | 'listCollections'
|
|
39
|
-
_crudClient: MongoClient;
|
|
40
|
-
constructor(dataService: Pick<DataService, 'on' | 'listCollections'>, crudClient: MongoClient);
|
|
42
|
+
constructor(_dataService: Pick<DataService, 'on' | 'listCollections'>, _crudClient: MongoClient, _logger?: UnboundDataServiceImplLogger | undefined);
|
|
41
43
|
isUpdateAllowed(ns: string, originalDocument: Document): Promise<boolean>;
|
|
42
44
|
knownSchemaForCollection(ns: string): Promise<{
|
|
43
45
|
hasSchema: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csfle-collection-tracker.d.ts","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAyB,MAAM,SAAS,CAAC;AAE5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EAEvB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"csfle-collection-tracker.d.ts","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.CSFLECollectionTrackerImpl = void 0;
|
|
7
7
|
const mongodb_ns_1 = __importDefault(require("mongodb-ns"));
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
-
const
|
|
10
|
-
const { log, mongoLogId } = (0, compass_logging_1.default)('COMPASS-DATA-SERVICE');
|
|
9
|
+
const logger_1 = require("./logger");
|
|
11
10
|
class CSFLEEncryptedFieldsSetImpl {
|
|
12
11
|
constructor() {
|
|
13
12
|
this._encryptedFields = [];
|
|
@@ -108,14 +107,16 @@ function isOlderThan1Minute(oldDate) {
|
|
|
108
107
|
return Date.now() - oldDate.getTime() >= 60000;
|
|
109
108
|
}
|
|
110
109
|
class CSFLECollectionTrackerImpl {
|
|
111
|
-
constructor(
|
|
110
|
+
constructor(_dataService, _crudClient, _logger) {
|
|
111
|
+
var _a;
|
|
112
|
+
this._dataService = _dataService;
|
|
113
|
+
this._crudClient = _crudClient;
|
|
114
|
+
this._logger = _logger;
|
|
112
115
|
this._nsToInfo = new Map();
|
|
113
|
-
this._dataService = dataService;
|
|
114
|
-
this._crudClient = crudClient;
|
|
115
116
|
this._processClientSchemaDefinitions();
|
|
116
117
|
const { autoEncrypter } = this._crudClient.options;
|
|
117
118
|
if (autoEncrypter) {
|
|
118
|
-
|
|
119
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info('COMPASS-DATA-SERVICE', (0, logger_1.mongoLogId)(1001000118), 'CSFLECollectionTracker', 'Hooking AutoEncrypter metaDataClient property');
|
|
119
120
|
autoEncrypter._metaDataClient = this._createHookedMetadataClient(autoEncrypter._metaDataClient);
|
|
120
121
|
}
|
|
121
122
|
}
|
|
@@ -139,25 +140,26 @@ class CSFLECollectionTrackerImpl {
|
|
|
139
140
|
return { hasSchema, encryptedFields };
|
|
140
141
|
}
|
|
141
142
|
_processClientSchemaDefinitions() {
|
|
142
|
-
var _a, _b;
|
|
143
|
+
var _a, _b, _c;
|
|
143
144
|
const { autoEncryption } = this._crudClient.options;
|
|
144
145
|
for (const ns of [
|
|
145
146
|
...Object.keys((_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.schemaMap) !== null && _a !== void 0 ? _a : {}),
|
|
146
147
|
...Object.keys((_b = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.encryptedFieldsMap) !== null && _b !== void 0 ? _b : {}),
|
|
147
148
|
]) {
|
|
148
|
-
|
|
149
|
+
(_c = this._logger) === null || _c === void 0 ? void 0 : _c.info('COMPASS-DATA-SERVICE', (0, logger_1.mongoLogId)(1001000119), 'CSFLECollectionTracker', 'Processing client-side schema information', { ns });
|
|
149
150
|
const info = this._getCSFLECollectionInfo(ns);
|
|
150
151
|
info.clientEnforcedEncryptedFields =
|
|
151
152
|
extractEncrytedFieldFromAutoEncryptionOptions(ns, autoEncryption);
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
155
|
async _fetchCSFLECollectionInfo(ns) {
|
|
156
|
+
var _a;
|
|
155
157
|
const parsedNs = (0, mongodb_ns_1.default)(ns);
|
|
156
158
|
const info = this._getCSFLECollectionInfo(ns);
|
|
157
159
|
if (!info.serverEnforcedEncryptedFields ||
|
|
158
160
|
!info.lastUpdated ||
|
|
159
161
|
isOlderThan1Minute(info.lastUpdated)) {
|
|
160
|
-
|
|
162
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info('COMPASS-DATA-SERVICE', (0, logger_1.mongoLogId)(1001000120), 'CSFLECollectionTracker', 'Refreshing listCollections cache', { ns });
|
|
161
163
|
await this._dataService.listCollections(parsedNs.database, {
|
|
162
164
|
name: parsedNs.collection,
|
|
163
165
|
});
|
|
@@ -173,12 +175,12 @@ class CSFLECollectionTrackerImpl {
|
|
|
173
175
|
return info;
|
|
174
176
|
}
|
|
175
177
|
updateCollectionInfo(ns, result) {
|
|
176
|
-
var _a, _b;
|
|
177
|
-
|
|
178
|
+
var _a, _b, _c;
|
|
179
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.info('COMPASS-DATA-SERVICE', (0, logger_1.mongoLogId)(1001000121), 'CSFLECollectionTracker', 'Processing listCollections update', { ns });
|
|
178
180
|
const info = this._getCSFLECollectionInfo(ns);
|
|
179
181
|
info.serverEnforcedEncryptedFields =
|
|
180
182
|
extractEncryptedFieldsFromListCollectionsResult(result.options);
|
|
181
|
-
info.hasServerSchema = !!((
|
|
183
|
+
info.hasServerSchema = !!((_c = (_b = result.options) === null || _b === void 0 ? void 0 : _b.validator) === null || _c === void 0 ? void 0 : _c.$jsonSchema);
|
|
182
184
|
info.lastUpdated = new Date();
|
|
183
185
|
}
|
|
184
186
|
_createHookedMetadataClient(wrappedClient) {
|
|
@@ -188,13 +190,14 @@ class CSFLECollectionTrackerImpl {
|
|
|
188
190
|
listCollections: (filter, opts) => {
|
|
189
191
|
return {
|
|
190
192
|
toArray: async () => {
|
|
193
|
+
var _a;
|
|
191
194
|
const collectionInfos = await wrappedClient
|
|
192
195
|
.db(dbName)
|
|
193
196
|
.listCollections(filter, opts)
|
|
194
197
|
.toArray();
|
|
195
198
|
const err = this._checkListCollectionsForLibmongocryptResult(dbName, filter, (collectionInfos !== null && collectionInfos !== void 0 ? collectionInfos : []));
|
|
196
199
|
if (err) {
|
|
197
|
-
|
|
200
|
+
(_a = this._logger) === null || _a === void 0 ? void 0 : _a.error('COMPASS-DATA-SERVICE', (0, logger_1.mongoLogId)(1001000122), 'CSFLECollectionTracker', 'Rejecting listCollections in hooked metaDataClient', { error: err.message });
|
|
198
201
|
throw err;
|
|
199
202
|
}
|
|
200
203
|
return collectionInfos;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csfle-collection-tracker.js","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":";;;;;;AAQA,4DAAwC;AACxC,oDAAuB;
|
|
1
|
+
{"version":3,"file":"csfle-collection-tracker.js","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"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"}
|
package/lib/data-service.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import type { AggregateOptions, AggregationCursor, AnyBulkWriteOperation, BulkWriteOptions, BulkWriteResult, Collection, CountDocumentsOptions, CreateCollectionOptions, CreateIndexesOptions, DeleteOptions, DeleteResult, Document, EstimatedDocumentCountOptions, Filter, FindCursor, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, IndexSpecification, InsertManyResult, InsertOneOptions, InsertOneResult,
|
|
2
|
+
import type { AggregateOptions, AggregationCursor, AnyBulkWriteOperation, BulkWriteOptions, BulkWriteResult, Collection, CountDocumentsOptions, CreateCollectionOptions, CreateIndexesOptions, DeleteOptions, DeleteResult, Document, EstimatedDocumentCountOptions, Filter, FindCursor, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, IndexSpecification, InsertManyResult, InsertOneOptions, InsertOneResult, TopologyDescription, TopologyDescriptionChangedEvent, TopologyType, IndexInformationOptions, UpdateOptions, ReplaceOptions } from 'mongodb';
|
|
3
3
|
import ConnectionStringUrl from 'mongodb-connection-string-url';
|
|
4
4
|
import type { ConnectionOptions } from './connection-options';
|
|
5
5
|
import type { InstanceDetails } from './instance-detail-helper';
|
|
@@ -10,6 +10,9 @@ import type { CSFLECollectionTracker } from './csfle-collection-tracker';
|
|
|
10
10
|
import * as mongodb from 'mongodb';
|
|
11
11
|
import { isCancelError } from '@mongodb-js/compass-utils';
|
|
12
12
|
import type { IndexDefinition } from './index-detail-helper';
|
|
13
|
+
import type { BoundLogger, DataServiceImplLogger } from './logger';
|
|
14
|
+
import { WithLogContext } from './logger';
|
|
15
|
+
import type { DevtoolsConnectOptions } from '@mongodb-js/devtools-connect';
|
|
13
16
|
export type ExecutionOptions = {
|
|
14
17
|
abortSignal?: AbortSignal;
|
|
15
18
|
};
|
|
@@ -22,12 +25,16 @@ export interface DataServiceEventMap {
|
|
|
22
25
|
export interface DataService {
|
|
23
26
|
on<K extends keyof DataServiceEventMap>(event: K, listener: DataServiceEventMap[K]): this;
|
|
24
27
|
once<K extends keyof DataServiceEventMap>(event: K, listener: DataServiceEventMap[K]): this;
|
|
25
|
-
connect(
|
|
28
|
+
connect(options?: {
|
|
29
|
+
signal?: AbortSignal;
|
|
30
|
+
productName?: string;
|
|
31
|
+
productDocsLink?: string;
|
|
32
|
+
}): Promise<void>;
|
|
26
33
|
disconnect(): Promise<void>;
|
|
27
34
|
isConnected(): boolean;
|
|
28
35
|
getMongoClientConnectionOptions(): {
|
|
29
36
|
url: string;
|
|
30
|
-
options:
|
|
37
|
+
options: DevtoolsConnectOptions;
|
|
31
38
|
} | undefined;
|
|
32
39
|
getConnectionOptions(): Readonly<ConnectionOptions>;
|
|
33
40
|
getConnectionString(): ConnectionStringUrl;
|
|
@@ -36,7 +43,7 @@ export interface DataService {
|
|
|
36
43
|
isWritable(): boolean;
|
|
37
44
|
isMongos(): boolean;
|
|
38
45
|
instance(): Promise<InstanceDetails>;
|
|
39
|
-
currentOp(
|
|
46
|
+
currentOp(): Promise<{
|
|
40
47
|
inprog: Document;
|
|
41
48
|
}>;
|
|
42
49
|
serverStatus(): Promise<Document>;
|
|
@@ -80,6 +87,8 @@ export interface DataService {
|
|
|
80
87
|
explainFind(ns: string, filter: Filter<Document>, options?: FindOptions, executionOptions?: ExplainExecuteOptions): Promise<Document>;
|
|
81
88
|
findOneAndReplace(ns: string, filter: Filter<Document>, replacement: Document, options?: FindOneAndReplaceOptions): Promise<Document | null>;
|
|
82
89
|
findOneAndUpdate(ns: string, filter: Filter<Document>, update: Document, options?: FindOneAndUpdateOptions): Promise<Document | null>;
|
|
90
|
+
updateOne(ns: string, filter: Filter<Document>, update: Document, options?: UpdateOptions): Promise<Document | null>;
|
|
91
|
+
replaceOne(ns: string, filter: Filter<Document>, replacement: Document, options?: UpdateOptions): Promise<Document | null>;
|
|
83
92
|
count(ns: string, filter: Filter<Document>, options?: CountDocumentsOptions, executionOptions?: ExecutionOptions): Promise<number>;
|
|
84
93
|
sample(ns: string, args?: {
|
|
85
94
|
query?: Filter<Document>;
|
|
@@ -99,9 +108,6 @@ export interface DataService {
|
|
|
99
108
|
knownSchemaForCollection: CSFLECollectionTracker['knownSchemaForCollection'];
|
|
100
109
|
configuredKMSProviders(): string[];
|
|
101
110
|
}
|
|
102
|
-
declare abstract class WithLogContext {
|
|
103
|
-
protected abstract _logCtx(): string;
|
|
104
|
-
}
|
|
105
111
|
declare class DataServiceImpl extends WithLogContext implements DataService {
|
|
106
112
|
private readonly _connectionOptions;
|
|
107
113
|
private _isConnecting;
|
|
@@ -111,18 +117,20 @@ declare class DataServiceImpl extends WithLogContext implements DataService {
|
|
|
111
117
|
private _useCRUDClient;
|
|
112
118
|
private _csfleCollectionTracker?;
|
|
113
119
|
private _tunnel?;
|
|
120
|
+
private _state?;
|
|
114
121
|
private _lastSeenTopology;
|
|
115
122
|
private _isWritable;
|
|
116
123
|
private _id;
|
|
117
124
|
private _emitter;
|
|
118
|
-
|
|
125
|
+
protected _logger: BoundLogger;
|
|
126
|
+
private _unboundLogger?;
|
|
127
|
+
constructor(connectionOptions: Readonly<ConnectionOptions>, logger?: DataServiceImplLogger);
|
|
119
128
|
on(...args: Parameters<DataService['on']>): this;
|
|
120
129
|
once(...args: Parameters<DataService['on']>): this;
|
|
121
130
|
getMongoClientConnectionOptions(): {
|
|
122
131
|
url: string;
|
|
123
|
-
options:
|
|
132
|
+
options: DevtoolsConnectOptions;
|
|
124
133
|
} | undefined;
|
|
125
|
-
protected _logCtx(): string;
|
|
126
134
|
getConnectionOptions(): Readonly<ConnectionOptions>;
|
|
127
135
|
getConnectionString(): ConnectionStringUrl;
|
|
128
136
|
setCSFLEEnabled(enabled: boolean): void;
|
|
@@ -149,7 +157,11 @@ declare class DataServiceImpl extends WithLogContext implements DataService {
|
|
|
149
157
|
_id: string;
|
|
150
158
|
name: string;
|
|
151
159
|
}[]>;
|
|
152
|
-
connect(
|
|
160
|
+
connect({ signal, productName, productDocsLink, }?: {
|
|
161
|
+
signal?: AbortSignal;
|
|
162
|
+
productName?: string;
|
|
163
|
+
productDocsLink?: string;
|
|
164
|
+
}): Promise<void>;
|
|
153
165
|
estimatedCount(ns: string, options?: EstimatedDocumentCountOptions, executionOptions?: ExecutionOptions): Promise<number>;
|
|
154
166
|
count(ns: string, filter: Filter<Document>, options?: CountDocumentsOptions, executionOptions?: ExecutionOptions): Promise<number>;
|
|
155
167
|
createCollection(ns: string, options: CreateCollectionOptions): Promise<Collection<Document>>;
|
|
@@ -166,6 +178,8 @@ declare class DataServiceImpl extends WithLogContext implements DataService {
|
|
|
166
178
|
findCursor(ns: string, filter: Filter<Document>, options?: FindOptions): FindCursor;
|
|
167
179
|
findOneAndReplace(ns: string, filter: Filter<Document>, replacement: Document, options: FindOneAndReplaceOptions): Promise<Document | null>;
|
|
168
180
|
findOneAndUpdate(ns: string, filter: Filter<Document>, update: Document, options: FindOneAndUpdateOptions): Promise<Document | null>;
|
|
181
|
+
updateOne(ns: string, filter: Filter<Document>, update: Document, options: UpdateOptions): Promise<Document | null>;
|
|
182
|
+
replaceOne(ns: string, filter: Filter<Document>, replacement: Document, options: ReplaceOptions): Promise<Document | null>;
|
|
169
183
|
explainFind(ns: string, filter: Filter<Document>, options?: FindOptions, executionOptions?: ExplainExecuteOptions): Promise<Document>;
|
|
170
184
|
explainAggregate(ns: string, pipeline: Document[], options: AggregateOptions, executionOptions?: ExplainExecuteOptions): Promise<Document>;
|
|
171
185
|
private _indexStats;
|
|
@@ -178,7 +192,7 @@ declare class DataServiceImpl extends WithLogContext implements DataService {
|
|
|
178
192
|
collMod?: never;
|
|
179
193
|
}): Promise<Document>;
|
|
180
194
|
bulkWrite(ns: string, operations: AnyBulkWriteOperation<Document>[], options: BulkWriteOptions): Promise<BulkWriteResult>;
|
|
181
|
-
currentOp(
|
|
195
|
+
currentOp(): Promise<{
|
|
182
196
|
inprog: Document[];
|
|
183
197
|
}>;
|
|
184
198
|
getLastSeenTopology(): null | TopologyDescription;
|