File tree 4 files changed +29
-1
lines changed
4 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -571,6 +571,14 @@ MongoCrypt::MongoCrypt(const CallbackInfo& info) : ObjectWrap(info) {
571
571
mongocrypt_setopt_bypass_query_analysis (mongo_crypt ());
572
572
}
573
573
574
+ if (options.Has (" keyExpirationMS" )) {
575
+ int64_t keyExpirationMS = options.Get (" keyExpirationMS" ).ToNumber ().Int64Value ();
576
+ if (keyExpirationMS < 0 ) {
577
+ throw TypeError::New (Env (), " Option `keyExpirationMS` must be a non-negative number" );
578
+ }
579
+ mongocrypt_setopt_key_expiration (mongo_crypt (), keyExpirationMS);
580
+ }
581
+
574
582
mongocrypt_setopt_use_range_v2 (mongo_crypt ());
575
583
576
584
mongocrypt_setopt_use_need_kms_credentials_state (mongo_crypt ());
Original file line number Diff line number Diff line change 35
35
},
36
36
"license" : " Apache-2.0" ,
37
37
"gypfile" : true ,
38
- "mongodb:libmongocrypt" : " 1.13 .0" ,
38
+ "mongodb:libmongocrypt" : " 1.14 .0" ,
39
39
"dependencies" : {
40
40
"node-addon-api" : " ^4.3.0" ,
41
41
"prebuild-install" : " ^7.1.3"
Original file line number Diff line number Diff line change @@ -67,6 +67,8 @@ type MongoCryptConstructorOptions = {
67
67
cryptSharedLibSearchPaths ?: string [ ] ;
68
68
cryptSharedLibPath ?: string ;
69
69
bypassQueryAnalysis ?: boolean ;
70
+ /** Configure the time to expire the DEK from the cache. */
71
+ keyExpirationMS ?: number ;
70
72
/** TODO(NODE-6793): remove this option and have it always set in the next major */
71
73
enableMultipleCollinfo ?: boolean ;
72
74
} ;
Original file line number Diff line number Diff line change @@ -97,6 +97,24 @@ describe('MongoCryptConstructor', () => {
97
97
} ) ;
98
98
} ) ;
99
99
100
+ describe ( 'options.keyExpirationMS' , ( ) => {
101
+ context ( 'when the number is positive' , ( ) => {
102
+ it ( 'does not error' , ( ) => {
103
+ expect (
104
+ new MongoCrypt ( { kmsProviders : serialize ( { aws : { } } ) , keyExpirationMS : 1000000 } )
105
+ ) . to . be . instanceOf ( MongoCrypt ) ;
106
+ } ) ;
107
+ } ) ;
108
+
109
+ context ( 'when the number is negative' , ( ) => {
110
+ it ( 'throws an error' , ( ) => {
111
+ expect ( ( ) => {
112
+ new MongoCrypt ( { kmsProviders : serialize ( { aws : { } } ) , keyExpirationMS : - 1000000 } ) ;
113
+ } ) . to . throw ( / m u s t b e a n o n - n e g a t i v e n u m b e r / ) ;
114
+ } ) ;
115
+ } ) ;
116
+ } ) ;
117
+
100
118
describe ( 'options.encryptedFieldsMap' , ( ) => {
101
119
it ( 'throws when provided and not a Uint8Array' , ( ) => {
102
120
expect (
You can’t perform that action at this time.
0 commit comments