@mongodb-js/connection-form 0.4.0 → 0.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.
- package/dist/components/advanced-options-tabs/advanced-options-tabs.d.ts.map +1 -1
- package/dist/components/advanced-options-tabs/advanced-options-tabs.js +7 -1
- package/dist/components/advanced-options-tabs/advanced-options-tabs.js.map +1 -1
- package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.d.ts.map +1 -1
- package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.js +1 -1
- package/dist/components/advanced-options-tabs/authentication-tab/authentication-aws.js.map +1 -1
- package/dist/components/advanced-options-tabs/{general-tab/schema-input.d.ts → csfle-tab/csfle-tab.d.ts} +5 -5
- package/dist/components/advanced-options-tabs/csfle-tab/csfle-tab.d.ts.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/csfle-tab.js +121 -0
- package/dist/components/advanced-options-tabs/csfle-tab/csfle-tab.js.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/encrypted-field-config-input.d.ts +11 -0
- package/dist/components/advanced-options-tabs/csfle-tab/encrypted-field-config-input.d.ts.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/encrypted-field-config-input.js +66 -0
- package/dist/components/advanced-options-tabs/csfle-tab/encrypted-field-config-input.js.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-local-key-generator.d.ts +8 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-local-key-generator.d.ts.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-local-key-generator.js +52 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-local-key-generator.js.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-provider-fields.d.ts +16 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-provider-fields.d.ts.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-provider-fields.js +53 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-provider-fields.js.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-provider-status-indicator.d.ts +11 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-provider-status-indicator.d.ts.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-provider-status-indicator.js +31 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-provider-status-indicator.js.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-tls-options.d.ts +11 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-tls-options.d.ts.map +1 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-tls-options.js +48 -0
- package/dist/components/advanced-options-tabs/csfle-tab/kms-tls-options.js.map +1 -0
- package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.d.ts +3 -1
- package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.d.ts.map +1 -1
- package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.js +6 -4
- package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-certificate-authority.js.map +1 -1
- package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.d.ts +3 -1
- package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.d.ts.map +1 -1
- package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.js +7 -3
- package/dist/components/advanced-options-tabs/tls-ssl-tab/tls-client-certificate.js.map +1 -1
- package/dist/components/connect-form-actions.d.ts +3 -1
- package/dist/components/connect-form-actions.d.ts.map +1 -1
- package/dist/components/connect-form-actions.js +19 -7
- package/dist/components/connect-form-actions.js.map +1 -1
- package/dist/components/connect-form.d.ts.map +1 -1
- package/dist/components/connect-form.js +31 -21
- package/dist/components/connect-form.js.map +1 -1
- package/dist/components/save-connection-modal.d.ts +2 -1
- package/dist/components/save-connection-modal.d.ts.map +1 -1
- package/dist/components/save-connection-modal.js +2 -2
- package/dist/components/save-connection-modal.js.map +1 -1
- package/dist/hooks/use-connect-form.d.ts +3 -1
- package/dist/hooks/use-connect-form.d.ts.map +1 -1
- package/dist/hooks/use-connect-form.js +31 -5
- package/dist/hooks/use-connect-form.js.map +1 -1
- package/dist/hooks/use-connection-color.d.ts +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/csfle-handler.d.ts +58 -0
- package/dist/utils/csfle-handler.d.ts.map +1 -0
- package/dist/utils/csfle-handler.js +188 -0
- package/dist/utils/csfle-handler.js.map +1 -0
- package/dist/utils/csfle-kms-fields.d.ts +25 -0
- package/dist/utils/csfle-kms-fields.d.ts.map +1 -0
- package/dist/utils/csfle-kms-fields.js +132 -0
- package/dist/utils/csfle-kms-fields.js.map +1 -0
- package/dist/utils/tls-handler.d.ts.map +1 -1
- package/dist/utils/tls-handler.js +5 -2
- package/dist/utils/tls-handler.js.map +1 -1
- package/dist/utils/url-options.d.ts.map +1 -1
- package/dist/utils/url-options.js +7 -1
- package/dist/utils/url-options.js.map +1 -1
- package/dist/utils/validation.d.ts +2 -2
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +62 -0
- package/dist/utils/validation.js.map +1 -1
- package/package.json +15 -15
- package/dist/.esm-wrapper.mjs +0 -5
- package/dist/components/advanced-options-tabs/general-tab/schema-input.d.ts.map +0 -1
- package/dist/components/advanced-options-tabs/general-tab/schema-input.js +0 -52
- package/dist/components/advanced-options-tabs/general-tab/schema-input.js.map +0 -1
- package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-socks.d.ts +0 -9
- package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-socks.js +0 -62
- package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-socks.js.map +0 -1
- package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-tab.d.ts +0 -12
- package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-tab.js +0 -86
- package/dist/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-tab.js.map +0 -1
- package/dist/components/saved-connection-color-picker.d.ts +0 -7
- package/dist/components/saved-connection-color-picker.d.ts.map +0 -1
- package/dist/components/saved-connection-color-picker.js +0 -83
- package/dist/components/saved-connection-color-picker.js.map +0 -1
- package/dist/components/validation-summary.d.ts +0 -12
- package/dist/components/validation-summary.d.ts.map +0 -1
- package/dist/components/validation-summary.js +0 -56
- package/dist/components/validation-summary.js.map +0 -1
- package/dist/constants/markable-form-fields.d.ts +0 -5
- package/dist/constants/markable-form-fields.js +0 -10
- package/dist/constants/markable-form-fields.js.map +0 -1
- package/dist/constants/ssl-tls-options.d.ts +0 -1
- package/dist/constants/ssl-tls-options.js +0 -3
- package/dist/constants/ssl-tls-options.js.map +0 -1
- package/dist/utils/connect-form-errors.d.ts +0 -26
- package/dist/utils/connect-form-errors.js +0 -8
- package/dist/utils/connect-form-errors.js.map +0 -1
- package/dist/utils/connect-form-warnings.d.ts +0 -5
- package/dist/utils/connect-form-warnings.js +0 -8
- package/dist/utils/connect-form-warnings.js.map +0 -1
- package/dist/utils/connection-options-handler.d.ts +0 -11
- package/dist/utils/connection-options-handler.js +0 -131
- package/dist/utils/connection-options-handler.js.map +0 -1
- package/dist/utils/read-preferences.d.ts +0 -8
- package/dist/utils/read-preferences.d.ts.map +0 -1
- package/dist/utils/read-preferences.js +0 -27
- package/dist/utils/read-preferences.js.map +0 -1
- package/dist/utils/tls-options.d.ts +0 -15
- package/dist/utils/tls-options.d.ts.map +0 -1
- package/dist/utils/tls-options.js +0 -27
- package/dist/utils/tls-options.js.map +0 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ConnectionOptions } from 'mongodb-data-service';
|
|
2
|
+
import type { AutoEncryptionOptions, AutoEncryptionTlsOptions, Document } from 'mongodb';
|
|
3
|
+
import type { KMSProviderName } from './csfle-kms-fields';
|
|
4
|
+
declare type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
5
|
+
export interface UpdateCsfleStoreCredentialsAction {
|
|
6
|
+
type: 'update-csfle-store-credentials';
|
|
7
|
+
value: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface UpdateCsfleAction {
|
|
10
|
+
type: 'update-csfle-param';
|
|
11
|
+
key: keyof AutoEncryptionOptions;
|
|
12
|
+
value?: AutoEncryptionOptions[keyof AutoEncryptionOptions];
|
|
13
|
+
}
|
|
14
|
+
declare type KMSProviders = NonNullable<AutoEncryptionOptions['kmsProviders']>;
|
|
15
|
+
export interface UpdateCsfleKmsAction {
|
|
16
|
+
type: 'update-csfle-kms-param';
|
|
17
|
+
kmsProvider: KMSProviderName;
|
|
18
|
+
key: KeysOfUnion<KMSProviders[keyof KMSProviders]>;
|
|
19
|
+
value?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface UpdateCsfleKmsTlsAction {
|
|
22
|
+
type: 'update-csfle-kms-tls-param';
|
|
23
|
+
kmsProvider: KMSProviderName;
|
|
24
|
+
key: keyof AutoEncryptionTlsOptions;
|
|
25
|
+
value?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function handleUpdateCsfleStoreCredentials({ action, connectionOptions, }: {
|
|
28
|
+
action: UpdateCsfleStoreCredentialsAction;
|
|
29
|
+
connectionOptions: ConnectionOptions;
|
|
30
|
+
}): {
|
|
31
|
+
connectionOptions: ConnectionOptions;
|
|
32
|
+
};
|
|
33
|
+
export declare function handleUpdateCsfleParam({ action, connectionOptions, }: {
|
|
34
|
+
action: UpdateCsfleAction;
|
|
35
|
+
connectionOptions: ConnectionOptions;
|
|
36
|
+
}): {
|
|
37
|
+
connectionOptions: ConnectionOptions;
|
|
38
|
+
};
|
|
39
|
+
export declare function handleUpdateCsfleKmsParam({ action, connectionOptions, }: {
|
|
40
|
+
action: UpdateCsfleKmsAction;
|
|
41
|
+
connectionOptions: ConnectionOptions;
|
|
42
|
+
}): {
|
|
43
|
+
connectionOptions: ConnectionOptions;
|
|
44
|
+
};
|
|
45
|
+
export declare function handleUpdateCsfleKmsTlsParam({ action, connectionOptions, }: {
|
|
46
|
+
action: UpdateCsfleKmsTlsAction;
|
|
47
|
+
connectionOptions: ConnectionOptions;
|
|
48
|
+
}): {
|
|
49
|
+
connectionOptions: ConnectionOptions;
|
|
50
|
+
};
|
|
51
|
+
export declare function unsetAutoEncryptionIfEmpty(o?: AutoEncryptionOptions): AutoEncryptionOptions | undefined;
|
|
52
|
+
export declare function hasAnyCsfleOption(o: Readonly<AutoEncryptionOptions>): boolean;
|
|
53
|
+
export declare function textToEncryptedFieldConfig(text: string): Document | undefined;
|
|
54
|
+
export declare function encryptedFieldConfigToText(config: Readonly<Document> | undefined): string;
|
|
55
|
+
export declare function adjustCSFLEParams(connectionOptions: Readonly<ConnectionOptions>): ConnectionOptions;
|
|
56
|
+
export declare function randomLocalKey(): string;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=csfle-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csfle-handler.d.ts","sourceRoot":"","sources":["../../src/utils/csfle-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACxB,QAAQ,EACT,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQ1D,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AAEpD,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,gCAAgC,CAAC;IACvC,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,GAAG,EAAE,MAAM,qBAAqB,CAAC;IACjC,KAAK,CAAC,EAAE,qBAAqB,CAAC,MAAM,qBAAqB,CAAC,CAAC;CAC5D;AAED,aAAK,YAAY,GAAG,WAAW,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC;AACvE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,WAAW,EAAE,eAAe,CAAC;IAC7B,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,4BAA4B,CAAC;IACnC,WAAW,EAAE,eAAe,CAAC;IAC7B,GAAG,EAAE,MAAM,wBAAwB,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iCAAiC,CAAC,EAChD,MAAM,EACN,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,iCAAiC,CAAC;IAC1C,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,GAAG;IACF,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,CAYA;AAED,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,GAAG;IACF,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,CAqBA;AAED,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,GAAG;IACF,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,CA+BA;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,MAAM,EACN,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,uBAAuB,CAAC;IAChC,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,GAAG;IACF,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,CA+BA;AAMD,wBAAgB,0BAA0B,CACxC,CAAC,CAAC,EAAE,qBAAqB,GACxB,qBAAqB,GAAG,SAAS,CAEnC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAa7E;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CA8B7E;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,GACrC,MAAM,CAWR;AAMD,wBAAgB,iBAAiB,CAC/B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAC7C,iBAAiB,CAcnB;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.randomLocalKey = exports.adjustCSFLEParams = exports.encryptedFieldConfigToText = exports.textToEncryptedFieldConfig = exports.hasAnyCsfleOption = exports.unsetAutoEncryptionIfEmpty = exports.handleUpdateCsfleKmsTlsParam = exports.handleUpdateCsfleKmsParam = exports.handleUpdateCsfleParam = exports.handleUpdateCsfleStoreCredentials = void 0;
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
8
|
+
const lodash_1 = require("lodash");
|
|
9
|
+
const mongodb_query_parser_1 = __importDefault(require("mongodb-query-parser"));
|
|
10
|
+
const DEFAULT_FLE_OPTIONS = {
|
|
11
|
+
storeCredentials: false,
|
|
12
|
+
autoEncryption: undefined,
|
|
13
|
+
};
|
|
14
|
+
function handleUpdateCsfleStoreCredentials({ action, connectionOptions, }) {
|
|
15
|
+
connectionOptions = (0, lodash_1.cloneDeep)(connectionOptions);
|
|
16
|
+
return {
|
|
17
|
+
connectionOptions: {
|
|
18
|
+
...connectionOptions,
|
|
19
|
+
fleOptions: {
|
|
20
|
+
...DEFAULT_FLE_OPTIONS,
|
|
21
|
+
...connectionOptions.fleOptions,
|
|
22
|
+
storeCredentials: action.value,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.handleUpdateCsfleStoreCredentials = handleUpdateCsfleStoreCredentials;
|
|
28
|
+
function handleUpdateCsfleParam({ action, connectionOptions, }) {
|
|
29
|
+
var _a;
|
|
30
|
+
connectionOptions = (0, lodash_1.cloneDeep)(connectionOptions);
|
|
31
|
+
const autoEncryption = {
|
|
32
|
+
...(_a = connectionOptions.fleOptions) === null || _a === void 0 ? void 0 : _a.autoEncryption,
|
|
33
|
+
};
|
|
34
|
+
if (!action.value) {
|
|
35
|
+
delete autoEncryption[action.key];
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
autoEncryption[action.key] = action.value;
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
connectionOptions: {
|
|
42
|
+
...connectionOptions,
|
|
43
|
+
fleOptions: {
|
|
44
|
+
...DEFAULT_FLE_OPTIONS,
|
|
45
|
+
...connectionOptions.fleOptions,
|
|
46
|
+
autoEncryption: unsetAutoEncryptionIfEmpty(autoEncryption),
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
exports.handleUpdateCsfleParam = handleUpdateCsfleParam;
|
|
52
|
+
function handleUpdateCsfleKmsParam({ action, connectionOptions, }) {
|
|
53
|
+
var _a, _b, _c, _d, _e;
|
|
54
|
+
connectionOptions = (0, lodash_1.cloneDeep)(connectionOptions);
|
|
55
|
+
const autoEncryption = (_b = (_a = connectionOptions.fleOptions) === null || _a === void 0 ? void 0 : _a.autoEncryption) !== null && _b !== void 0 ? _b : {};
|
|
56
|
+
const kms = {
|
|
57
|
+
...((_d = (_c = autoEncryption.kmsProviders) === null || _c === void 0 ? void 0 : _c[action.kmsProvider]) !== null && _d !== void 0 ? _d : {}),
|
|
58
|
+
};
|
|
59
|
+
if (!action.value) {
|
|
60
|
+
delete kms[action.key];
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
kms[action.key] = action.value;
|
|
64
|
+
}
|
|
65
|
+
const kmsProviders = (_e = autoEncryption.kmsProviders) !== null && _e !== void 0 ? _e : {};
|
|
66
|
+
if (Object.keys(kms).length === 0) {
|
|
67
|
+
delete kmsProviders[action.kmsProvider];
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
kmsProviders[action.kmsProvider] = kms;
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
connectionOptions: {
|
|
74
|
+
...connectionOptions,
|
|
75
|
+
fleOptions: {
|
|
76
|
+
...DEFAULT_FLE_OPTIONS,
|
|
77
|
+
...connectionOptions.fleOptions,
|
|
78
|
+
autoEncryption: unsetAutoEncryptionIfEmpty({
|
|
79
|
+
...autoEncryption,
|
|
80
|
+
kmsProviders,
|
|
81
|
+
}),
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
exports.handleUpdateCsfleKmsParam = handleUpdateCsfleKmsParam;
|
|
87
|
+
function handleUpdateCsfleKmsTlsParam({ action, connectionOptions, }) {
|
|
88
|
+
var _a, _b, _c, _d, _e;
|
|
89
|
+
connectionOptions = (0, lodash_1.cloneDeep)(connectionOptions);
|
|
90
|
+
const autoEncryption = (_b = (_a = connectionOptions.fleOptions) === null || _a === void 0 ? void 0 : _a.autoEncryption) !== null && _b !== void 0 ? _b : {};
|
|
91
|
+
const tls = {
|
|
92
|
+
...((_d = (_c = autoEncryption.tlsOptions) === null || _c === void 0 ? void 0 : _c[action.kmsProvider]) !== null && _d !== void 0 ? _d : {}),
|
|
93
|
+
};
|
|
94
|
+
if (!action.value) {
|
|
95
|
+
delete tls[action.key];
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
tls[action.key] = action.value;
|
|
99
|
+
}
|
|
100
|
+
const tlsOptions = (_e = autoEncryption.tlsOptions) !== null && _e !== void 0 ? _e : {};
|
|
101
|
+
if (Object.keys(tls).length === 0) {
|
|
102
|
+
delete tlsOptions[action.kmsProvider];
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
tlsOptions[action.kmsProvider] = tls;
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
connectionOptions: {
|
|
109
|
+
...connectionOptions,
|
|
110
|
+
fleOptions: {
|
|
111
|
+
...DEFAULT_FLE_OPTIONS,
|
|
112
|
+
...connectionOptions.fleOptions,
|
|
113
|
+
autoEncryption: unsetAutoEncryptionIfEmpty({
|
|
114
|
+
...autoEncryption,
|
|
115
|
+
tlsOptions,
|
|
116
|
+
}),
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
exports.handleUpdateCsfleKmsTlsParam = handleUpdateCsfleKmsTlsParam;
|
|
122
|
+
function unsetAutoEncryptionIfEmpty(o) {
|
|
123
|
+
return o && hasAnyCsfleOption(o) ? o : undefined;
|
|
124
|
+
}
|
|
125
|
+
exports.unsetAutoEncryptionIfEmpty = unsetAutoEncryptionIfEmpty;
|
|
126
|
+
function hasAnyCsfleOption(o) {
|
|
127
|
+
var _a, _b;
|
|
128
|
+
return !!(o.bypassAutoEncryption ||
|
|
129
|
+
o.keyVaultNamespace ||
|
|
130
|
+
o.schemaMap ||
|
|
131
|
+
o.encryptedFieldsMap ||
|
|
132
|
+
[
|
|
133
|
+
...Object.values((_a = o.tlsOptions) !== null && _a !== void 0 ? _a : {}),
|
|
134
|
+
...Object.values((_b = o.kmsProviders) !== null && _b !== void 0 ? _b : {}),
|
|
135
|
+
]
|
|
136
|
+
.flatMap((o) => Object.values(o !== null && o !== void 0 ? o : {}))
|
|
137
|
+
.filter(Boolean).length > 0);
|
|
138
|
+
}
|
|
139
|
+
exports.hasAnyCsfleOption = hasAnyCsfleOption;
|
|
140
|
+
function textToEncryptedFieldConfig(text) {
|
|
141
|
+
if (!text.trim()) {
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
let parsed = {};
|
|
145
|
+
try {
|
|
146
|
+
parsed = (0, mongodb_query_parser_1.default)(text);
|
|
147
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
148
|
+
parsed = {};
|
|
149
|
+
throw new Error('Field contained invalid input');
|
|
150
|
+
}
|
|
151
|
+
parsed['$compass.error'] = null;
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
parsed['$compass.error'] = err.message;
|
|
155
|
+
}
|
|
156
|
+
parsed['$compass.rawText'] = text;
|
|
157
|
+
return parsed;
|
|
158
|
+
}
|
|
159
|
+
exports.textToEncryptedFieldConfig = textToEncryptedFieldConfig;
|
|
160
|
+
function encryptedFieldConfigToText(config) {
|
|
161
|
+
if (!config) {
|
|
162
|
+
return '';
|
|
163
|
+
}
|
|
164
|
+
if (config['$compass.rawText']) {
|
|
165
|
+
return config['$compass.rawText'];
|
|
166
|
+
}
|
|
167
|
+
const withoutCompassKeys = Object.fromEntries(Object.entries(config).filter(([key]) => !key.startsWith('$compass.')));
|
|
168
|
+
return mongodb_query_parser_1.default.toJSString(withoutCompassKeys);
|
|
169
|
+
}
|
|
170
|
+
exports.encryptedFieldConfigToText = encryptedFieldConfigToText;
|
|
171
|
+
function adjustCSFLEParams(connectionOptions) {
|
|
172
|
+
var _a, _b, _c;
|
|
173
|
+
connectionOptions = (0, lodash_1.cloneDeep)(connectionOptions);
|
|
174
|
+
const autoEncryptionOptions = (_a = connectionOptions.fleOptions) === null || _a === void 0 ? void 0 : _a.autoEncryption;
|
|
175
|
+
if (((_b = autoEncryptionOptions === null || autoEncryptionOptions === void 0 ? void 0 : autoEncryptionOptions.schemaMap) === null || _b === void 0 ? void 0 : _b['$compass.error']) === null) {
|
|
176
|
+
autoEncryptionOptions.schemaMap = textToEncryptedFieldConfig(autoEncryptionOptions.schemaMap['$compass.rawText']);
|
|
177
|
+
}
|
|
178
|
+
if (((_c = autoEncryptionOptions === null || autoEncryptionOptions === void 0 ? void 0 : autoEncryptionOptions.encryptedFieldsMap) === null || _c === void 0 ? void 0 : _c['$compass.error']) === null) {
|
|
179
|
+
autoEncryptionOptions.encryptedFieldsMap = textToEncryptedFieldConfig(autoEncryptionOptions.encryptedFieldsMap['$compass.rawText']);
|
|
180
|
+
}
|
|
181
|
+
return connectionOptions;
|
|
182
|
+
}
|
|
183
|
+
exports.adjustCSFLEParams = adjustCSFLEParams;
|
|
184
|
+
function randomLocalKey() {
|
|
185
|
+
return (0, crypto_1.randomBytes)(96).toString('base64');
|
|
186
|
+
}
|
|
187
|
+
exports.randomLocalKey = randomLocalKey;
|
|
188
|
+
//# sourceMappingURL=csfle-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csfle-handler.js","sourceRoot":"","sources":["../../src/utils/csfle-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AutoEncryptionOptions } from 'mongodb';
|
|
2
|
+
import type { ConnectionFormError } from './validation';
|
|
3
|
+
declare type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
4
|
+
export declare type KMSProviders = NonNullable<AutoEncryptionOptions['kmsProviders']>;
|
|
5
|
+
export declare type KMSProviderName = keyof KMSProviders;
|
|
6
|
+
export declare type KMSOption<KMSProvider extends KMSProviderName> = KeysOfUnion<NonNullable<KMSProviders[KMSProvider]>>;
|
|
7
|
+
export interface KMSField<KMSProvider extends KMSProviderName> {
|
|
8
|
+
name: KMSOption<KMSProvider>;
|
|
9
|
+
label: string;
|
|
10
|
+
type: 'password' | 'text' | 'textarea';
|
|
11
|
+
optional: boolean;
|
|
12
|
+
value: (autoEncryption: AutoEncryptionOptions) => string;
|
|
13
|
+
errorMessage?: (errors: ConnectionFormError[]) => string | undefined;
|
|
14
|
+
state: 'error' | 'none' | ((errors: ConnectionFormError[]) => 'error' | 'none');
|
|
15
|
+
description?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const KMSProviderFields: {
|
|
18
|
+
local: KMSField<"local">[];
|
|
19
|
+
azure: KMSField<"azure">[];
|
|
20
|
+
gcp: KMSField<"gcp">[];
|
|
21
|
+
aws: KMSField<"aws">[];
|
|
22
|
+
kmip: KMSField<"kmip">[];
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=csfle-kms-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csfle-kms-fields.d.ts","sourceRoot":"","sources":["../../src/utils/csfle-kms-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGxD,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AACpD,oBAAY,YAAY,GAAG,WAAW,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC;AAC9E,oBAAY,eAAe,GAAG,MAAM,YAAY,CAAC;AACjD,oBAAY,SAAS,CAAC,WAAW,SAAS,eAAe,IAAI,WAAW,CACtE,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CACvC,CAAC;AAEF,MAAM,WAAW,QAAQ,CAAC,WAAW,SAAS,eAAe;IAC3D,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,CAAC,cAAc,EAAE,qBAAqB,KAAK,MAAM,CAAC;IACzD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,MAAM,GAAG,SAAS,CAAC;IACrE,KAAK,EACD,OAAO,GACP,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,OAAO,GAAG,MAAM,CAAC,CAAC;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+ID,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KMSProviderFields = void 0;
|
|
4
|
+
const validation_1 = require("./validation");
|
|
5
|
+
const GCPFields = [
|
|
6
|
+
{
|
|
7
|
+
name: 'email',
|
|
8
|
+
label: 'Service Account E-Mail',
|
|
9
|
+
type: 'text',
|
|
10
|
+
optional: false,
|
|
11
|
+
value: (autoEncryption) => { var _a, _b, _c; return (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.gcp) === null || _b === void 0 ? void 0 : _b.email) !== null && _c !== void 0 ? _c : ''; },
|
|
12
|
+
state: 'none',
|
|
13
|
+
description: 'The service account email to authenticate.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'privateKey',
|
|
17
|
+
label: 'Private Key',
|
|
18
|
+
type: 'textarea',
|
|
19
|
+
optional: false,
|
|
20
|
+
value: (autoEncryption) => { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.gcp) === null || _b === void 0 ? void 0 : _b.privateKey) === null || _c === void 0 ? void 0 : _c.toString('base64')) !== null && _d !== void 0 ? _d : ''; },
|
|
21
|
+
state: 'none',
|
|
22
|
+
description: 'A base64-encoded PKCS#8 private key.',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'endpoint',
|
|
26
|
+
label: 'Endpoint',
|
|
27
|
+
type: 'text',
|
|
28
|
+
optional: true,
|
|
29
|
+
value: (autoEncryption) => { var _a, _b, _c; return (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.gcp) === null || _b === void 0 ? void 0 : _b.endpoint) !== null && _c !== void 0 ? _c : ''; },
|
|
30
|
+
state: 'none',
|
|
31
|
+
description: 'A host with an optional port.',
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
const AWSFields = [
|
|
35
|
+
{
|
|
36
|
+
name: 'accessKeyId',
|
|
37
|
+
label: 'Access Key ID',
|
|
38
|
+
type: 'text',
|
|
39
|
+
optional: false,
|
|
40
|
+
value: (autoEncryption) => { var _a, _b, _c; return (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.aws) === null || _b === void 0 ? void 0 : _b.accessKeyId) !== null && _c !== void 0 ? _c : ''; },
|
|
41
|
+
state: 'none',
|
|
42
|
+
description: 'The access key used for the AWS KMS provider.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'secretAccessKey',
|
|
46
|
+
label: 'Secret Access Key',
|
|
47
|
+
type: 'password',
|
|
48
|
+
optional: false,
|
|
49
|
+
value: (autoEncryption) => { var _a, _b, _c; return (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.aws) === null || _b === void 0 ? void 0 : _b.secretAccessKey) !== null && _c !== void 0 ? _c : ''; },
|
|
50
|
+
state: 'none',
|
|
51
|
+
description: 'The secret access key used for the AWS KMS provider.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'sessionToken',
|
|
55
|
+
label: 'Session Token',
|
|
56
|
+
type: 'password',
|
|
57
|
+
optional: true,
|
|
58
|
+
value: (autoEncryption) => { var _a, _b, _c; return (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.aws) === null || _b === void 0 ? void 0 : _b.sessionToken) !== null && _c !== void 0 ? _c : ''; },
|
|
59
|
+
state: 'none',
|
|
60
|
+
description: 'An optional AWS session token that will be used as the X-Amz-Security-Token header for AWS requests.',
|
|
61
|
+
},
|
|
62
|
+
];
|
|
63
|
+
const AzureFields = [
|
|
64
|
+
{
|
|
65
|
+
name: 'tenantId',
|
|
66
|
+
label: 'Tenant ID',
|
|
67
|
+
type: 'text',
|
|
68
|
+
optional: false,
|
|
69
|
+
value: (autoEncryption) => { var _a, _b, _c; return (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.azure) === null || _b === void 0 ? void 0 : _b.tenantId) !== null && _c !== void 0 ? _c : ''; },
|
|
70
|
+
state: 'none',
|
|
71
|
+
description: 'The tenant ID identifies the organization for the account.',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: 'clientId',
|
|
75
|
+
label: 'Client ID',
|
|
76
|
+
type: 'text',
|
|
77
|
+
optional: false,
|
|
78
|
+
value: (autoEncryption) => { var _a, _b, _c; return (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.azure) === null || _b === void 0 ? void 0 : _b.clientId) !== null && _c !== void 0 ? _c : ''; },
|
|
79
|
+
state: 'none',
|
|
80
|
+
description: 'The client ID to authenticate a registered application.',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: 'clientSecret',
|
|
84
|
+
label: 'Client Secret',
|
|
85
|
+
type: 'password',
|
|
86
|
+
optional: false,
|
|
87
|
+
value: (autoEncryption) => { var _a, _b, _c; return (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.azure) === null || _b === void 0 ? void 0 : _b.clientSecret) !== null && _c !== void 0 ? _c : ''; },
|
|
88
|
+
state: 'none',
|
|
89
|
+
description: 'The client secret to authenticate a registered application.',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'identityPlatformEndpoint',
|
|
93
|
+
label: 'Identity Platform Endpoint',
|
|
94
|
+
type: 'text',
|
|
95
|
+
optional: true,
|
|
96
|
+
value: (autoEncryption) => { var _a, _b, _c; return (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.azure) === null || _b === void 0 ? void 0 : _b.identityPlatformEndpoint) !== null && _c !== void 0 ? _c : ''; },
|
|
97
|
+
state: 'none',
|
|
98
|
+
description: 'A host with an optional port.',
|
|
99
|
+
},
|
|
100
|
+
];
|
|
101
|
+
const KMIPFields = [
|
|
102
|
+
{
|
|
103
|
+
name: 'endpoint',
|
|
104
|
+
label: 'Endpoint',
|
|
105
|
+
type: 'text',
|
|
106
|
+
optional: false,
|
|
107
|
+
value: (autoEncryption) => { var _a, _b, _c; return (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.kmip) === null || _b === void 0 ? void 0 : _b.endpoint) !== null && _c !== void 0 ? _c : ''; },
|
|
108
|
+
errorMessage: (errors) => (0, validation_1.errorMessageByFieldName)(errors, 'kmip.endpoint'),
|
|
109
|
+
state: (errors) => (0, validation_1.fieldNameHasError)(errors, 'kmip.endpoint') ? 'error' : 'none',
|
|
110
|
+
description: 'The endpoint consists of a hostname and port separated by a colon.',
|
|
111
|
+
},
|
|
112
|
+
];
|
|
113
|
+
const LocalFields = [
|
|
114
|
+
{
|
|
115
|
+
name: 'key',
|
|
116
|
+
label: 'Key',
|
|
117
|
+
type: 'text',
|
|
118
|
+
optional: false,
|
|
119
|
+
value: (autoEncryption) => { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = autoEncryption === null || autoEncryption === void 0 ? void 0 : autoEncryption.kmsProviders) === null || _a === void 0 ? void 0 : _a.local) === null || _b === void 0 ? void 0 : _b.key) === null || _c === void 0 ? void 0 : _c.toString('base64')) !== null && _d !== void 0 ? _d : ''; },
|
|
120
|
+
errorMessage: (errors) => (0, validation_1.errorMessageByFieldName)(errors, 'local.key'),
|
|
121
|
+
state: (errors) => (0, validation_1.fieldNameHasError)(errors, 'local.key') ? 'error' : 'none',
|
|
122
|
+
description: 'A 96-byte long base64-encoded string. Locally managed keys do not require additional setup, but are not recommended for production applications.',
|
|
123
|
+
},
|
|
124
|
+
];
|
|
125
|
+
exports.KMSProviderFields = {
|
|
126
|
+
local: LocalFields,
|
|
127
|
+
azure: AzureFields,
|
|
128
|
+
gcp: GCPFields,
|
|
129
|
+
aws: AWSFields,
|
|
130
|
+
kmip: KMIPFields,
|
|
131
|
+
};
|
|
132
|
+
//# sourceMappingURL=csfle-kms-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csfle-kms-fields.js","sourceRoot":"","sources":["../../src/utils/csfle-kms-fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tls-handler.d.ts","sourceRoot":"","sources":["../../src/utils/tls-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,oBAAY,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;AACnD,oBAAY,aAAa,GACrB,MAAM,IAAI,CACR,kBAAkB,EAChB,WAAW,GACX,uBAAuB,GACvB,+BAA+B,GAC/B,aAAa,GACb,0BAA0B,GAC1B,6BAA6B,CAChC,GACD,aAAa,CAAC;AAClB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,mBAAmB,EACnB,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,eAAe,CAAC;IACxB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,GAAG;IACF,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,CAsBA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,mBAAmB,EACnB,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,qBAAqB,CAAC;IAC9B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,GAAG;IACF,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,
|
|
1
|
+
{"version":3,"file":"tls-handler.d.ts","sourceRoot":"","sources":["../../src/utils/tls-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,oBAAY,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;AACnD,oBAAY,aAAa,GACrB,MAAM,IAAI,CACR,kBAAkB,EAChB,WAAW,GACX,uBAAuB,GACvB,+BAA+B,GAC/B,aAAa,GACb,0BAA0B,GAC1B,6BAA6B,CAChC,GACD,aAAa,CAAC;AAClB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,mBAAmB,EACnB,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,eAAe,CAAC;IACxB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,GAAG;IACF,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,CAsBA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,mBAAmB,EACnB,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,qBAAqB,CAAC;IAC9B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,GAAG;IACF,iBAAiB,EAAE,iBAAiB,CAAC;CACtC,CAkCA"}
|
|
@@ -32,8 +32,11 @@ function handleUpdateTlsOption({ action, connectionStringUrl, connectionOptions,
|
|
|
32
32
|
if (action.key === 'useSystemCA') {
|
|
33
33
|
if (action.value) {
|
|
34
34
|
updatedSearchParams.delete('tlsCAFile');
|
|
35
|
+
updatedConnectionOptions.useSystemCA = true;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
delete updatedConnectionOptions.useSystemCA;
|
|
35
39
|
}
|
|
36
|
-
updatedConnectionOptions.useSystemCA = !!action.value;
|
|
37
40
|
}
|
|
38
41
|
else if (!action.value) {
|
|
39
42
|
updatedSearchParams.delete(action.key);
|
|
@@ -43,7 +46,7 @@ function handleUpdateTlsOption({ action, connectionStringUrl, connectionOptions,
|
|
|
43
46
|
updatedSearchParams.set('tls', 'true');
|
|
44
47
|
updatedSearchParams.set(action.key, action.value);
|
|
45
48
|
if (action.key === 'tlsCAFile') {
|
|
46
|
-
updatedConnectionOptions.useSystemCA
|
|
49
|
+
delete updatedConnectionOptions.useSystemCA;
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tls-handler.js","sourceRoot":"","sources":["../../src/utils/tls-handler.ts"],"names":[],"mappings":";;;AAGA,mCAAmC;AAyBnC,SAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,mBAAmB,EACnB,iBAAiB,GAKlB;IAGC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC5D,MAAM,mBAAmB,GACvB,uBAAuB,CAAC,iBAAiB,EAAsB,CAAC;IAElE,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE;QAC7B,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACxC;SAAM,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,EAAE;QACrC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACzC;SAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;QACzC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,OAAO;QACL,iBAAiB,EAAE;YACjB,GAAG,IAAA,kBAAS,EAAC,iBAAiB,CAAC;YAC/B,gBAAgB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;SACrD;KACF,CAAC;AACJ,CAAC;AAhCD,0CAgCC;AAED,SAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,mBAAmB,EACnB,iBAAiB,GAKlB;IAGC,MAAM,wBAAwB,GAAG,IAAA,kBAAS,EAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC5D,MAAM,mBAAmB,GACvB,uBAAuB,CAAC,iBAAiB,EAAsB,CAAC;IAElE,IAAI,MAAM,CAAC,GAAG,KAAK,aAAa,EAAE;QAChC,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tls-handler.js","sourceRoot":"","sources":["../../src/utils/tls-handler.ts"],"names":[],"mappings":";;;AAGA,mCAAmC;AAyBnC,SAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,mBAAmB,EACnB,iBAAiB,GAKlB;IAGC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC5D,MAAM,mBAAmB,GACvB,uBAAuB,CAAC,iBAAiB,EAAsB,CAAC;IAElE,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,EAAE;QAC7B,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACxC;SAAM,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,EAAE;QACrC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACzC;SAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;QACzC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,OAAO;QACL,iBAAiB,EAAE;YACjB,GAAG,IAAA,kBAAS,EAAC,iBAAiB,CAAC;YAC/B,gBAAgB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;SACrD;KACF,CAAC;AACJ,CAAC;AAhCD,0CAgCC;AAED,SAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,mBAAmB,EACnB,iBAAiB,GAKlB;IAGC,MAAM,wBAAwB,GAAG,IAAA,kBAAS,EAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC5D,MAAM,mBAAmB,GACvB,uBAAuB,CAAC,iBAAiB,EAAsB,CAAC;IAElE,IAAI,MAAM,CAAC,GAAG,KAAK,aAAa,EAAE;QAChC,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACxC,wBAAwB,CAAC,WAAW,GAAG,IAAI,CAAC;SAC7C;aAAM;YACL,OAAO,wBAAwB,CAAC,WAAW,CAAC;SAC7C;KACF;SAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QACxB,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACxC;SAAM;QAGL,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEvC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAElD,IAAI,MAAM,CAAC,GAAG,KAAK,WAAW,EAAE;YAC9B,OAAO,wBAAwB,CAAC,WAAW,CAAC;SAC7C;KACF;IAED,OAAO;QACL,iBAAiB,EAAE;YACjB,GAAG,wBAAwB;YAC3B,gBAAgB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;SACrD;KACF,CAAC;AACJ,CAAC;AA5CD,sDA4CC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-options.d.ts","sourceRoot":"","sources":["../../src/utils/url-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,kBAAkB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,kBAAkB;;;
|
|
1
|
+
{"version":3,"file":"url-options.d.ts","sourceRoot":"","sources":["../../src/utils/url-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,kBAAkB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,kBAAkB;;;GAkD9B,CAAC"}
|
|
@@ -43,7 +43,13 @@ exports.editableUrlOptions = [
|
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
title: 'Miscellaneous Configuration',
|
|
46
|
-
values: [
|
|
46
|
+
values: [
|
|
47
|
+
'appName',
|
|
48
|
+
'retryReads',
|
|
49
|
+
'retryWrites',
|
|
50
|
+
'srvMaxHosts',
|
|
51
|
+
'uuidRepresentation',
|
|
52
|
+
],
|
|
47
53
|
},
|
|
48
54
|
];
|
|
49
55
|
//# sourceMappingURL=url-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-options.js","sourceRoot":"","sources":["../../src/utils/url-options.ts"],"names":[],"mappings":";;;AAOa,QAAA,kBAAkB,GAAG;IAChC;QACE,KAAK,EAAE,4BAA4B;QACnC,MAAM,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;KAChD;IACD;QACE,KAAK,EAAE,qBAAqB;QAC5B,MAAM,EAAE,CAAC,aAAa,EAAE,sBAAsB,CAAC;KAChD;IACD;QACE,KAAK,EAAE,yBAAyB;QAChC,MAAM,EAAE;YACN,aAAa;YACb,aAAa;YACb,eAAe;YACf,mBAAmB;YACnB,oBAAoB;SACrB;KACF;IACD;QACE,KAAK,EAAE,uBAAuB;QAC9B,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,CAAC;KACvC;IACD;QACE,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,CAAC,kBAAkB,CAAC;KAC7B;IACD;QACE,KAAK,EAAE,0BAA0B;QACjC,MAAM,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;KACtD;IACD;QACE,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE;YACN,kBAAkB;YAClB,0BAA0B;YAC1B,wBAAwB;YACxB,sBAAsB;SACvB;KACF;IACD;QACE,KAAK,EAAE,6BAA6B;QACpC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"url-options.js","sourceRoot":"","sources":["../../src/utils/url-options.ts"],"names":[],"mappings":";;;AAOa,QAAA,kBAAkB,GAAG;IAChC;QACE,KAAK,EAAE,4BAA4B;QACnC,MAAM,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;KAChD;IACD;QACE,KAAK,EAAE,qBAAqB;QAC5B,MAAM,EAAE,CAAC,aAAa,EAAE,sBAAsB,CAAC;KAChD;IACD;QACE,KAAK,EAAE,yBAAyB;QAChC,MAAM,EAAE;YACN,aAAa;YACb,aAAa;YACb,eAAe;YACf,mBAAmB;YACnB,oBAAoB;SACrB;KACF;IACD;QACE,KAAK,EAAE,uBAAuB;QAC9B,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,CAAC;KACvC;IACD;QACE,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,CAAC,kBAAkB,CAAC;KAC7B;IACD;QACE,KAAK,EAAE,0BAA0B;QACjC,MAAM,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;KACtD;IACD;QACE,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE;YACN,kBAAkB;YAClB,0BAA0B;YAC1B,wBAAwB;YACxB,sBAAsB;SACvB;KACF;IACD;QACE,KAAK,EAAE,6BAA6B;QACpC,MAAM,EAAE;YACN,SAAS;YACT,YAAY;YACZ,aAAa;YACb,aAAa;YACb,oBAAoB;SACrB;KACF;CACF,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ConnectionOptions } from 'mongodb-data-service';
|
|
2
2
|
import ConnectionString from 'mongodb-connection-string-url';
|
|
3
3
|
import type { ConnectionStringParsingOptions } from 'mongodb-connection-string-url';
|
|
4
|
-
export declare type FieldName = 'connectionString' | 'hostname' | 'hosts' | 'isSrv' | 'kerberosPrincipal' | 'password' | 'schema' | 'proxyHostname' | 'sshHostname' | 'sshIdentityKeyFile' | 'sshPassword' | 'sshUsername' | 'tls' | 'tlsCertificateKeyFile' | 'username';
|
|
5
|
-
export declare type TabId = 'general' | 'authentication' | 'tls' | 'proxy' | 'advanced';
|
|
4
|
+
export declare type FieldName = 'connectionString' | 'hostname' | 'hosts' | 'isSrv' | 'kerberosPrincipal' | 'keyVaultNamespace' | 'kmip.endpoint' | 'local.key' | 'password' | 'schema' | 'proxyHostname' | 'schemaMap' | 'encryptedFieldsMap' | 'sshHostname' | 'sshIdentityKeyFile' | 'sshPassword' | 'sshUsername' | 'tls' | 'tlsCertificateKeyFile' | 'username';
|
|
5
|
+
export declare type TabId = 'general' | 'authentication' | 'tls' | 'proxy' | 'csfle' | 'advanced';
|
|
6
6
|
declare type ConnectionFormErrorWithField = {
|
|
7
7
|
fieldName: FieldName;
|
|
8
8
|
fieldTab: TabId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAGpF,oBAAY,SAAS,GACjB,kBAAkB,GAClB,UAAU,GACV,OAAO,GACP,OAAO,GACP,mBAAmB,GACnB,mBAAmB,GACnB,eAAe,GACf,WAAW,GACX,UAAU,GACV,QAAQ,GACR,eAAe,GACf,WAAW,GACX,oBAAoB,GACpB,aAAa,GACb,oBAAoB,GACpB,aAAa,GACb,aAAa,GACb,KAAK,GACL,uBAAuB,GACvB,UAAU,CAAC;AAEf,oBAAY,KAAK,GACb,SAAS,GACT,gBAAgB,GAChB,KAAK,GACL,OAAO,GACP,OAAO,GACP,UAAU,CAAC;AAEf,aAAK,4BAA4B,GAAG;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,aAAK,+BAA+B,GAAG;IACrC,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,oBAAY,mBAAmB,GAC3B,4BAA4B,GAC5B,+BAA+B,CAAC;AACpC,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,mBAAmB,EAAE,EAC7B,KAAK,EAAE,KAAK,GACX,mBAAmB,EAAE,CAEvB;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,mBAAmB,EAAE,EAC7B,SAAS,EAAE,SAAS,GACnB,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,EAAE,EAC7B,SAAS,EAAE,SAAS,GACnB,OAAO,CAET;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,mBAAmB,EAAE,EAC7B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,+BAA+B,CAC7C,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,CAAC,EAAE,8BAA8B,GAC9C,mBAAmB,EAAE,CAavB;AA0ND,wBAAgB,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAQpE;AAED,wBAAgB,iCAAiC,CAC/C,iBAAiB,EAAE,iBAAiB,GACnC,qBAAqB,EAAE,CAwBzB"}
|
package/dist/utils/validation.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.validateConnectionOptionsWarnings = exports.isSecure = exports.validateConnectionOptionsErrors = exports.errorMessageByFieldNameAndIndex = exports.fieldNameHasError = exports.errorMessageByFieldName = exports.errorsByFieldTab = void 0;
|
|
7
7
|
const mongodb_build_info_1 = require("mongodb-build-info");
|
|
8
8
|
const mongodb_connection_string_url_1 = __importDefault(require("mongodb-connection-string-url"));
|
|
9
|
+
const csfle_handler_1 = require("../utils/csfle-handler");
|
|
9
10
|
function errorsByFieldTab(errors, tabId) {
|
|
10
11
|
return errors.filter((error) => error.fieldTab === tabId);
|
|
11
12
|
}
|
|
@@ -25,9 +26,11 @@ function errorMessageByFieldNameAndIndex(errors, fieldName, fieldIndex) {
|
|
|
25
26
|
}
|
|
26
27
|
exports.errorMessageByFieldNameAndIndex = errorMessageByFieldNameAndIndex;
|
|
27
28
|
function validateConnectionOptionsErrors(connectionOptions, parsingOptions) {
|
|
29
|
+
var _a, _b;
|
|
28
30
|
const connectionString = new mongodb_connection_string_url_1.default(connectionOptions.connectionString, { looseValidation: true, ...parsingOptions });
|
|
29
31
|
return [
|
|
30
32
|
...validateAuthMechanismErrors(connectionString),
|
|
33
|
+
...validateCSFLEErrors((_b = (_a = connectionOptions.fleOptions) === null || _a === void 0 ? void 0 : _a.autoEncryption) !== null && _b !== void 0 ? _b : {}),
|
|
31
34
|
...(connectionOptions.sshTunnel
|
|
32
35
|
? validateSSHTunnelErrors(connectionOptions.sshTunnel)
|
|
33
36
|
: validateSocksProxyErrors(connectionString)),
|
|
@@ -157,6 +160,54 @@ function validateSocksProxyErrors(connectionString) {
|
|
|
157
160
|
}
|
|
158
161
|
return errors;
|
|
159
162
|
}
|
|
163
|
+
function validateCSFLEErrors(autoEncryptionOptions) {
|
|
164
|
+
var _a, _b, _c, _d, _e;
|
|
165
|
+
const errors = [];
|
|
166
|
+
for (const fieldName of ['schemaMap', 'encryptedFieldsMap']) {
|
|
167
|
+
const encryptedFieldConfigError = (_a = autoEncryptionOptions[fieldName]) === null || _a === void 0 ? void 0 : _a['$compass.error'];
|
|
168
|
+
if (encryptedFieldConfigError) {
|
|
169
|
+
errors.push({
|
|
170
|
+
fieldTab: 'csfle',
|
|
171
|
+
fieldName,
|
|
172
|
+
message: `EncryptedFieldConfig is invalid: ${encryptedFieldConfigError}`,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (autoEncryptionOptions.keyVaultNamespace &&
|
|
177
|
+
!autoEncryptionOptions.keyVaultNamespace.includes('.')) {
|
|
178
|
+
errors.push({
|
|
179
|
+
fieldTab: 'csfle',
|
|
180
|
+
fieldName: 'keyVaultNamespace',
|
|
181
|
+
message: 'Key Vault namespace must be of the format <db>.<collection>',
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
if (!autoEncryptionOptions.keyVaultNamespace &&
|
|
185
|
+
(0, csfle_handler_1.hasAnyCsfleOption)(autoEncryptionOptions)) {
|
|
186
|
+
errors.push({
|
|
187
|
+
fieldTab: 'csfle',
|
|
188
|
+
fieldName: 'keyVaultNamespace',
|
|
189
|
+
message: 'Key Vault namespace must be specified for In-Use-Encryption-enabled connections',
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
const kmsProviders = (_b = autoEncryptionOptions.kmsProviders) !== null && _b !== void 0 ? _b : {};
|
|
193
|
+
if (typeof ((_c = kmsProviders.local) === null || _c === void 0 ? void 0 : _c.key) === 'string' &&
|
|
194
|
+
!/[a-zA-Z0-9+/-_=]{128}/.test(kmsProviders.local.key)) {
|
|
195
|
+
errors.push({
|
|
196
|
+
fieldTab: 'csfle',
|
|
197
|
+
fieldName: 'local.key',
|
|
198
|
+
message: 'Local key must be a Base64-encoded 96-byte string',
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
if (typeof ((_d = kmsProviders.kmip) === null || _d === void 0 ? void 0 : _d.endpoint) === 'string' &&
|
|
202
|
+
!((_e = kmsProviders.kmip) === null || _e === void 0 ? void 0 : _e.endpoint.includes(':'))) {
|
|
203
|
+
errors.push({
|
|
204
|
+
fieldTab: 'csfle',
|
|
205
|
+
fieldName: 'kmip.endpoint',
|
|
206
|
+
message: 'KMIP endpoint must be of the format <host>:<port>',
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
return errors;
|
|
210
|
+
}
|
|
160
211
|
function isSecure(connectionString) {
|
|
161
212
|
const sslParam = connectionString.searchParams.get('ssl');
|
|
162
213
|
const tlsParam = connectionString.searchParams.get('tls');
|
|
@@ -185,9 +236,20 @@ function validateConnectionOptionsWarnings(connectionOptions) {
|
|
|
185
236
|
...validateDirectConnectionAndMultiHostWarnings(connectionString),
|
|
186
237
|
...validateTLSAndHostWarnings(connectionString),
|
|
187
238
|
...validateSocksWarnings(connectionString),
|
|
239
|
+
...validateCSFLEWarnings(connectionOptions),
|
|
188
240
|
];
|
|
189
241
|
}
|
|
190
242
|
exports.validateConnectionOptionsWarnings = validateConnectionOptionsWarnings;
|
|
243
|
+
function validateCSFLEWarnings(connectionOptions) {
|
|
244
|
+
var _a;
|
|
245
|
+
const warnings = [];
|
|
246
|
+
if ((_a = connectionOptions.fleOptions) === null || _a === void 0 ? void 0 : _a.storeCredentials) {
|
|
247
|
+
warnings.push({
|
|
248
|
+
message: 'In-Use Encryption KMS provider credentials will be stored to disk.',
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
return warnings;
|
|
252
|
+
}
|
|
191
253
|
function validateCertificateValidationWarnings(connectionString) {
|
|
192
254
|
const warnings = [];
|
|
193
255
|
if (!isSecure(connectionString)) {
|