169 lines
8.3 KiB
YAML
169 lines
8.3 KiB
YAML
# Requires libmongocrypt 1.8.0.
|
|
runOn:
|
|
# Require server version 6.0.0 to get behavior added in SERVER-64911.
|
|
- minServerVersion: "7.0.0"
|
|
# Skip QEv2 (also referred to as FLE2v2) tests on Serverless. Unskip once Serverless enables the QEv2 protocol.
|
|
# FLE 2 Encrypted collections are not supported on standalone.
|
|
topology: [ "replicaset", "sharded", "load-balanced" ]
|
|
|
|
database_name: &database_name "default"
|
|
collection_name: &collection_name "default"
|
|
data: []
|
|
tests:
|
|
- description: "create with a validator on an unencrypted field is OK"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
encryptedFieldsMap:
|
|
"default.encryptedCollection": {'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedIndexed', 'bsonType': 'string', 'queries': {'queryType': 'equality', 'contention': {'$numberLong': '0'}}}, {'keyId': {'$binary': {'base64': 'q83vqxI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedUnindexed', 'bsonType': 'string'}]}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
validator:
|
|
unencrypted_string: "foo"
|
|
- name: assertCollectionExists
|
|
object: testRunner
|
|
arguments:
|
|
database: *database_name
|
|
collection: "encryptedCollection"
|
|
- description: "create with a validator on an encrypted field is an error"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
encryptedFieldsMap:
|
|
"default.encryptedCollection": {'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedIndexed', 'bsonType': 'string', 'queries': {'queryType': 'equality', 'contention': {'$numberLong': '0'}}}, {'keyId': {'$binary': {'base64': 'q83vqxI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedUnindexed', 'bsonType': 'string'}]}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
validator:
|
|
encryptedIndexed: "foo"
|
|
result:
|
|
errorContains: "Comparison to encrypted fields not supported"
|
|
- description: "collMod with a validator on an unencrypted field is OK"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
encryptedFieldsMap:
|
|
"default.encryptedCollection": {'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedIndexed', 'bsonType': 'string', 'queries': {'queryType': 'equality', 'contention': {'$numberLong': '0'}}}, {'keyId': {'$binary': {'base64': 'q83vqxI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedUnindexed', 'bsonType': 'string'}]}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: runCommand
|
|
object: database
|
|
arguments:
|
|
command:
|
|
collMod: "encryptedCollection"
|
|
validator:
|
|
unencrypted_string: "foo"
|
|
- description: "collMod with a validator on an encrypted field is an error"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
encryptedFieldsMap:
|
|
"default.encryptedCollection": {'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedIndexed', 'bsonType': 'string', 'queries': {'queryType': 'equality', 'contention': {'$numberLong': '0'}}}, {'keyId': {'$binary': {'base64': 'q83vqxI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedUnindexed', 'bsonType': 'string'}]}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: runCommand
|
|
object: database
|
|
arguments:
|
|
command:
|
|
collMod: "encryptedCollection"
|
|
validator:
|
|
encryptedIndexed: "foo"
|
|
result:
|
|
errorContains: "Comparison to encrypted fields not supported"
|
|
- description: "createIndexes with a partialFilterExpression on an unencrypted field is OK"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
encryptedFieldsMap:
|
|
"default.encryptedCollection": {'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedIndexed', 'bsonType': 'string', 'queries': {'queryType': 'equality', 'contention': {'$numberLong': '0'}}}, {'keyId': {'$binary': {'base64': 'q83vqxI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedUnindexed', 'bsonType': 'string'}]}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: runCommand
|
|
object: database
|
|
arguments:
|
|
command:
|
|
createIndexes: "encryptedCollection"
|
|
indexes:
|
|
- name: "name"
|
|
key: { name: 1 }
|
|
partialFilterExpression:
|
|
unencrypted_string: "foo"
|
|
- name: assertIndexExists
|
|
object: testRunner
|
|
arguments:
|
|
database: *database_name
|
|
collection: "encryptedCollection"
|
|
index: name
|
|
- description: "createIndexes with a partialFilterExpression on an encrypted field is an error"
|
|
clientOptions:
|
|
autoEncryptOpts:
|
|
kmsProviders:
|
|
local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
|
|
encryptedFieldsMap:
|
|
"default.encryptedCollection": {'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedIndexed', 'bsonType': 'string', 'queries': {'queryType': 'equality', 'contention': {'$numberLong': '0'}}}, {'keyId': {'$binary': {'base64': 'q83vqxI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedUnindexed', 'bsonType': 'string'}]}
|
|
operations:
|
|
# Drop to remove a collection that may exist from previous test runs.
|
|
- name: dropCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: createCollection
|
|
object: database
|
|
arguments:
|
|
collection: "encryptedCollection"
|
|
- name: runCommand
|
|
object: database
|
|
arguments:
|
|
command:
|
|
createIndexes: "encryptedCollection"
|
|
indexes:
|
|
- name: "name"
|
|
key: { name: 1 }
|
|
partialFilterExpression:
|
|
encryptedIndexed: "foo"
|
|
result:
|
|
errorContains: "Comparison to encrypted fields not supported" |