MCPcopy
hub / github.com/mongodb/node-mongodb-native / translateClientOptions

Function translateClientOptions

test/tools/spec-runner/index.js:39–117  ·  view source on GitHub ↗
(options)

Source from the content-addressed store, hash-verified

37}
38
39function translateClientOptions(options) {
40 Object.keys(options).forEach(key => {
41 if (['j', 'journal', 'fsync', 'wtimeout', 'wtimeoutms'].indexOf(key) >= 0) {
42 throw new Error(
43 `Unhandled write concern key needs to be added to options.writeConcern: ${key}`
44 );
45 }
46
47 if (key === 'w') {
48 options.writeConcern = { w: options.w };
49 delete options[key];
50 } else if (key === 'readConcernLevel') {
51 options.readConcern = { level: options.readConcernLevel };
52 delete options[key];
53 } else if (key === 'autoEncryptOpts') {
54 options.autoEncryption = Object.assign({}, options.autoEncryptOpts);
55
56 if (options.autoEncryptOpts.keyVaultNamespace == null) {
57 options.autoEncryption.keyVaultNamespace = 'keyvault.datakeys';
58 }
59
60 if (options.autoEncryptOpts.kmsProviders) {
61 const kmsProviders = getCSFLEKMSProviders();
62 if (options.autoEncryptOpts.kmsProviders.local) {
63 kmsProviders.local = options.autoEncryptOpts.kmsProviders.local;
64 }
65
66 if (options.autoEncryptOpts.kmsProviders.awsTemporary) {
67 kmsProviders.aws = {
68 accessKeyId: process.env.CSFLE_AWS_TEMP_ACCESS_KEY_ID,
69 secretAccessKey: process.env.CSFLE_AWS_TEMP_SECRET_ACCESS_KEY,
70 sessionToken: process.env.CSFLE_AWS_TEMP_SESSION_TOKEN
71 };
72 }
73
74 if (options.autoEncryptOpts.kmsProviders.awsTemporaryNoSessionToken) {
75 kmsProviders.aws = {
76 accessKeyId: process.env.CSFLE_AWS_TEMP_ACCESS_KEY_ID,
77 secretAccessKey: process.env.CSFLE_AWS_TEMP_SECRET_ACCESS_KEY
78 };
79 }
80
81 if (options.autoEncryptOpts.kmsProviders.kmip) {
82 kmsProviders.kmip = {
83 endpoint: 'localhost:5698'
84 };
85 options.autoEncryption.tlsOptions = {
86 kmip: {
87 tlsCAFile: process.env.CSFLE_TLS_CA_FILE,
88 tlsCertificateKeyFile: process.env.CSFLE_TLS_CLIENT_CERT_FILE
89 }
90 };
91 }
92
93 if (options.autoEncryptOpts.kmsProviders['local:name2']) {
94 kmsProviders['local:name2'] = options.autoEncryptOpts.kmsProviders['local:name2'];
95 options.autoEncryption.tlsOptions = {
96 'local:name2': {

Callers 1

runTestSuiteTestFunction · 0.85

Calls 1

getCSFLEKMSProvidersFunction · 0.85

Tested by

no test coverage detected