File tree Expand file tree Collapse file tree 4 files changed +29
-1
lines changed Expand file tree Collapse file tree 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) {
571571 mongocrypt_setopt_bypass_query_analysis (mongo_crypt ());
572572 }
573573
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+
574582 mongocrypt_setopt_use_range_v2 (mongo_crypt ());
575583
576584 mongocrypt_setopt_use_need_kms_credentials_state (mongo_crypt ());
Original file line number Diff line number Diff line change 3535 },
3636 "license" : " Apache-2.0" ,
3737 "gypfile" : true ,
38- "mongodb:libmongocrypt" : " 1.13 .0" ,
38+ "mongodb:libmongocrypt" : " 1.14 .0" ,
3939 "dependencies" : {
4040 "node-addon-api" : " ^4.3.0" ,
4141 "prebuild-install" : " ^7.1.3"
Original file line number Diff line number Diff line change @@ -67,6 +67,8 @@ type MongoCryptConstructorOptions = {
6767 cryptSharedLibSearchPaths ?: string [ ] ;
6868 cryptSharedLibPath ?: string ;
6969 bypassQueryAnalysis ?: boolean ;
70+ /** Configure the time to expire the DEK from the cache. */
71+ keyExpirationMS ?: number ;
7072 /** TODO(NODE-6793): remove this option and have it always set in the next major */
7173 enableMultipleCollinfo ?: boolean ;
7274} ;
Original file line number Diff line number Diff line change @@ -97,6 +97,24 @@ describe('MongoCryptConstructor', () => {
9797 } ) ;
9898 } ) ;
9999
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+
100118 describe ( 'options.encryptedFieldsMap' , ( ) => {
101119 it ( 'throws when provided and not a Uint8Array' , ( ) => {
102120 expect (
You can’t perform that action at this time.
0 commit comments