mongodb-data-service 22.5.1 → 22.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/lib/connect-mongo-client.d.ts +7 -3
  2. package/lib/connect-mongo-client.d.ts.map +1 -1
  3. package/lib/connect-mongo-client.js +82 -20
  4. package/lib/connect-mongo-client.js.map +1 -1
  5. package/lib/connect.d.ts +3 -1
  6. package/lib/connect.d.ts.map +1 -1
  7. package/lib/connect.js +3 -3
  8. package/lib/connect.js.map +1 -1
  9. package/lib/connection-options.d.ts +5 -0
  10. package/lib/connection-options.d.ts.map +1 -1
  11. package/lib/csfle-collection-tracker.d.ts +8 -8
  12. package/lib/csfle-collection-tracker.d.ts.map +1 -1
  13. package/lib/csfle-collection-tracker.js +17 -19
  14. package/lib/csfle-collection-tracker.js.map +1 -1
  15. package/lib/data-service.d.ts +112 -127
  16. package/lib/data-service.d.ts.map +1 -1
  17. package/lib/data-service.js +1087 -1040
  18. package/lib/data-service.js.map +1 -1
  19. package/lib/index-detail-helper.d.ts +36 -0
  20. package/lib/index-detail-helper.d.ts.map +1 -0
  21. package/lib/index-detail-helper.js +92 -0
  22. package/lib/index-detail-helper.js.map +1 -0
  23. package/lib/index.d.ts +1 -0
  24. package/lib/index.d.ts.map +1 -1
  25. package/lib/instance-detail-helper.d.ts +10 -8
  26. package/lib/instance-detail-helper.d.ts.map +1 -1
  27. package/lib/instance-detail-helper.js +12 -4
  28. package/lib/instance-detail-helper.js.map +1 -1
  29. package/lib/legacy/legacy-connection-model.d.ts +1 -1
  30. package/lib/legacy/legacy-connection-model.d.ts.map +1 -1
  31. package/lib/logger.d.ts +19 -0
  32. package/lib/logger.d.ts.map +1 -0
  33. package/lib/logger.js +10 -0
  34. package/lib/logger.js.map +1 -0
  35. package/lib/run-command.d.ts +56 -19
  36. package/lib/run-command.d.ts.map +1 -1
  37. package/lib/run-command.js.map +1 -1
  38. package/lib/ssh-tunnel.d.ts +4 -3
  39. package/lib/ssh-tunnel.d.ts.map +1 -1
  40. package/lib/ssh-tunnel.js +7 -9
  41. package/lib/ssh-tunnel.js.map +1 -1
  42. package/lib/types.d.ts +1 -17
  43. package/lib/types.d.ts.map +1 -1
  44. package/package.json +27 -34
