-
Type:
Sub-task
-
Resolution: Done
-
Priority:
Unknown
-
None
-
Affects Version/s: None
-
Component/s: None
Use Case
As a Node driver engineer,
I want FLE tests to run on Alpine linux with our FLE bindings,
So that we have confidence that this works for our users.
User Experience
n/a
Dependencies
n/a
Risks/Unknowns
n/a
Acceptance Criteria
Implementation Requirements
- Add a variant to driver CI that runs FLE tests inside a docker container on Alpine linux.
- This variant will use our lowest supported LTS nodejs, latest server with a replica set. Other CI configuration defaults apply (no TLS, auth enabled, etc).
- The replica set will run outside the docker container (no mongodb binaries are available for alpine linux).
- Test suite:
- Ensure adequate coverage for all relevant ClientEncryption APIs:
- Key management API
- Unified test suite for FLE (contains tests for all key management methods)
- decrypt() and encrypt()
- All prose tests that do not use special KMS providers (non-local) or auto encryption.
- client_side_encryption.prose.22.range_explicit_encryption.test.ts
- encryptExpression()
- client_encryption.test.ts and client_side_encryption.prose.22.range_explicit_encryption.test.ts
- Key management API
- Ensure adequate coverage for all relevant ClientEncryption APIs:
This test plan notably does not cover the following scenarios:
- auto encryption
- No crypt_shared or mongocryptd are available on alpine. It is possible to run auto encryption on alpine by connecting to an external mongocryptd, but most of our tests spawn their own mongocryptds so making this change would require substantial test changes.
- kms credential fetching
- KMS credential fetching is JS logic and should be OS-agnostic.
- TLS
- We don't own any native TLS logic and this should be independent of OS.
Testing Requirements
n/a
Documentation Requirements
n/a
Follow Up Requirements
Release FLE bindings. TODO - file ticket.