Skip to content

Commit fd4e7be

Browse files
authored
fix(shell-api): rename kmsProvider to kmsProviders MONGOSH-604 (#664)
As noted in the issue, this was a typo in the documentation. The old shell expects `kmsProviders` (like the drivers), and we should not deviate here and instead update the documentation.
1 parent 07b14bd commit fd4e7be

File tree

6 files changed

+22
-22
lines changed

6 files changed

+22
-22
lines changed

packages/cli-repl/src/smoke-tests-fle.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const local = { key: Buffer.from('kh4Gv2N8qopZQMQYMEtww/AkPsIrXNmEMxTrs3tUoTQZbZ
3535
3636
const keyMongo = Mongo(db.getMongo()._uri, {
3737
keyVaultNamespace: 'encryption.__keyVault',
38-
kmsProvider: { local }
38+
kmsProviders: { local }
3939
});
4040
4141
const keyVault = keyMongo.getKeyVault();
@@ -60,7 +60,7 @@ console.log('Using schema map', schemaMap);
6060
6161
const autoMongo = Mongo(db.getMongo()._uri, {
6262
keyVaultNamespace: 'encryption.__keyVault',
63-
kmsProvider: { local },
63+
kmsProviders: { local },
6464
schemaMap
6565
});
6666

packages/cli-repl/test/e2e-fle.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ describe('FLE tests', () => {
113113
await shell.executeLine('local = { key: BinData(0, "kh4Gv2N8qopZQMQYMEtww/AkPsIrXNmEMxTrs3tUoTQZbZu4msdRUaR8U5fXD7A7QXYHcEvuu4WctJLoT+NvvV3eeIg3MD+K8H9SR794m/safgRHdIfy6PD+rFpvmFbY") }');
114114
await shell.executeLine(`keyMongo = Mongo(${JSON.stringify(await testServer.connectionString())}, { \
115115
keyVaultNamespace: '${dbname}.keyVault', \
116-
kmsProvider: { local }, \
116+
kmsProviders: { local }, \
117117
explicitEncryptionOnly: true \
118118
});`);
119119
await shell.executeLine('keyVault = keyMongo.getKeyVault();');

packages/shell-api/src/field-level-encryption.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const SCHEMA_MAP = {
3333
};
3434
const AWS_KMS = {
3535
keyVaultNamespace: `${DB}.${COLL}`,
36-
kmsProvider: {
36+
kmsProviders: {
3737
aws: {
3838
accessKeyId: 'abc',
3939
secretAccessKey: '123'
@@ -143,7 +143,7 @@ describe('Field Level Encryption', () => {
143143
{
144144
keyVaultClient: undefined,
145145
keyVaultNamespace: AWS_KMS.keyVaultNamespace,
146-
kmsProviders: AWS_KMS.kmsProvider,
146+
kmsProviders: AWS_KMS.kmsProviders,
147147
bypassAutoEncryption: AWS_KMS.bypassAutoEncryption,
148148
schemaMap: AWS_KMS.schemaMap
149149
}
@@ -393,7 +393,7 @@ describe('Field Level Encryption', () => {
393393
it('accepts the same local key twice', () => {
394394
const localKmsOptions: ClientSideFieldLevelEncryptionOptions = {
395395
keyVaultNamespace: `${DB}.${COLL}`,
396-
kmsProvider: {
396+
kmsProviders: {
397397
local: {
398398
key: new bson.Binary(Buffer.alloc(96).toString('base64'))
399399
}
@@ -409,7 +409,7 @@ describe('Field Level Encryption', () => {
409409
it('fails if both explicitEncryptionOnly and schemaMap are passed', () => {
410410
const localKmsOptions: ClientSideFieldLevelEncryptionOptions = {
411411
keyVaultNamespace: `${DB}.${COLL}`,
412-
kmsProvider: {
412+
kmsProviders: {
413413
local: {
414414
key: new bson.Binary(Buffer.alloc(96).toString('base64'))
415415
}
@@ -521,7 +521,7 @@ srDVjIT3LsvTqw==`
521521
it(`provides ClientEncryption for kms=${kmsName}`, async() => {
522522
const mongo = new Mongo(internalState, uri, {
523523
keyVaultNamespace: `${dbname}.__keyVault`,
524-
kmsProvider: { [kmsName]: kmsOptions } as any,
524+
kmsProviders: { [kmsName]: kmsOptions } as any,
525525
explicitEncryptionOnly: true
526526
}, serviceProvider);
527527
await mongo.connect();

packages/shell-api/src/field-level-encryption.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export type ClientSideFieldLevelEncryptionKmsProvider = Omit<KMSProviders, 'loca
3636
export interface ClientSideFieldLevelEncryptionOptions {
3737
keyVaultClient?: Mongo,
3838
keyVaultNamespace: string,
39-
kmsProvider: ClientSideFieldLevelEncryptionKmsProvider,
39+
kmsProviders: ClientSideFieldLevelEncryptionKmsProvider,
4040
schemaMap?: Document,
4141
bypassAutoEncryption?: boolean;
4242
explicitEncryptionOnly?: boolean;

packages/shell-api/src/helpers.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -614,9 +614,9 @@ export function assertCLI(platform: ReplPlatform): void {
614614
}
615615

616616
export function processFLEOptions(fleOptions: ClientSideFieldLevelEncryptionOptions): AutoEncryptionOptions {
617-
assertArgsDefined(fleOptions.keyVaultNamespace, fleOptions.kmsProvider);
617+
assertArgsDefined(fleOptions.keyVaultNamespace, fleOptions.kmsProviders);
618618
Object.keys(fleOptions).forEach(k => {
619-
if (['keyVaultClient', 'keyVaultNamespace', 'kmsProvider', 'schemaMap', 'bypassAutoEncryption'].indexOf(k) === -1) {
619+
if (['keyVaultClient', 'keyVaultNamespace', 'kmsProviders', 'schemaMap', 'bypassAutoEncryption'].indexOf(k) === -1) {
620620
throw new MongoshInvalidInputError(`Unrecognized FLE Client Option ${k}`);
621621
}
622622
});
@@ -625,12 +625,12 @@ export function processFLEOptions(fleOptions: ClientSideFieldLevelEncryptionOpti
625625
keyVaultNamespace: fleOptions.keyVaultNamespace
626626
};
627627

628-
const localKey = fleOptions.kmsProvider.local?.key;
628+
const localKey = fleOptions.kmsProviders.local?.key;
629629
if (localKey && (localKey as BinaryType)._bsontype === 'Binary') {
630630
const rawBuff = (localKey as BinaryType).value(true);
631631
if (Buffer.isBuffer(rawBuff)) {
632632
autoEncryption.kmsProviders = {
633-
...fleOptions.kmsProvider,
633+
...fleOptions.kmsProviders,
634634
local: {
635635
key: rawBuff
636636
}
@@ -639,7 +639,7 @@ export function processFLEOptions(fleOptions: ClientSideFieldLevelEncryptionOpti
639639
throw new MongoshInvalidInputError('When specifying the key of a local KMS as BSON binary it must be constructed from a base64 encoded string');
640640
}
641641
} else {
642-
autoEncryption.kmsProviders = { ...fleOptions.kmsProvider } as KMSProviders;
642+
autoEncryption.kmsProviders = { ...fleOptions.kmsProviders } as KMSProviders;
643643
}
644644

645645
if (fleOptions.schemaMap) {

packages/shell-api/src/shell-api.spec.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ describe('ShellApi', () => {
219219
it(`local kms provider - key is ${type}`, async() => {
220220
await internalState.shellApi.Mongo('dbname', {
221221
keyVaultNamespace: 'encryption.dataKeys',
222-
kmsProvider: {
222+
kmsProviders: {
223223
local: {
224224
key: key
225225
}
@@ -239,7 +239,7 @@ describe('ShellApi', () => {
239239
it('aws kms provider', async() => {
240240
await internalState.shellApi.Mongo('dbname', {
241241
keyVaultNamespace: 'encryption.dataKeys',
242-
kmsProvider: {
242+
kmsProviders: {
243243
aws: {
244244
accessKeyId: 'abc',
245245
secretAccessKey: '123'
@@ -259,7 +259,7 @@ describe('ShellApi', () => {
259259
it('local kms provider with current as Mongo', async() => {
260260
await internalState.shellApi.Mongo('dbname', {
261261
keyVaultNamespace: 'encryption.dataKeys',
262-
kmsProvider: {
262+
kmsProviders: {
263263
local: {
264264
key: Buffer.from(b641234, 'base64')
265265
}
@@ -283,7 +283,7 @@ describe('ShellApi', () => {
283283
const m = new Mongo({ initialServiceProvider: sp } as any, 'dbName', undefined, sp);
284284
await internalState.shellApi.Mongo('dbname', {
285285
keyVaultNamespace: 'encryption.dataKeys',
286-
kmsProvider: {
286+
kmsProviders: {
287287
local: {
288288
key: Buffer.from(b641234, 'base64')
289289
}
@@ -303,7 +303,7 @@ describe('ShellApi', () => {
303303
it('throws if missing namespace', async() => {
304304
try {
305305
await internalState.shellApi.Mongo('dbname', {
306-
kmsProvider: {
306+
kmsProviders: {
307307
aws: {
308308
accessKeyId: 'abc',
309309
secretAccessKey: '123'
@@ -315,7 +315,7 @@ describe('ShellApi', () => {
315315
}
316316
expect.fail('failed to throw expected error');
317317
});
318-
it('throws if missing kmsProvider', async() => {
318+
it('throws if missing kmsProviders', async() => {
319319
try {
320320
await internalState.shellApi.Mongo('dbname', {
321321
keyVaultNamespace: 'encryption.dataKeys'
@@ -329,7 +329,7 @@ describe('ShellApi', () => {
329329
try {
330330
await internalState.shellApi.Mongo('dbname', {
331331
keyVaultNamespace: 'encryption.dataKeys',
332-
kmsProvider: {
332+
kmsProviders: {
333333
aws: {
334334
accessKeyId: 'abc',
335335
secretAccessKey: '123'
@@ -345,7 +345,7 @@ describe('ShellApi', () => {
345345
it('passes along optional arguments', async() => {
346346
await internalState.shellApi.Mongo('dbname', {
347347
keyVaultNamespace: 'encryption.dataKeys',
348-
kmsProvider: {
348+
kmsProviders: {
349349
local: {
350350
key: Buffer.from(b641234, 'base64')
351351
}

0 commit comments

Comments
 (0)