@@ -1,15 +1,19 @@
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
- export declare type CloneableMongoClient = MongoClient & {
8
+ export type CloneableMongoClient = MongoClient & {
7
9
  [createClonedClient](): Promise<CloneableMongoClient>;
8
10
  };
9
- export default function connectMongoClientCompass(connectionOptions: Readonly<ConnectionOptions>, setupListeners: (client: MongoClient) => void): Promise<[
11
+ export declare function prepareOIDCOptions(connectionOptions: Readonly<ConnectionOptions>, signal?: AbortSignal): Required<Pick<DevtoolsConnectOptions, 'oidc' | 'authMechanismProperties'>>;
12
+ export declare function connectMongoClientCompass(connectionOptions: Readonly<ConnectionOptions>, setupListeners: (client: MongoClient) => void, signal?: AbortSignal, logger?: UnboundDataServiceImplLogger): Promise<[
10
13
  metadataClient: CloneableMongoClient,
11
14
  crudClient: CloneableMongoClient,
12
15
  sshTunnel: SSHTunnel | undefined,
16
+ connectionState: DevtoolsConnectionState,
13
17
  options: {
14
18
  url: string;
15
19
  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,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"}
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,CA4B5E;AAED,wBAAsB,yBAAyB,CAC7C,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAC9C,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,EAC7C,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,4BAA4B,GACpC,OAAO,CACR;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,24 +3,49 @@ 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.connectMongoClientCompass = 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
- const { debug, log } = (0, compass_logging_1.default)('COMPASS-CONNECT');
13
+ const run_command_1 = require("./run-command");
14
+ const logger_1 = require("./logger");
15
+ const debug = logger_1.debug.extend('compass-connect');
15
16
  exports.createClonedClient = Symbol('createClonedClient');
16
- async function connectMongoClientCompass(connectionOptions, setupListeners) {
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 (process.env.COMPASS_TEST_OIDC_BROWSER_DUMMY) {
26
+ options.oidc.openBrowser = {
27
+ command: process.env.COMPASS_TEST_OIDC_BROWSER_DUMMY,
28
+ };
29
+ }
30
+ if ((_b = connectionOptions.oidc) === null || _b === void 0 ? void 0 : _b.enableUntrustedEndpoints) {
31
+ options.authMechanismProperties.ALLOWED_HOSTS = ['*'];
32
+ }
33
+ options.oidc.signal = signal;
34
+ return options;
35
+ }
36
+ exports.prepareOIDCOptions = prepareOIDCOptions;
37
+ async function connectMongoClientCompass(connectionOptions, setupListeners, signal, logger) {
17
38
  var _a, _b;
18
39
  debug('connectMongoClient invoked', (0, redact_1.redactConnectionOptions)(connectionOptions));
40
+ const oidcOptions = prepareOIDCOptions(connectionOptions, signal);
19
41
  const url = connectionOptions.connectionString;
20
42
  const options = {
43
+ productName: 'MongoDB Compass',
44
+ productDocsLink: 'https://www.mongodb.com/docs/compass/',
21
45
  monitorCommands: true,
22
46
  useSystemCA: connectionOptions.useSystemCA,
23
47
  autoEncryption: (_a = connectionOptions.fleOptions) === null || _a === void 0 ? void 0 : _a.autoEncryption,
48
+ ...oidcOptions,
24
49
  };
25
50
  if (options.autoEncryption && process.env.COMPASS_CRYPT_LIBRARY_PATH) {
26
51
  options.autoEncryption = {
@@ -31,7 +56,7 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
31
56
  },
32
57
  };
33
58
  }
34
- const [tunnel, socks5Options] = await (0, ssh_tunnel_1.openSshTunnel)(connectionOptions.sshTunnel);
59
+ const [tunnel, socks5Options] = await (0, ssh_tunnel_1.openSshTunnel)(connectionOptions.sshTunnel, logger);
35
60
  if (socks5Options) {
36
61
  Object.assign(options, socks5Options);
37
62
  }
@@ -44,32 +69,69 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
44
69
  }
45
70
  }
46
71
  const connectLogger = new events_1.default();
47
- (0, devtools_connect_1.hookLogger)(connectLogger, log.unbound, 'compass', redact_1.redactConnectionString);
72
+ if (logger) {
73
+ (0, devtools_connect_1.hookLogger)(connectLogger, logger, 'compass', redact_1.redactConnectionString);
74
+ }
48
75
  async function connectSingleClient(overrideOptions) {
49
76
  const connectOptions = lodash_1.default.cloneDeep({ ...options, ...overrideOptions });
50
- const client = await (0, devtools_connect_1.connectMongoClient)(url, connectOptions, connectLogger, CompassMongoClient);
51
- await client.db('admin').command({ ping: 1 });
52
- return Object.assign(client, {
53
- async [exports.createClonedClient]() {
54
- return await connectSingleClient(connectOptions);
55
- },
56
- });
77
+ const { client, state } = await (0, devtools_connect_1.connectMongoClient)(url, connectOptions, connectLogger, CompassMongoClient);
78
+ await (0, run_command_1.runCommand)(client.db('admin'), { ping: 1 });
79
+ return {
80
+ client: Object.assign(client, {
81
+ async [exports.createClonedClient]() {
82
+ const { client } = await connectSingleClient({
83
+ ...connectOptions,
84
+ parentState: state,
85
+ });
86
+ return client;
87
+ },
88
+ }),
89
+ state,
90
+ };
57
91
  }
58
92
  let metadataClient;
59
93
  let crudClient;
94
+ let state;
60
95
  try {
61
96
  debug('waiting for MongoClient to connect ...');
62
- [metadataClient, crudClient] = await Promise.race([
63
- Promise.all([
64
- connectSingleClient({ autoEncryption: undefined }),
65
- options.autoEncryption ? connectSingleClient({}) : undefined,
66
- ]),
97
+ [metadataClient, crudClient, state] = await Promise.race([
98
+ (async () => {
99
+ const { client: metadataClient, state } = await connectSingleClient({
100
+ autoEncryption: undefined,
101
+ });
102
+ const parentHandlePromise = state.getStateShareServer();
103
+ parentHandlePromise.catch(() => {
104
+ });
105
+ let crudClient;
106
+ if (options.autoEncryption) {
107
+ try {
108
+ crudClient = (await connectSingleClient({
109
+ parentState: state,
110
+ })).client;
111
+ }
112
+ catch (err) {
113
+ await metadataClient.close();
114
+ throw err;
115
+ }
116
+ }
117
+ try {
118
+ await parentHandlePromise;
119
+ }
120
+ catch (err) {
121
+ await metadataClient.close();
122
+ await (crudClient === null || crudClient === void 0 ? void 0 : crudClient.close());
123
+ throw err;
124
+ }
125
+ return [metadataClient, crudClient, state];
126
+ })(),
67
127
  (0, ssh_tunnel_1.waitForTunnelError)(tunnel),
68
128
  ]);
129
+ options.parentHandle = await state.getStateShareServer();
69
130
  return [
70
131
  metadataClient,
71
132
  crudClient !== null && crudClient !== void 0 ? crudClient : metadataClient,
72
133
  tunnel,
134
+ state,
73
135
  { url, options },
74
136
  ];
75
137
  }
@@ -77,7 +139,7 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
77
139
  debug('connection error', err);
78
140
  debug('force shutting down ssh tunnel ...');
79
141
  await Promise.all([
80
- (0, ssh_tunnel_1.forceCloseTunnel)(tunnel),
142
+ (0, ssh_tunnel_1.forceCloseTunnel)(tunnel, logger),
81
143
  crudClient === null || crudClient === void 0 ? void 0 : crudClient.close(),
82
144
  metadataClient === null || metadataClient === void 0 ? void 0 : metadataClient.close(),
83
145
  ]).catch(() => {
@@ -85,5 +147,5 @@ async function connectMongoClientCompass(connectionOptions, setupListeners) {
85
147
  throw err;
86
148
  }
87
149
  }
88
- exports.default = connectMongoClientCompass;
150
+ exports.connectMongoClientCompass = connectMongoClientCompass;
89
151
  //# 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":"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"}
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,6 @@
1
+ /// <reference types="node" />
1
2
  import type { ConnectionOptions } from './connection-options';
2
3
  import type { DataService } from './data-service';
3
- export default function connect(connectionOptions: ConnectionOptions): Promise<DataService>;
4
+ import type { DataServiceImplLogger } from './logger';
5
+ export default function connect(connectionOptions: ConnectionOptions, signal?: AbortSignal, logger?: DataServiceImplLogger): Promise<DataService>;
4
6
  //# 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,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,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;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtD,wBAA8B,OAAO,CACnC,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAItB"}
package/lib/connect.js CHANGED
@@ -1,9 +1,9 @@
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) {
5
+ const dataService = new data_service_1.DataServiceImpl(connectionOptions, logger);
6
+ await dataService.connect(signal);
7
7
  return dataService;
8
8
  }
9
9
  exports.default = connect;
@@ -1 +1 @@
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
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;AAGA,iDAAiD;AAElC,KAAK,UAAU,OAAO,CACnC,iBAAoC,EACpC,MAAoB,EACpB,MAA8B;IAE9B,MAAM,WAAW,GAAG,IAAI,8BAAe,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,WAAW,CAAC;AACrB,CAAC;AARD,0BAQC"}
@@ -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;AAErD,MAAM,WAAW,iBAAiB;IAIhC,gBAAgB,EAAE,MAAM,CAAC;IAKzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAKjC,WAAW,CAAC,EAAE,OAAO,CAAC;IAKtB,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
+ {"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,7 +1,8 @@
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[];
4
+ import type { UnboundDataServiceImplLogger } from './logger';
5
+ type FieldPath = string[];
5
6
  export interface CSFLEEncryptedFieldsSet {
6
7
  readonly encryptedFields: FieldPath[];
7
8
  readonly equalityQueryableEncryptedFields: FieldPath[];
@@ -12,6 +13,7 @@ export interface CSFLECollectionTracker {
12
13
  hasSchema: boolean;
13
14
  encryptedFields: CSFLEEncryptedFieldsSet;
14
15
  }>;
16
+ updateCollectionInfo(namespace: string, result: CollectionInfoNameOnly & Partial<CollectionInfo>): void;
15
17
  }
16
18
  declare class CSFLEEncryptedFieldsSetImpl implements CSFLEEncryptedFieldsSet {
17
19
  _encryptedFields: {
@@ -33,10 +35,11 @@ interface CSFLECollectionInfo {
33
35
  lastUpdated?: Date;
34
36
  }
35
37
  export declare class CSFLECollectionTrackerImpl implements CSFLECollectionTracker {
38
+ private _dataService;
39
+ private _crudClient;
40
+ private _logger?;
36
41
  _nsToInfo: Map<string, CSFLECollectionInfo>;
37
- _dataService: Pick<DataService, 'on' | 'listCollections'>;
38
- _crudClient: MongoClient;
39
- constructor(dataService: Pick<DataService, 'on' | 'listCollections'>, crudClient: MongoClient);
42
+ constructor(_dataService: Pick<DataService, 'on' | 'listCollections'>, _crudClient: MongoClient, _logger?: UnboundDataServiceImplLogger | undefined);
40
43
  isUpdateAllowed(ns: string, originalDocument: Document): Promise<boolean>;
41
44
  knownSchemaForCollection(ns: string): Promise<{
42
45
  hasSchema: boolean;
@@ -45,10 +48,7 @@ export declare class CSFLECollectionTrackerImpl implements CSFLECollectionTracke
45
48
  _processClientSchemaDefinitions(): void;
46
49
  _fetchCSFLECollectionInfo(ns: string): Promise<CSFLECollectionInfo>;
47
50
  _getCSFLECollectionInfo(ns: string): CSFLECollectionInfo;
48
- _updateCollectionInfoFromDataService(opts: {
49
- databaseName: string;
50
- nameOnly?: boolean;
51
- }, result: CollectionInfoNameOnly & Partial<CollectionInfo>): void;
51
+ updateCollectionInfo(ns: string, result: CollectionInfoNameOnly & Partial<CollectionInfo>): void;
52
52
  _createHookedMetadataClient(wrappedClient: MongoClient): MongoClient;
53
53
  _checkListCollectionsForLibmongocryptResult(dbName: string, filter: Document, collectionInfos: CollectionInfo[]): Error | undefined;
54
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"csfle-collection-tracker.d.ts","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"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"}
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 compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
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,15 +107,16 @@ function isOlderThan1Minute(oldDate) {
108
107
  return Date.now() - oldDate.getTime() >= 60000;
109
108
  }
110
109
  class CSFLECollectionTrackerImpl {
111
- constructor(dataService, crudClient) {
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
- this._dataService.on('collectionInfoFetched', this._updateCollectionInfoFromDataService.bind(this));
116
116
  this._processClientSchemaDefinitions();
117
117
  const { autoEncrypter } = this._crudClient.options;
118
118
  if (autoEncrypter) {
119
- log.info(mongoLogId(1001000118), 'CSFLECollectionTracker', 'Hooking AutoEncrypter metaDataClient property');
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');
120
120
  autoEncrypter._metaDataClient = this._createHookedMetadataClient(autoEncrypter._metaDataClient);
121
121
  }
122
122
  }
@@ -140,25 +140,26 @@ class CSFLECollectionTrackerImpl {
140
140
  return { hasSchema, encryptedFields };
141
141
  }
142
142
  _processClientSchemaDefinitions() {
143
- var _a, _b;
143
+ var _a, _b, _c;
144
144
  const { autoEncryption } = this._crudClient.options;
145
145
  for (const ns of [
146
146
  ...Object.keys((_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.schemaMap) !== null && _a !== void 0 ? _a : {}),
147
147
  ...Object.keys((_b = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.encryptedFieldsMap) !== null && _b !== void 0 ? _b : {}),
148
148
  ]) {
149
- log.info(mongoLogId(1001000119), 'CSFLECollectionTracker', 'Processing client-side schema information', { ns });
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 });
150
150
  const info = this._getCSFLECollectionInfo(ns);
151
151
  info.clientEnforcedEncryptedFields =
152
152
  extractEncrytedFieldFromAutoEncryptionOptions(ns, autoEncryption);
153
153
  }
154
154
  }
155
155
  async _fetchCSFLECollectionInfo(ns) {
156
+ var _a;
156
157
  const parsedNs = (0, mongodb_ns_1.default)(ns);
157
158
  const info = this._getCSFLECollectionInfo(ns);
158
159
  if (!info.serverEnforcedEncryptedFields ||
159
160
  !info.lastUpdated ||
160
161
  isOlderThan1Minute(info.lastUpdated)) {
161
- log.info(mongoLogId(1001000120), 'CSFLECollectionTracker', 'Refreshing listCollections cache', { ns });
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 });
162
163
  await this._dataService.listCollections(parsedNs.database, {
163
164
  name: parsedNs.collection,
164
165
  });
@@ -173,17 +174,13 @@ class CSFLECollectionTrackerImpl {
173
174
  this._nsToInfo.set(ns, info);
174
175
  return info;
175
176
  }
176
- _updateCollectionInfoFromDataService(opts, result) {
177
- var _a, _b;
178
- if (opts.nameOnly) {
179
- return;
180
- }
181
- const ns = `${opts.databaseName}.${result.name}`;
182
- log.info(mongoLogId(1001000121), 'CSFLECollectionTracker', 'Processing listCollections update', { ns });
177
+ updateCollectionInfo(ns, result) {
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 });
183
180
  const info = this._getCSFLECollectionInfo(ns);
184
181
  info.serverEnforcedEncryptedFields =
185
182
  extractEncryptedFieldsFromListCollectionsResult(result.options);
186
- info.hasServerSchema = !!((_b = (_a = result.options) === null || _a === void 0 ? void 0 : _a.validator) === null || _b === void 0 ? void 0 : _b.$jsonSchema);
183
+ info.hasServerSchema = !!((_c = (_b = result.options) === null || _b === void 0 ? void 0 : _b.validator) === null || _c === void 0 ? void 0 : _c.$jsonSchema);
187
184
  info.lastUpdated = new Date();
188
185
  }
189
186
  _createHookedMetadataClient(wrappedClient) {
@@ -193,13 +190,14 @@ class CSFLECollectionTrackerImpl {
193
190
  listCollections: (filter, opts) => {
194
191
  return {
195
192
  toArray: async () => {
193
+ var _a;
196
194
  const collectionInfos = await wrappedClient
197
195
  .db(dbName)
198
196
  .listCollections(filter, opts)
199
197
  .toArray();
200
198
  const err = this._checkListCollectionsForLibmongocryptResult(dbName, filter, (collectionInfos !== null && collectionInfos !== void 0 ? collectionInfos : []));
201
199
  if (err) {
202
- log.error(mongoLogId(1001000122), 'CSFLECollectionTracker', 'Rejecting listCollections in hooked metaDataClient', { error: err.message });
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 });
203
201
  throw err;
204
202
  }
205
203
  return collectionInfos;
@@ -1 +1 @@
1
- {"version":3,"file":"csfle-collection-tracker.js","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"csfle-collection-tracker.js","sourceRoot":"","sources":["../src/csfle-collection-tracker.ts"],"names":[],"mappings":"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"}