-
Type: Sub-task
-
Resolution: Fixed
-
Priority: Unknown
-
Affects Version/s: None
-
Component/s: None
Use Case
As a driver engineer,
I want to export all the same interfaces and properties from the driver as from mongodb-client-encryption v2,
So that we do not break users more than expected with the FLE refactor.
User Impact
n/a
Dependencies
- n/a
Unknowns
- questions that need to be answered to determine implementation
Acceptance Criteria
List of publicly exported APIs from mongodb-client-encryption@2
- type ClientEncryptionDataKeyProvider
- interface DataKey
- class MongoCryptError
- class MongoCryptCreateEncryptedCollectionError
- class MongoCryptCreateDataKeyError
- class MongoCryptAzureKMSRequestError
- class MongoCryptKMSRequestNetworkTimeoutError
- class MongoCryptInvalidArgumentError
- interface ProxyOptions
- interface ClientEncryptionCreateDataKeyCallback (omitted, we're dropping support for callbacks)
- interface ClientEncryptionEncryptCallback (omitted, we're dropping support for callbacks)
- interface ClientEncryptionDecryptCallback (omitted, we're dropping support for callbacks)
- interface KMSProviders
- interface ClientEncryptionTlsOptions
- interface ClientEncryptionOptions
- interface AWSEncryptionKeyOptions
- interface GCPEncryptionKeyOptions
- interface AzureEncryptionKeyOptions
- interface ClientEncryptionCreateDataKeyProviderOptions
- interface ClientEncryptionRewrapManyDataKeyProviderOptions
- interface ClientEncryptionRewrapManyDataKeyResult
- interface ClientEncryptionEncryptOptions
- class ClientEncryption
https://github.com/mongodb/libmongocrypt/blob/8588825112a93145bf82b4b7519070c101c45a43/bindings/node/index.d.ts contains all the types we exposed
`index.js` for the bindings https://github.com/mongodb/libmongocrypt/blob/8588825112a93145bf82b4b7519070c101c45a43/bindings/node/lib/index.js
Notably, we will no longer export the `extension` method (used to inject `mongodb` into libmongocrypt) and the types used for Callbacks.
Implementation Requirements
- Determine what was publicly exposed from `mongodb-client-encryption` v2 and document the list in the ticket
- Ensure each publicly exposed type / class / value from v2 is exported from the driver.
- Ensure the exported types are present in the generated driver API docs
Testing Requirements
- n/a
Documentation Requirements
- n/a (there's a ticket to address documentation following this)
Follow Up Requirements
- n/a