diff --git a/.evergreen/config.yml b/.evergreen/config.yml index d14aec861c..38afe9b80b 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -93,8 +93,7 @@ functions: if [ -n "${CLIENT_ENCRYPTION}" ]; then cat < prepare_client_encryption.sh export CLIENT_ENCRYPTION=${CLIENT_ENCRYPTION} - export AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}" - export AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}" + export CSFLE_KMS_PROVIDERS='${CSFLE_KMS_PROVIDERS}' EOT fi - command: shell.exec diff --git a/.evergreen/config.yml.in b/.evergreen/config.yml.in index 0d330d4215..97685e1b6b 100644 --- a/.evergreen/config.yml.in +++ b/.evergreen/config.yml.in @@ -112,8 +112,7 @@ functions: if [ -n "${CLIENT_ENCRYPTION}" ]; then cat < prepare_client_encryption.sh export CLIENT_ENCRYPTION=${CLIENT_ENCRYPTION} - export AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}" - export AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}" + export CSFLE_KMS_PROVIDERS='${CSFLE_KMS_PROVIDERS}' EOT fi - command: shell.exec @@ -239,7 +238,7 @@ functions: MONGODB_URI='${plain_auth_mongodb_uri}' NODE_LTS_NAME='${NODE_LTS_NAME}' \ bash ${PROJECT_DIRECTORY}/.evergreen/run-ldap-tests.sh - "run tls tests": + "run tls tests": - command: shell.exec type: test params: diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 11085a3d35..06cf5e61ff 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -52,7 +52,7 @@ if [[ -z "${CLIENT_ENCRYPTION}" ]]; then unset AWS_ACCESS_KEY_ID; unset AWS_SECRET_ACCESS_KEY; else - npm install mongodb-client-encryption + npm install mongodb-client-encryption@1.1.1-beta.0 fi MONGODB_UNIFIED_TOPOLOGY=${UNIFIED} MONGODB_URI=${MONGODB_URI} npm run ${TEST_NPM_SCRIPT} diff --git a/test/functional/client_side_encryption/corpus.test.js b/test/functional/client_side_encryption/corpus.test.js index e2c5918884..874d96369e 100644 --- a/test/functional/client_side_encryption/corpus.test.js +++ b/test/functional/client_side_encryption/corpus.test.js @@ -24,17 +24,21 @@ describe('Client Side Encryption Corpus', function() { return EJSON.parse(fs.readFileSync(path.resolve(corpusDir, filename), { strict: true })); } + const CSFLE_KMS_PROVIDERS = process.env.CSFLE_KMS_PROVIDERS; + const kmsProviders = CSFLE_KMS_PROVIDERS ? EJSON.parse(CSFLE_KMS_PROVIDERS) : {}; + kmsProviders.local = { + key: Buffer.from( + 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', + 'base64' + ) + }; + // TODO: build this into EJSON // TODO: make a custom chai assertion for this function toComparableExtendedJSON(value) { return JSON.parse(EJSON.stringify({ value }, { strict: true })); } - const localKey = Buffer.from( - 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', - 'base64' - ); - // Filters out tests that have to do with dbPointer // TODO: fix dbpointer and get rid of this. function filterImportedObject(object) { @@ -53,6 +57,8 @@ describe('Client Side Encryption Corpus', function() { const corpusSchema = loadCorpusData('corpus-schema.json'); const corpusKeyLocal = loadCorpusData('corpus-key-local.json'); const corpusKeyAws = loadCorpusData('corpus-key-aws.json'); + const corpusKeyAzure = loadCorpusData('corpus-key-azure.json'); + const corpusKeyGcp = loadCorpusData('corpus-key-gcp.json'); const corpusAll = filterImportedObject(loadCorpusData('corpus.json')); const corpusEncryptedExpectedAll = filterImportedObject(loadCorpusData('corpus-encrypted.json')); @@ -69,13 +75,23 @@ describe('Client Side Encryption Corpus', function() { ]); const identifierMap = new Map([ ['local', corpusKeyLocal._id], - ['aws', corpusKeyAws._id] + ['aws', corpusKeyAws._id], + ['azure', corpusKeyAzure._id], + ['gcp', corpusKeyGcp._id] ]); const keyAltNameMap = new Map([ ['local', 'local'], - ['aws', 'aws'] + ['aws', 'aws'], + ['azure', 'azure'], + ['gcp', 'gcp'] + ]); + const copyOverValues = new Set([ + '_id', + 'altname_aws', + 'altname_local', + 'altname_azure', + 'altname_gcp' ]); - const copyOverValues = new Set(['_id', 'altname_aws', 'altname_local']); let client; @@ -102,7 +118,7 @@ describe('Client Side Encryption Corpus', function() { break; } default: { - throw new Error('how did you get here?'); + throw new Error('Unexpected algorithm: ' + expected.algo); } } @@ -122,7 +138,7 @@ describe('Client Side Encryption Corpus', function() { } else if (expected.allowed === false) { expect(actualJSON).to.deep.equal(expectedJSON); } else { - throw new Error('how did you get here?'); + throw new Error('Unexpected value for allowed: ' + expected.allowed); } } @@ -142,7 +158,9 @@ describe('Client Side Encryption Corpus', function() { .then(() => keyDb.dropCollection(keyVaultCollName)) .catch(() => {}) .then(() => keyDb.collection(keyVaultCollName)) - .then(keyColl => keyColl.insertMany([corpusKeyLocal, corpusKeyAws])); + .then(keyColl => + keyColl.insertMany([corpusKeyLocal, corpusKeyAws, corpusKeyAzure, corpusKeyGcp]) + ); }); }); @@ -185,7 +203,7 @@ describe('Client Side Encryption Corpus', function() { // Configure both objects with ``keyVaultNamespace`` set to ``keyvault.datakeys``. const autoEncryption = { keyVaultNamespace, - kmsProviders: this.configuration.kmsProviders(null, localKey) + kmsProviders }; if (useClientSideSchema) { autoEncryption.schemaMap = { @@ -204,7 +222,7 @@ describe('Client Side Encryption Corpus', function() { return clientEncrypted.connect().then(() => { clientEncryption = new mongodbClientEncryption.ClientEncryption(client, { keyVaultNamespace, - kmsProviders: this.configuration.kmsProviders(null, localKey) + kmsProviders }); }); }); @@ -269,7 +287,7 @@ describe('Client Side Encryption Corpus', function() { } else if (field.identifier === 'altname') { encryptOptions.keyAltName = keyAltNameMap.get(field.kms); } else { - throw new Error('wtf how did u get here?'); + throw new Error('Unexpected identifier: ' + field.identifier); } return Promise.resolve() @@ -294,7 +312,7 @@ describe('Client Side Encryption Corpus', function() { ); } - throw new Error('how did u get here?'); + throw new Error('Unexpected method: ' + field.method); }); }) .then(() => { diff --git a/test/functional/client_side_encryption/prose.test.js b/test/functional/client_side_encryption/prose.test.js index 83cc2fc798..f36f555de8 100644 --- a/test/functional/client_side_encryption/prose.test.js +++ b/test/functional/client_side_encryption/prose.test.js @@ -4,6 +4,18 @@ const chai = require('chai'); const expect = chai.expect; chai.use(require('chai-subset')); +const EJSON = require('mongodb-extjson'); +const getKmsProviders = localKey => { + const result = EJSON.parse(process.env.CSFLE_KMS_PROVIDERS || 'NOT_PROVIDED'); + if (localKey) { + result.local = { key: localKey }; + } + + return result; +}; + +const noop = () => {}; + // Tests for the ClientEncryption type are not included as part of the YAML tests. // In the prose tests LOCAL_MASTERKEY refers to the following base64: @@ -25,7 +37,7 @@ describe('Client Side Encryption Prose Tests', function() { const dropCollection = shared.dropCollection; const APMEventCollector = shared.APMEventCollector; - const localKey = Buffer.from( + const LOCAL_KEY = Buffer.from( 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'base64' ); @@ -97,7 +109,7 @@ describe('Client Side Encryption Prose Tests', function() { // Configure ``client_encryption`` with the ``keyVaultClient`` of the previously created ``client``. .then(() => { this.clientEncryption = new mongodbClientEncryption.ClientEncryption(this.client, { - kmsProviders: this.configuration.kmsProviders(null, localKey), + kmsProviders: getKmsProviders(), keyVaultNamespace }); }) @@ -109,7 +121,7 @@ describe('Client Side Encryption Prose Tests', function() { useUnifiedTopology: true, autoEncryption: { keyVaultNamespace, - kmsProviders: this.configuration.kmsProviders(null, localKey), + kmsProviders: getKmsProviders(), schemaMap } } @@ -321,11 +333,24 @@ describe('Client Side Encryption Prose Tests', function() { { useNewUrlParser: true, useUnifiedTopology: true } ); + const customKmsProviders = getKmsProviders(); + customKmsProviders.azure.identityPlatformEndpoint = 'login.microsoftonline.com:443'; + customKmsProviders.gcp.endpoint = 'oauth2.googleapis.com:443'; + + const invalidKmsProviders = getKmsProviders(); + invalidKmsProviders.azure.identityPlatformEndpoint = 'example.com:443'; + invalidKmsProviders.gcp.endpoint = 'example.com:443'; + return this.client.connect().then(() => { const mongodbClientEncryption = this.configuration.mongodbClientEncryption; this.clientEncryption = new mongodbClientEncryption.ClientEncryption(this.client, { keyVaultNamespace, - kmsProviders: this.configuration.kmsProviders('aws') + kmsProviders: customKmsProviders + }); + + this.clientEncryptionInvalid = new mongodbClientEncryption.ClientEncryption(this.client, { + keyVaultNamespace, + kmsProviders: invalidKmsProviders }); }); }); @@ -333,9 +358,11 @@ describe('Client Side Encryption Prose Tests', function() { afterEach(function() { return this.client && this.client.close(); }); + const testCases = [ { description: 'no custom endpoint', + provider: 'aws', masterKey: { region: 'us-east-1', key: 'arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0' @@ -344,6 +371,7 @@ describe('Client Side Encryption Prose Tests', function() { }, { description: 'custom endpoint', + provider: 'aws', masterKey: { region: 'us-east-1', key: 'arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0', @@ -353,6 +381,7 @@ describe('Client Side Encryption Prose Tests', function() { }, { description: 'custom endpoint with port', + provider: 'aws', masterKey: { region: 'us-east-1', key: 'arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0', @@ -362,6 +391,7 @@ describe('Client Side Encryption Prose Tests', function() { }, { description: 'custom endpoint with bad url', + provider: 'aws', masterKey: { region: 'us-east-1', key: 'arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0', @@ -377,6 +407,7 @@ describe('Client Side Encryption Prose Tests', function() { }, { description: 'custom endpoint that does not match region', + provider: 'aws', masterKey: { region: 'us-east-1', key: 'arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0', @@ -393,12 +424,13 @@ describe('Client Side Encryption Prose Tests', function() { }, { description: 'custom endpoint with parse error', + provider: 'aws', masterKey: { region: 'us-east-1', key: 'arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0', endpoint: 'example.com' }, - suceed: false, + succeed: false, errorValidator: err => { // Expect this to fail with an exception with a message containing the string: "parse error" expect(err) @@ -406,6 +438,48 @@ describe('Client Side Encryption Prose Tests', function() { .and.to.have.property('message') .that.matches(/parse error/); } + }, + { + description: 'azure custom endpoint', + provider: 'azure', + masterKey: { + keyVaultEndpoint: 'key-vault-csfle.vault.azure.net', + keyName: 'key-name-csfle' + }, + succeed: true, + checkAgainstInvalid: true + }, + { + description: 'gcp custom endpoint', + provider: 'gcp', + masterKey: { + projectId: 'devprod-drivers', + location: 'global', + keyRing: 'key-ring-csfle', + keyName: 'key-name-csfle', + endpoint: 'cloudkms.googleapis.com:443' + }, + succeed: true, + checkAgainstInvalid: true + }, + { + description: 'gcp invalid custom endpoint', + provider: 'gcp', + masterKey: { + projectId: 'devprod-drivers', + location: 'global', + keyRing: 'key-ring-csfle', + keyName: 'key-name-csfle', + endpoint: 'example.com:443' + }, + succeed: false, + errorValidator: err => { + // Expect this to fail with an exception with a message containing the string: "parse error" + expect(err) + .to.be.an.instanceOf(Error) + .and.to.have.property('message') + .that.matches(/Invalid KMS response/); + } } ]; @@ -418,32 +492,53 @@ describe('Client Side Encryption Prose Tests', function() { // } // Expect this to succeed. Use the returned UUID of the key to explicitly encrypt and decrypt the string "test" to validate it works. const masterKey = testCase.masterKey; - return this.clientEncryption.createDataKey('aws', { masterKey }).then( - keyId => { - if (!testCase.succeed) { - throw new Error('Expected test case to fail to create data key, but it succeeded'); - } - return this.clientEncryption - .encrypt('test', { - keyId, - algorithm: 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic' - }) - .then(encrypted => this.clientEncryption.decrypt(encrypted)) - .then(result => { - expect(result).to.equal('test'); - }); - }, - err => { - if (testCase.succeed) { - throw err; - } - if (!testCase.errorValidator) { - throw new Error('Invalid Error validator'); - } - testCase.errorValidator(err); - } + const promises = []; + promises.push( + this.clientEncryption.createDataKey(testCase.provider, { masterKey }).then( + keyId => { + if (!testCase.succeed) { + throw new Error('Expected test case to fail to create data key, but it succeeded'); + } + return this.clientEncryption + .encrypt('test', { + keyId, + algorithm: 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic' + }) + .then(encrypted => this.clientEncryption.decrypt(encrypted)) + .then(result => { + expect(result).to.equal('test'); + }); + }, + err => { + if (testCase.succeed) { + throw err; + } + if (!testCase.errorValidator) { + throw new Error('Invalid Error validator'); + } + + testCase.errorValidator(err); + } + ) ); + + if (testCase.checkAgainstInvalid) { + promises.push( + this.clientEncryptionInvalid.createDataKey(testCase.provider, { masterKey }).then( + () => { + throw new Error('Expected test case to fail to create data key, but it succeeded'); + }, + err => { + expect(err) + .property('message') + .to.match(/parse error/); + } + ) + ); + } + + return Promise.all(promises); }); }); }); @@ -506,7 +601,7 @@ describe('Client Side Encryption Prose Tests', function() { monitorCommands: true, autoEncryption: { keyVaultNamespace, - kmsProviders: this.configuration.kmsProviders('local', localKey) + kmsProviders: getKmsProviders(LOCAL_KEY) } } ); @@ -673,8 +768,9 @@ describe('Client Side Encryption Prose Tests', function() { .then(() => { return this.client .db(dataDbName) - .createCollection('view', { viewOn: dataCollName, pipeline: [] }); - }); + .createCollection('view', { viewOn: dataCollName, pipeline: [] }) + .then(noop, noop); + }, noop); }); after(function() { @@ -689,7 +785,7 @@ describe('Client Side Encryption Prose Tests', function() { useUnifiedTopology: true, autoEncryption: { keyVaultNamespace, - kmsProviders: this.configuration.kmsProviders(null, localKey) + kmsProviders: getKmsProviders(LOCAL_KEY) } } ); @@ -808,7 +904,7 @@ describe('Client Side Encryption Prose Tests', function() { .then(() => { const options = { keyVaultNamespace, - kmsProviders: this.configuration.kmsProviders('local', localKey) + kmsProviders: getKmsProviders(LOCAL_KEY) }; if (withExternalKeyVault) { diff --git a/test/functional/client_side_encryption/spec.test.js b/test/functional/client_side_encryption/spec.test.js index 53c585b453..507149ff5e 100644 --- a/test/functional/client_side_encryption/spec.test.js +++ b/test/functional/client_side_encryption/spec.test.js @@ -7,8 +7,7 @@ const generateTopologyTests = require('../spec-runner').generateTopologyTests; describe('Client Side Encryption', function() { // TODO: Replace this with using the filter once the filter works on describe blocks - const skipTests = - process.env.AWS_ACCESS_KEY_ID == null || process.env.AWS_SECRET_ACCESS_KEY == null; + const skipTests = process.env.CSFLE_KMS_PROVIDERS == null; if (skipTests) { console.log('skipping Client Side Encryption Spec tests due to lack of AWS credentials'); return; @@ -24,7 +23,10 @@ describe('Client Side Encryption', function() { } const testContext = new TestRunnerContext(); - const testSuites = gatherTestSuites(path.join(__dirname, '../../spec/client-side-encryption')); + const testSuites = gatherTestSuites( + path.join(__dirname, '../../spec/client-side-encryption/tests') + ); + after(() => testContext.teardown()); before(function() { return testContext.setup(this.configuration); diff --git a/test/functional/cmap/connection.test.js b/test/functional/cmap/connection.test.js index 98a0834777..d86c476c07 100644 --- a/test/functional/cmap/connection.test.js +++ b/test/functional/cmap/connection.test.js @@ -61,7 +61,7 @@ describe('Connection', function() { }); }); - it('should support socket timeouts', { + it.skip('should support socket timeouts', { metadata: { requires: { os: '!win32' // NODE-2941: 240.0.0.1 doesnt work for windows diff --git a/test/functional/spec-runner/index.js b/test/functional/spec-runner/index.js index 64ad8fe735..24d71f0ce0 100644 --- a/test/functional/spec-runner/index.js +++ b/test/functional/spec-runner/index.js @@ -46,23 +46,12 @@ function translateClientOptions(options) { } if (options.autoEncryptOpts.kmsProviders) { - delete options.kmsProviders; - options.autoEncryption.kmsProviders = options.autoEncryptOpts.kmsProviders; - - const kmsProviders = options.autoEncryption.kmsProviders; - if (kmsProviders.aws) { - const awsProvider = kmsProviders.aws; - awsProvider.accessKeyId = process.env.AWS_ACCESS_KEY_ID || 'NOT_PROVIDED'; - awsProvider.secretAccessKey = process.env.AWS_SECRET_ACCESS_KEY || 'NOT_PROVIDED'; + const kmsProviders = EJSON.parse(process.env.CSFLE_KMS_PROVIDERS || 'NOT_PROVIDED'); + if (options.autoEncryptOpts.kmsProviders.local) { + kmsProviders.local = options.autoEncryptOpts.kmsProviders.local; } - if (kmsProviders.local && kmsProviders.local.key) { - const localKey = kmsProviders.local.key; - if (localKey._bsontype && localKey._bsontype === 'Binary' && localKey.sub_type === 0) { - // this is read in as BSON Binary subtype 0, extract the Buffer - kmsProviders.local.key = kmsProviders.local.key.buffer; - } - } + options.autoEncryption.kmsProviders = kmsProviders; } delete options.autoEncryptOpts; diff --git a/test/spec/client-side-encryption/aggregate.yml.template b/test/spec/client-side-encryption/aggregate.yml.template deleted file mode 100644 index 5da35aa31e..0000000000 --- a/test/spec/client-side-encryption/aggregate.yml.template +++ /dev/null @@ -1,136 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "Aggregate with deterministic encryption" - skipReason: "SERVER-39395" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: aggregate - arguments: - pipeline: - - { $match: { encrypted_string: "457-55-5642" } } - result: - - &doc0 { _id: 1, encrypted_string: "string0" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - aggregate: *collection_name - pipeline: - - { $match: { encrypted_string: "457-55-5642" } } - command_name: aggregate - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - description: "Aggregate with empty pipeline" - skipReason: "SERVER-40829 hides agg support behind enableTestCommands flag." - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: aggregate - arguments: - pipeline: [] - result: - - { _id: 1, encrypted_string: "string0" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - aggregate: *collection_name - pipeline: [] - cursor: {} - command_name: aggregate - # Needs to fetch key when decrypting results - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - description: "Aggregate should fail with random encryption" - skipReason: "SERVER-39395" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: aggregate - arguments: - pipeline: - - { $match: { random: "abc" } } - result: - errorContains: "Cannot query on fields encrypted with the randomized encryption" - - description: "Database aggregate should fail" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: aggregate - object: database - arguments: - pipeline: - - $currentOp: { allUsers: false, idleConnections: false, localOps: true } - - $match: { command.aggregate: { $eq: 1 } } - - $project: { command: 1 } - - $project: { command.lsid: 0 } - result: - errorContains: "non-collection command not supported for auto encryption: aggregate" \ No newline at end of file diff --git a/test/spec/client-side-encryption/badQueries.yml.template b/test/spec/client-side-encryption/badQueries.yml.template deleted file mode 100644 index ff874c84b4..0000000000 --- a/test/spec/client-side-encryption/badQueries.yml.template +++ /dev/null @@ -1,526 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -# TODO: I could see an argument against having these tests of mongocryptd as part -# of driver tests. When mongocryptd introduces support for these operators, these -# tests will fail. But it's also easy enough to remove these tests when that happens. - -tests: - - description: "$text unconditionally fails" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: - { $text: { $search: "search text" } } - result: - errorContains: "Unsupported match expression operator for encryption" - - description: "$where unconditionally fails" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: - { $where: { $code: "function() { return true }" } } - result: - errorContains: "Unsupported match expression operator for encryption" - - description: "$bit operators succeed on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: { unencrypted: { $bitsAllClear: 35 }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $bitsAllClear: 35 }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $bitsAllSet: 35 }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $bitsAllSet: 35 }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $bitsAnyClear: 35 }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $bitsAnyClear: 35 }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $bitsAnySet: 35 }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $bitsAnySet: 35 }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - description: "geo operators succeed on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: { unencrypted: { $near: [0,0] }} - result: - # Still an error because no geo index, but from mongod - not mongocryptd. - errorContains: "unable to find index" - - name: find - arguments: - filter: { encrypted_string: { $near: [0,0] }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $nearSphere: [0,0] }} - result: - # Still an error because no geo index, but from mongod - not mongocryptd. - errorContains: "unable to find index" - - name: find - arguments: - filter: { encrypted_string: { $nearSphere: [0,0] }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $geoIntersects: { $geometry: { type: "Polygon", coordinates: [[ [0,0], [1,0], [1,1], [0,0] ]] }} }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $geoIntersects: { $geometry: { type: "Polygon", coordinates: [[ [0,0], [1,0], [1,1], [0,0] ]] }} }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $geoWithin: { $geometry: { type: "Polygon", coordinates: [[ [0,0], [1,0], [1,1], [0,0] ]] }} }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $geoWithin: { $geometry: { type: "Polygon", coordinates: [[ [0,0], [1,0], [1,1], [0,0] ]] }} }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - description: "inequality operators succeed on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: { unencrypted: { $gt: 1 }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $gt: 1 }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $lt: 1 }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $lt: 1 }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $gte: 1 }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $gte: 1 }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $lte: 1 }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $lte: 1 }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - description: "other misc operators succeed on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: { unencrypted: { $mod: [3, 1] }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $mod: [3, 1] }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $regex: "pattern", $options: "" }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $regex: "pattern", $options: "" }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $size: 2 }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $size: 2 }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $type: 2 }} - result: [] - - name: find - arguments: - filter: { encrypted_string: { $type: 2 }} - result: - errorContains: "Invalid match expression operator on encrypted field" - - name: find - arguments: - filter: { unencrypted: { $eq: null }} - result: - - &doc0 { _id: 1, encrypted_string: "string0" } - - &doc1 { _id: 2, encrypted_string: "string1" } - - name: find - arguments: - filter: { encrypted_string: { $eq: null }} - result: - errorContains: "Illegal equality to null predicate for encrypted field" - - name: find - arguments: - filter: { unencrypted: { $in: [null] }} - result: - - *doc0 - - *doc1 - - name: find - arguments: - filter: { encrypted_string: { $in: [null] }} - result: - errorContains: "Illegal equality to null inside $in against an encrypted field" - - description: "$addToSet succeeds on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $addToSet: { "unencrypted": ["a"]}} - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { } - update: { $addToSet: { "encrypted_string": ["a"]}} - result: - errorContains: "$addToSet not allowed on encrypted values" - - description: "$inc succeeds on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $inc: { "unencrypted": 1}} - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { } - update: { $inc: { "encrypted_string": 1}} - result: - errorContains: "$inc and $mul not allowed on encrypted values" - - description: "$mul succeeds on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $mul: { "unencrypted": 1}} - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { } - update: { $mul: { "encrypted_string": 1}} - result: - errorContains: "$inc and $mul not allowed on encrypted values" - - description: "$max succeeds on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $max: { "unencrypted": 1}} - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { } - update: { $max: { "encrypted_string": 1}} - result: - errorContains: "$max and $min not allowed on encrypted values" - - description: "$min succeeds on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $min: { "unencrypted": 1}} - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { } - update: { $min: { "encrypted_string": 1}} - result: - errorContains: "$max and $min not allowed on encrypted values" - - description: "$currentDate succeeds on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $currentDate: { "unencrypted": true}} - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { } - update: { $currentDate: { "encrypted_string": true }} - result: - errorContains: "$currentDate not allowed on encrypted values" - - description: "$pop succeeds on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $pop: { "unencrypted": 1}} - result: - matchedCount: 1 - modifiedCount: 0 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { } - update: { $pop: { "encrypted_string": 1 }} - result: - errorContains: "$pop not allowed on encrypted values" - - description: "$pull succeeds on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $pull: { "unencrypted": 1}} - result: - matchedCount: 1 - modifiedCount: 0 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { } - update: { $pull: { "encrypted_string": 1 }} - result: - errorContains: "$pull not allowed on encrypted values" - - description: "$pullAll succeeds on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $pullAll: { "unencrypted": [1] }} - result: - matchedCount: 1 - modifiedCount: 0 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { } - update: { $pullAll: { "encrypted_string": [1] }} - result: - errorContains: "$pullAll not allowed on encrypted values" - - description: "$push succeeds on unencrypted, error on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $push: { "unencrypted": 1}} - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { } - update: { $push: { "encrypted_string": 1 }} - result: - errorContains: "$push not allowed on encrypted values" - - description: "array filters on encrypted fields does not error in mongocryptd, but errors in mongod" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $set : { "encrypted_string.$[i].x": 1 }} - arrayFilters: [{ i.x: 1 }] - result: - errorContains: "Array update operations not allowed on encrypted values" - - description: "positional operator succeeds on unencrypted, errors on encrypted" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { "unencrypted": 1 } - update: { $set : { "unencrypted.$": 1 }} - result: - matchedCount: 0 - modifiedCount: 0 - upsertedCount: 0 - - name: updateOne - arguments: - filter: { "encrypted_string": "abc" } - update: { $set : { "encrypted_string.$": "abc" }} - result: - errorContains: "Cannot encrypt fields below '$' positional update operator" - - description: "an update that would produce an array on an encrypted field errors" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $set : { "encrypted_string": [1,2] }} - result: - errorContains: "Cannot encrypt element of type array" - - description: "an insert with encrypted field on _id errors" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - schemaMap: - "default.default": {{schema("encrypted_id")}} - operations: - - name: insertOne - arguments: - document: { _id: 1 } - result: - errorContains: "Invalid schema containing the 'encrypt' keyword." - - description: "an insert with an array value for an encrypted field fails" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: { encrypted_string: [ "123", "456"] } - result: - errorContains: "Cannot encrypt element of type array" - - description: "an insert with a Timestamp(0,0) value in the top-level fails" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: { random: {"$timestamp": {"t": 0, "i": 0 }} } - result: - errorContains: "A command that inserts cannot supply Timestamp(0, 0) for an encrypted" - - description: "distinct with the key referring to a field where the keyID is a JSON Pointer errors" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: distinct - arguments: - filter: {} - fieldName: "encrypted_w_altname" - result: - errorContains: "The distinct key is not allowed to be marked for encryption with a non-UUID keyId" \ No newline at end of file diff --git a/test/spec/client-side-encryption/badSchema.yml.template b/test/spec/client-side-encryption/badSchema.yml.template deleted file mode 100644 index e760424374..0000000000 --- a/test/spec/client-side-encryption/badSchema.yml.template +++ /dev/null @@ -1,73 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -key_vault_data: [{{key()}}] - -tests: - - description: "Schema with an encrypted field in an array" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema('invalid_array')}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc0 { _id: 1, encrypted_string: "string0" } - result: - errorContains: "Invalid schema" - outcome: - collection: - data: [] - - description: "Schema without specifying parent object types" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema('invalid_omitted_type')}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: *doc0 - result: - errorContains: "Invalid schema" - outcome: - collection: - data: [] - - description: "Schema with siblings of encrypt document" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema('invalid_siblings')}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: *doc0 - result: - errorContains: "'encrypt' cannot be used in conjunction with 'bsonType'" - outcome: - collection: - data: [] - - description: "Schema with logical keywords" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema('logical_keywords')}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: *doc0 - result: - errorContains: "Invalid schema" - outcome: - collection: - data: [] \ No newline at end of file diff --git a/test/spec/client-side-encryption/basic.yml.template b/test/spec/client-side-encryption/basic.yml.template deleted file mode 100644 index 3a39cf8498..0000000000 --- a/test/spec/client-side-encryption/basic.yml.template +++ /dev/null @@ -1,118 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "Insert with deterministic encryption, then find it" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc0 { _id: 1, encrypted_string: "string0" } - - name: find - arguments: - filter: { _id: 1 } - result: [*doc0] - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: { _id: 1 } - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - description: "Insert with randomized encryption, then find it" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc1 { _id: 1, random: "123" } - - name: find - arguments: - filter: { _id: 1 } - result: [*doc1] - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - { _id: 1, random: { $$type: "binData" } } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: { _id: 1 } - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1, random: { $$type: "binData" } } \ No newline at end of file diff --git a/test/spec/client-side-encryption/bulk.yml.template b/test/spec/client-side-encryption/bulk.yml.template deleted file mode 100644 index f0cd4a717e..0000000000 --- a/test/spec/client-side-encryption/bulk.yml.template +++ /dev/null @@ -1,86 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "Bulk write with encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: bulkWrite - arguments: - requests: - - name: insertOne - arguments: - document: &doc0 { _id: 1, encrypted_string: "string0", random: "abc" } - - name: insertOne - arguments: - document: &doc1 { _id: 2, encrypted_string: "string1" } - - name: updateOne - arguments: - filter: { encrypted_string: "string0" } - update: { $set: { encrypted_string: "string1" } } - - name: deleteOne - arguments: - filter: { encrypted_string: "string1", _id: 2 } - options: { ordered: true } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}}, random: { $$type: "binData" } } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } - ordered: true - command_name: insert - - command_started_event: - command: - update: *collection_name - updates: - - q: { encrypted_string: { $eq: {{ciphertext("string0", field="encrypted_string")}} }} - u: {$set: { encrypted_string: {{ciphertext("string1", field="encrypted_string")}} }} - ordered: true - command_name: update - - command_started_event: - command: - delete: *collection_name - deletes: - - q: { "$and": [ { "encrypted_string": { "$eq": {{ciphertext("string1", field="encrypted_string")}} }}, { "_id": { "$eq": 2 }} ] } - limit: 1 - ordered: true - command_name: delete - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1, encrypted_string: {{ciphertext("string1", field="encrypted_string")}}, random: { $$type: "binData" } } diff --git a/test/spec/client-side-encryption/bypassAutoEncryption.yml.template b/test/spec/client-side-encryption/bypassAutoEncryption.yml.template deleted file mode 100644 index 17b35023c6..0000000000 --- a/test/spec/client-side-encryption/bypassAutoEncryption.yml.template +++ /dev/null @@ -1,98 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [{_id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} }] -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "Insert with bypassAutoEncryption" - clientOptions: - autoEncryptOpts: - bypassAutoEncryption: true - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: { _id: 2, encrypted_string: "string0" } - bypassDocumentValidation: true - - name: find - arguments: - filter: { } - result: - - { _id: 1, encrypted_string: "string0" } - - { _id: 2, encrypted_string: "string0" } - expectations: - - command_started_event: - command: - insert: *collection_name - documents: - # No encryption. - - { _id: 2, encrypted_string: "string0" } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: { } - command_name: find - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - { _id: 2, encrypted_string: "string0" } - - description: "Insert with bypassAutoEncryption for local schema" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{ schema() }} - bypassAutoEncryption: true - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: { _id: 2, encrypted_string: "string0" } - bypassDocumentValidation: true - - name: find - arguments: - filter: { } - result: - - { _id: 1, encrypted_string: "string0" } - - { _id: 2, encrypted_string: "string0" } - expectations: - - command_started_event: - command: - insert: *collection_name - documents: - # No encryption. - - { _id: 2, encrypted_string: "string0" } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: { } - command_name: find - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - { _id: 2, encrypted_string: "string0" } \ No newline at end of file diff --git a/test/spec/client-side-encryption/bypassedCommand.yml.template b/test/spec/client-side-encryption/bypassedCommand.yml.template deleted file mode 100644 index 3f47a431d0..0000000000 --- a/test/spec/client-side-encryption/bypassedCommand.yml.template +++ /dev/null @@ -1,28 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -json_schema: {} -key_vault_data: [{{key()}}] - -tests: - - description: "ping is bypassed" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: runCommand - object: database - command_name: ping - arguments: - command: - ping: 1 - expectations: - # No listCollections, no mongocryptd command, just the ping. - - command_started_event: - command: - ping: 1 - command_name: ping \ No newline at end of file diff --git a/test/spec/client-side-encryption/corpus/corpus-encrypted.json b/test/spec/client-side-encryption/corpus/corpus-encrypted.json index 998b058b0f..a11682688a 100644 --- a/test/spec/client-side-encryption/corpus/corpus-encrypted.json +++ b/test/spec/client-side-encryption/corpus/corpus-encrypted.json @@ -4021,5 +4021,3665 @@ "subType": "06" } } + }, + "azure_double_rand_auto_id": { + "kms": "azure", + "type": "double", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAB0S2kOZe54q6iZqeTLndkX+kehTKtb30jTP7FS+Zx+cxhFs626OrGY+jrH41cLfroCccacyNHUZFRinfqZPNOyw==", + "subType": "06" + } + } + }, + "azure_double_rand_auto_altname": { + "kms": "azure", + "type": "double", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAABYViH7PLjCIdmTibW9dGCJADwXx2dRSMYxEmulPu89clAoeLDa8pwJ7YxLFQCcTGmZRfmp58dDDAzV8tyyE8QMg==", + "subType": "06" + } + } + }, + "azure_double_rand_explicit_id": { + "kms": "azure", + "type": "double", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAABeRahSj4pniBp0rLIEZE8MdeyiIKcYuTZiuGzGiXbFbntEPow88DFHIBSxbMGR7p/8jCpPL+GqBwFkPkafXbMzg==", + "subType": "06" + } + } + }, + "azure_double_rand_explicit_altname": { + "kms": "azure", + "type": "double", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAABdaa3vKtO4cAEUjYJfOPl1KbbgeWtphfUuJd6MxR9VReNSf1jc+kONwmkPVQs2WyZ1n+TSQMGRoBp1nHRttDdTg==", + "subType": "06" + } + } + }, + "azure_double_det_explicit_id": { + "kms": "azure", + "type": "double", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$numberDouble": "1.2339999999999999858" + } + }, + "azure_double_det_explicit_altname": { + "kms": "azure", + "type": "double", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$numberDouble": "1.2339999999999999858" + } + }, + "azure_string_rand_auto_id": { + "kms": "azure", + "type": "string", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAACeoztcDg9oZ7ixHinReWQTrAumpsfyb0E1s3BGOFHgBCi1tW79CEXfqN8riFRc1YeRTlN4k5ShgHaBWBlax+XoQ==", + "subType": "06" + } + } + }, + "azure_string_rand_auto_altname": { + "kms": "azure", + "type": "string", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAACov9cXQvDHeKOS5Gxcxa8vdAcTsTXDYgUucGzsCyh4TnTWKGQEVk3DHndUXX569TKCjq5QsC//oWEwweCn1nZ4g==", + "subType": "06" + } + } + }, + "azure_string_rand_explicit_id": { + "kms": "azure", + "type": "string", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAACKU5qTdMdO0buQ/37ZRANUAAafcsoNMOTxJsDOfkqUb+/kRgM1ePlwVvk4EJiAGhJ/4SEmEOpwv05TT3PxGur2Q==", + "subType": "06" + } + } + }, + "azure_string_rand_explicit_altname": { + "kms": "azure", + "type": "string", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAACX/ODKGHUyAKxoJ/c/3lEDBTc+eP/VS8OHrLhYoP96McpnFSgYi5jfUwvrFYa715fkass4N0nAHE6TzoGTYyk6Q==", + "subType": "06" + } + } + }, + "azure_string_det_auto_id": { + "kms": "azure", + "type": "string", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAACmVI7YK4JLOzutEdQ79he817Vk5EDP/3hXwOlGmERZCtp8J8HcqClhV+pyvRLGbwmlh12fbSs9nEp7mrobQm9wA==", + "subType": "06" + } + } + }, + "azure_string_det_explicit_id": { + "kms": "azure", + "type": "string", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAACmVI7YK4JLOzutEdQ79he817Vk5EDP/3hXwOlGmERZCtp8J8HcqClhV+pyvRLGbwmlh12fbSs9nEp7mrobQm9wA==", + "subType": "06" + } + } + }, + "azure_string_det_explicit_altname": { + "kms": "azure", + "type": "string", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAACmVI7YK4JLOzutEdQ79he817Vk5EDP/3hXwOlGmERZCtp8J8HcqClhV+pyvRLGbwmlh12fbSs9nEp7mrobQm9wA==", + "subType": "06" + } + } + }, + "azure_object_rand_auto_id": { + "kms": "azure", + "type": "object", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAADWkZMsfCo4dOPMH1RXC7GkZFt1RCjJf0vaLDA09ih1Jl47SOetZELQ7B1TQjRQitktzrfD43jk8Fn4J5ZYZu1qQ==", + "subType": "06" + } + } + }, + "azure_object_rand_auto_altname": { + "kms": "azure", + "type": "object", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAADJFMymfstltZP1oAqj4bgbCk8uLGtCd12eLqvSq0ZO+JDvls7PAovwmoWwigHunP8BBXT8sLydK+jn1sHfnhrlw==", + "subType": "06" + } + } + }, + "azure_object_rand_explicit_id": { + "kms": "azure", + "type": "object", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAADCen+XrLYKg7gIVubVfdbQwuJ0mFHxhSUUyyBWj4RCeLeLUYXckboPGixXWB9XdwcOnInfF9u6qvktY67GtYASQ==", + "subType": "06" + } + } + }, + "azure_object_rand_explicit_altname": { + "kms": "azure", + "type": "object", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAADnUyp/7eLmxxxOdsP+mNuJABK4PQoKFWDAY7lDrH6MYa03ryASOihPZWYZWXZLrbAf7cQQhElEkKqKwY8+NXgqg==", + "subType": "06" + } + } + }, + "azure_object_det_explicit_id": { + "kms": "azure", + "type": "object", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "azure_object_det_explicit_altname": { + "kms": "azure", + "type": "object", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "azure_array_rand_auto_id": { + "kms": "azure", + "type": "array", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAEtk14WyoatZcNPlg3y/XJNsBt6neFJeQwR06B9rMGV58oIsmeE5zMtUOBYTgzlnwyKpqI/XVAg8s1VxvsrvGCyLVPwGVyDztwtMgVSW6QM3s=", + "subType": "06" + } + } + }, + "azure_array_rand_auto_altname": { + "kms": "azure", + "type": "array", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAERTO63J4Nj1BpFlqVduA2IrAiGoV4jEOH3FnFgx7ZP7da/YBmLX/bc1EqdpC8v4faHxp74iU0xAB0yW4WgySDX7rriL5cw9sMpqgLRaBxGug=", + "subType": "06" + } + } + }, + "azure_array_rand_explicit_id": { + "kms": "azure", + "type": "array", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAEs09qQdNVwh+KFqKPREQkw0XFdRNHAvjYJzs5MDE9+QxvtKlmVKSK3wkxDdCrcH4r7ePV2nCy2h1IHYqaDnnt4s5dSawI2l88iTT+bBcCSrU=", + "subType": "06" + } + } + }, + "azure_array_rand_explicit_altname": { + "kms": "azure", + "type": "array", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAEaQ/YL50up4YIMJuVJSiAP06IQ+YjdKLIfkN/prbOZMiXErcD1Vq1hwGhfGdpEsLVu8E7IhJb4wakVC/2dLZoRP95az6HqRRauNNZAIQMKfY=", + "subType": "06" + } + } + }, + "azure_array_det_explicit_id": { + "kms": "azure", + "type": "array", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "azure_array_det_explicit_altname": { + "kms": "azure", + "type": "array", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "azure_binData=00_rand_auto_id": { + "kms": "azure", + "type": "binData=00", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAFl/leuLAHf1p6aRKHdFyN9FM6MW2XzBemql2xQgqkwJ6YOQXW6Pu/aI1scXVOrvrSu3+wBvByjHu++1AqFgzZRQ==", + "subType": "06" + } + } + }, + "azure_binData=00_rand_auto_altname": { + "kms": "azure", + "type": "binData=00", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAF4Nq/LwyufT/mx0LtFSkupNHTuyjbr4yUy1N5/37XhkpqZ1e4sWCHGNaTDEm5+cvdnbqZ/MMkBv855dc8N7vnGA==", + "subType": "06" + } + } + }, + "azure_binData=00_rand_explicit_id": { + "kms": "azure", + "type": "binData=00", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAFv1Kbv54uXJ76Ih63vtmszQtzkXqDlv8LDCFO3sjzu70+tgRXOhLm3J8uZpwoiNkgM6oNLn0en7tnEekYB9++CA==", + "subType": "06" + } + } + }, + "azure_binData=00_rand_explicit_altname": { + "kms": "azure", + "type": "binData=00", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAFgcYC1n7cGGXpv0qf1Kb8t9y/6kbhscGt2QJkQpAiqadFPPYDU/wwaKdDz94NpAHMZizUbhf9tvZ3UXl1bozhDA==", + "subType": "06" + } + } + }, + "azure_binData=00_det_auto_id": { + "kms": "azure", + "type": "binData=00", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAFvswfP3+jgia6rAyrypvbso3Xm4d7MEgJRUCWFYzA+9ov++vmeirgoTp/rFavTNOPb+61fvl1WKbVwrgODusaMg==", + "subType": "06" + } + } + }, + "azure_binData=00_det_explicit_id": { + "kms": "azure", + "type": "binData=00", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAFvswfP3+jgia6rAyrypvbso3Xm4d7MEgJRUCWFYzA+9ov++vmeirgoTp/rFavTNOPb+61fvl1WKbVwrgODusaMg==", + "subType": "06" + } + } + }, + "azure_binData=00_det_explicit_altname": { + "kms": "azure", + "type": "binData=00", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAFvswfP3+jgia6rAyrypvbso3Xm4d7MEgJRUCWFYzA+9ov++vmeirgoTp/rFavTNOPb+61fvl1WKbVwrgODusaMg==", + "subType": "06" + } + } + }, + "azure_binData=04_rand_auto_id": { + "kms": "azure", + "type": "binData=04", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAFMzMC3BLn/zWE9dxpcD8G0h4aifSY0zSHS9xTVJXgq21s2WU++Ov2UvHatVozmtZltsUN9JvSWqOBQRkFsrXvI7bc4lYfOoOmfpTHFcRDA/c=", + "subType": "06" + } + } + }, + "azure_binData=04_rand_auto_altname": { + "kms": "azure", + "type": "binData=04", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAFDlBN5hUTcjamOg/sgyeG0S52kphsjUgvlpuqHYz6VVdLtZ69cGHOVqqyml3x2rVqWUZJjd4ZodOhlwWq9p+i5IYNot2QaBvi8NZSaiThTc0=", + "subType": "06" + } + } + }, + "azure_binData=04_rand_explicit_id": { + "kms": "azure", + "type": "binData=04", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAFjvS2ozJuAL3rCvyBpraVtgL91OMdiskmgYnyfKlzd8EhYLd1cL4yxnTUjRXx+W+p8uN0/QZo+mynhcWnwcq83raY+I1HftSTx+S6rZ0qyDM=", + "subType": "06" + } + } + }, + "azure_binData=04_rand_explicit_altname": { + "kms": "azure", + "type": "binData=04", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAFqUMd/I0yOdy5W4THvFc6yrgSzB6arkRs/06b0M9Ii+QtAY6vbz+/aJ0Iy3Jm8TahC1wOZVmTj5luQpr+PHZMCEAFadv+0K/Nsx6xVhAh9gg=", + "subType": "06" + } + } + }, + "azure_binData=04_det_auto_id": { + "kms": "azure", + "type": "binData=04", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAFmN+KMrERGmfmue8/hG4D+ZcGzxC2HntdYBLjEolzvS9FV5JH/adxyUAnMpyL8FNznARL51rbv/G1nXPn9mPabsQ4BtWEAQbHx9TiXd+xbB0=", + "subType": "06" + } + } + }, + "azure_binData=04_det_explicit_id": { + "kms": "azure", + "type": "binData=04", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAFmN+KMrERGmfmue8/hG4D+ZcGzxC2HntdYBLjEolzvS9FV5JH/adxyUAnMpyL8FNznARL51rbv/G1nXPn9mPabsQ4BtWEAQbHx9TiXd+xbB0=", + "subType": "06" + } + } + }, + "azure_binData=04_det_explicit_altname": { + "kms": "azure", + "type": "binData=04", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAFmN+KMrERGmfmue8/hG4D+ZcGzxC2HntdYBLjEolzvS9FV5JH/adxyUAnMpyL8FNznARL51rbv/G1nXPn9mPabsQ4BtWEAQbHx9TiXd+xbB0=", + "subType": "06" + } + } + }, + "azure_undefined_rand_explicit_id": { + "kms": "azure", + "type": "undefined", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$undefined": true + } + }, + "azure_undefined_rand_explicit_altname": { + "kms": "azure", + "type": "undefined", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$undefined": true + } + }, + "azure_undefined_det_explicit_id": { + "kms": "azure", + "type": "undefined", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$undefined": true + } + }, + "azure_undefined_det_explicit_altname": { + "kms": "azure", + "type": "undefined", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$undefined": true + } + }, + "azure_objectId_rand_auto_id": { + "kms": "azure", + "type": "objectId", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAH3sYVJpCKi310YxndMwm5ltEbbiRO1RwZxxeEkzI8tptbNXC8t7RkrT8VSJZ43wbGYCiqH5RZy9v8pYwtUm4STw==", + "subType": "06" + } + } + }, + "azure_objectId_rand_auto_altname": { + "kms": "azure", + "type": "objectId", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAHD7agzVEc0JwesHHhkpGYIDAHQ+3Hc691kqic6YmVvK2N45fD5aRKftaZNs5OxSj3tNHSo7lQ+DVtPj8uSSpsVg==", + "subType": "06" + } + } + }, + "azure_objectId_rand_explicit_id": { + "kms": "azure", + "type": "objectId", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAHEgKgy2mpMLpfeEWqbvQOaRZAy+cEGXGon3e53/JoH6dZneEyyt4ZrcrK6uRqyUPWX0q104JbCYxfbtHtdzWgPQ==", + "subType": "06" + } + } + }, + "azure_objectId_rand_explicit_altname": { + "kms": "azure", + "type": "objectId", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAHqSv6Nruw3TIi7y0FPRjSfnJmWSdv5XMhAtnHNkT8MVuHeM32ayo0yc8dTA1wlkRtAI5JrGxTfERCXYuCojvvXg==", + "subType": "06" + } + } + }, + "azure_objectId_det_auto_id": { + "kms": "azure", + "type": "objectId", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAHcPRjIOyLDUJCDcdWkUySKCFS2AFkIa1OQyQAfC3Zh5HwJ1O7j2o+iYKRerhbni8lBiZH7EUMm1JcxM99lLC5jQ==", + "subType": "06" + } + } + }, + "azure_objectId_det_explicit_id": { + "kms": "azure", + "type": "objectId", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAHcPRjIOyLDUJCDcdWkUySKCFS2AFkIa1OQyQAfC3Zh5HwJ1O7j2o+iYKRerhbni8lBiZH7EUMm1JcxM99lLC5jQ==", + "subType": "06" + } + } + }, + "azure_objectId_det_explicit_altname": { + "kms": "azure", + "type": "objectId", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAHcPRjIOyLDUJCDcdWkUySKCFS2AFkIa1OQyQAfC3Zh5HwJ1O7j2o+iYKRerhbni8lBiZH7EUMm1JcxM99lLC5jQ==", + "subType": "06" + } + } + }, + "azure_bool_rand_auto_id": { + "kms": "azure", + "type": "bool", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAIYVWPvzSmiCs9LwRlv/AoQWhaS5mzoKX4W26M5eg/gPjOZbEVYOV80pWMxCcZWRAyV/NDWDUmKtRQDMU9b8lCJw==", + "subType": "06" + } + } + }, + "azure_bool_rand_auto_altname": { + "kms": "azure", + "type": "bool", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAIsAB01Ugqtw4T9SkuJBQN1y/ewpRAyz0vjFPdKI+jmPMmaXpMlXDJU8ZbTKm/nh6sjJCFcY5oZJ83ylbp2gHc6w==", + "subType": "06" + } + } + }, + "azure_bool_rand_explicit_id": { + "kms": "azure", + "type": "bool", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAIr8/qFd564X1mqHEhB0y7bzGFdrHuw+Gk45nXla3VvGHzeIJy6j2Wdl0uziWslMmBvNp8WweW+jQ6E2Fu7SiojQ==", + "subType": "06" + } + } + }, + "azure_bool_rand_explicit_altname": { + "kms": "azure", + "type": "bool", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAIWsca5FAnS2zhHnmKmexvvXMTgsZZ7uAFHnjQassUcay6mvIWH4hOnGiRxt5Zm0wO4S6cZq+PZrmEH5/n9rJcJQ==", + "subType": "06" + } + } + }, + "azure_bool_det_explicit_id": { + "kms": "azure", + "type": "bool", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": true + }, + "azure_bool_det_explicit_altname": { + "kms": "azure", + "type": "bool", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": true + }, + "azure_date_rand_auto_id": { + "kms": "azure", + "type": "date", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAJwKo7XW5daIFlwY1mDAnJdHlcUgF+74oViL28hQGhde63pkPyyS6lPkYrc1gcCK5DL7PwsSX4Vb9SsNAG9860xw==", + "subType": "06" + } + } + }, + "azure_date_rand_auto_altname": { + "kms": "azure", + "type": "date", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAJYZdWIqvqTztGKJkSASMEOjyrUFKnYql8fMIEzfEZWx2BYsIkxxOUUUCASg/Jsn09fTLVQ7yLD+LwycuI2uaXsw==", + "subType": "06" + } + } + }, + "azure_date_rand_explicit_id": { + "kms": "azure", + "type": "date", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAJuWzKqi3KV8GbGGnT7i9N4BACUuNjt5AgKsjWIfrWRXK1+jRQFq0bYlVWaliT9CNIygL2aTF0H4eHl55PAI84MQ==", + "subType": "06" + } + } + }, + "azure_date_rand_explicit_altname": { + "kms": "azure", + "type": "date", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAJ5JTtTuP4zTnEbaVlS/W59SrZ08LOC4ZIl+h+H4RnfHUfBXDwUou+APolVaYko+VZMKecrikdPeewgzWaqazJ1g==", + "subType": "06" + } + } + }, + "azure_date_det_auto_id": { + "kms": "azure", + "type": "date", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAJCREIp/SPolAZcVU1iOmaJaN2tFId5HhrjNmhp6xhA1AIPLnN+U7TAqesxFN7iebR9fXI5fZxYNgyWqQC1rqUJw==", + "subType": "06" + } + } + }, + "azure_date_det_explicit_id": { + "kms": "azure", + "type": "date", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAJCREIp/SPolAZcVU1iOmaJaN2tFId5HhrjNmhp6xhA1AIPLnN+U7TAqesxFN7iebR9fXI5fZxYNgyWqQC1rqUJw==", + "subType": "06" + } + } + }, + "azure_date_det_explicit_altname": { + "kms": "azure", + "type": "date", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAJCREIp/SPolAZcVU1iOmaJaN2tFId5HhrjNmhp6xhA1AIPLnN+U7TAqesxFN7iebR9fXI5fZxYNgyWqQC1rqUJw==", + "subType": "06" + } + } + }, + "azure_null_rand_explicit_id": { + "kms": "azure", + "type": "null", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": null + }, + "azure_null_rand_explicit_altname": { + "kms": "azure", + "type": "null", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": null + }, + "azure_null_det_explicit_id": { + "kms": "azure", + "type": "null", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": null + }, + "azure_null_det_explicit_altname": { + "kms": "azure", + "type": "null", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": null + }, + "azure_regex_rand_auto_id": { + "kms": "azure", + "type": "regex", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAALsMm3W2ogEiI6m0l8dS5Xhqnw+vMBvN1EesOTqAZOk4tQleX6fWARwUUnjFxbuejU7ISb50fc/Ul+ntL9z/2nHQ==", + "subType": "06" + } + } + }, + "azure_regex_rand_auto_altname": { + "kms": "azure", + "type": "regex", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAALITQNQI0hfCeMTxH0Hce1Cf5tinQG+Bq8EolUACvxUUQcDqIXfFXn19tV/Qyj4lIdnnwh/18hiswgEpJRK7uLGw==", + "subType": "06" + } + } + }, + "azure_regex_rand_explicit_id": { + "kms": "azure", + "type": "regex", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAALw/1QI/bKeiGUrrtC+yXOTvxZ2mJjSelPPGOm1mge0ws8DsX0DPHmo6MjhnRO4u0c/LWiE3hwHG2rYjAFlFXZ5A==", + "subType": "06" + } + } + }, + "azure_regex_rand_explicit_altname": { + "kms": "azure", + "type": "regex", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAL6Sl58UfFCHCZzWIB4r19/ZjeSRAoWeTFCFedKiwyR8/xnL+8jzXK/9+vTIspP6j35lFapr+f4iBNB9WjdpYNKA==", + "subType": "06" + } + } + }, + "azure_regex_det_auto_id": { + "kms": "azure", + "type": "regex", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAALxshM91Tsql/8kPe3dC16oP36XSUIN6godiRVIJLJ+NAwYtEkThthQsln7CrkIxIx6npN6A/hw1CBJERS/cqWhw==", + "subType": "06" + } + } + }, + "azure_regex_det_explicit_id": { + "kms": "azure", + "type": "regex", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAALxshM91Tsql/8kPe3dC16oP36XSUIN6godiRVIJLJ+NAwYtEkThthQsln7CrkIxIx6npN6A/hw1CBJERS/cqWhw==", + "subType": "06" + } + } + }, + "azure_regex_det_explicit_altname": { + "kms": "azure", + "type": "regex", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAALxshM91Tsql/8kPe3dC16oP36XSUIN6godiRVIJLJ+NAwYtEkThthQsln7CrkIxIx6npN6A/hw1CBJERS/cqWhw==", + "subType": "06" + } + } + }, + "azure_dbPointer_rand_auto_id": { + "kms": "azure", + "type": "dbPointer", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAMaAd1v/XCYM2Kzi/f4utR6aHOFORmzZ17EepEjkn5IeKshktUpPWjI/dBwSunn5Qxx2zI3nm06c3SDvp6tw8qb7u4qXjLQYhlsQ0bHvvm+vE=", + "subType": "06" + } + } + }, + "azure_dbPointer_rand_auto_altname": { + "kms": "azure", + "type": "dbPointer", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAM6VNjkN9bMIzfC7AX0ZhOEXPpyPE0nzYq3c5TNHrgeGWdZDR9GVdbO9t55zQrQJJ2Mmevh8c0WaAUV+YODv7ty6TDBsPbaKWWqMzu/v9RXHo=", + "subType": "06" + } + } + }, + "azure_dbPointer_rand_explicit_id": { + "kms": "azure", + "type": "dbPointer", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAM66tywuMhwdyUjxfl7EOdKHNCLeIPnct3PgKrAKlOQFjiNQUIA2ShVy0qYpJcvvFsuQ5e8Bjr0IqeBc8mC7n4euRSM1UXpLqI5XHgXMMaYpI=", + "subType": "06" + } + } + }, + "azure_dbPointer_rand_explicit_altname": { + "kms": "azure", + "type": "dbPointer", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAMtPQEbZ4gWoSYjVZLd5X6j0XxutWY1Ecrys2ErKRgZaxP0uGe8uw0cnr2Z5PYylaYmsSicLwD1PwWY42PKmaGBDraHmdfqDOPvrNxhBrfU/E=", + "subType": "06" + } + } + }, + "azure_dbPointer_det_auto_id": { + "kms": "azure", + "type": "dbPointer", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAMxUcVqq6RpAUCv08qGkmjuwVAIgLeYyh7xZnMeCYVGmhJKIP1Zdt1SvRGRV0jzwCQmXgxNd04adRwJnG/PRQIsL9aH3ilJgEnUbOo1nqR7yw=", + "subType": "06" + } + } + }, + "azure_dbPointer_det_explicit_id": { + "kms": "azure", + "type": "dbPointer", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAMxUcVqq6RpAUCv08qGkmjuwVAIgLeYyh7xZnMeCYVGmhJKIP1Zdt1SvRGRV0jzwCQmXgxNd04adRwJnG/PRQIsL9aH3ilJgEnUbOo1nqR7yw=", + "subType": "06" + } + } + }, + "azure_dbPointer_det_explicit_altname": { + "kms": "azure", + "type": "dbPointer", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAMxUcVqq6RpAUCv08qGkmjuwVAIgLeYyh7xZnMeCYVGmhJKIP1Zdt1SvRGRV0jzwCQmXgxNd04adRwJnG/PRQIsL9aH3ilJgEnUbOo1nqR7yw=", + "subType": "06" + } + } + }, + "azure_javascript_rand_auto_id": { + "kms": "azure", + "type": "javascript", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAANWXPb5z3a0S7F26vkmBF3fV+oXYUj15OEtnSlXlUrc+gbhbPDxSvCPnTBEy5sNu4ndkvEZZxYgZInkF2q4rhlfQ==", + "subType": "06" + } + } + }, + "azure_javascript_rand_auto_altname": { + "kms": "azure", + "type": "javascript", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAANN4mcwLz/J4eOUknhVsy6kdF1ThDP8cx6dNpOwJWAiyPHEsn+i6JmMTlfQMBrUp9HB/u3R+jLO5yz4XgLUKE8Tw==", + "subType": "06" + } + } + }, + "azure_javascript_rand_explicit_id": { + "kms": "azure", + "type": "javascript", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAANJ+t5Z8hSQaoNzszzkWndAo4A0avDf9bKFa7euznz8ZYInnl9RUVqWMyxjSuIotAvTyYSJzxh+w2hKCgVf+MjEA==", + "subType": "06" + } + } + }, + "azure_javascript_rand_explicit_altname": { + "kms": "azure", + "type": "javascript", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAANRLOQFpmkEg/KdWMmaurkNtUhy45rgtoipc9kQz6olgDWiMim81XC0AW5cOvjbHXL3w7Du28Kwdsp4j0PTTXHUQ==", + "subType": "06" + } + } + }, + "azure_javascript_det_auto_id": { + "kms": "azure", + "type": "javascript", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAANUrNUS/7/dmKVWBd+2JKGEn1hxbFSyu3p5sDNatukG2m16t4WwxzmYAg8PuQbAxekprs7iaLA+7D2Kn3ZuMSQOw==", + "subType": "06" + } + } + }, + "azure_javascript_det_explicit_id": { + "kms": "azure", + "type": "javascript", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAANUrNUS/7/dmKVWBd+2JKGEn1hxbFSyu3p5sDNatukG2m16t4WwxzmYAg8PuQbAxekprs7iaLA+7D2Kn3ZuMSQOw==", + "subType": "06" + } + } + }, + "azure_javascript_det_explicit_altname": { + "kms": "azure", + "type": "javascript", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAANUrNUS/7/dmKVWBd+2JKGEn1hxbFSyu3p5sDNatukG2m16t4WwxzmYAg8PuQbAxekprs7iaLA+7D2Kn3ZuMSQOw==", + "subType": "06" + } + } + }, + "azure_symbol_rand_auto_id": { + "kms": "azure", + "type": "symbol", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAORMcgtQSU+/2Qlq57neRrVuAFSeSwkqdo+z1fh6IKjyEzhCy+u5bTzSzTopyKJQTCUZA2mSpRezWkM87oiGfhMFkBRVreMcE62eH+BLlgUaM=", + "subType": "06" + } + } + }, + "azure_symbol_rand_auto_altname": { + "kms": "azure", + "type": "symbol", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAOIKlAw/A3nwHn0tO2cYtJx0azB8MGmXtt+bRptzn8yHlUSpMpYaiU0ssBBiLkmMLAITYebLqDk3NHESyP7PvbSfX1E2XVn2Nf694ZqPWMec8=", + "subType": "06" + } + } + }, + "azure_symbol_rand_explicit_id": { + "kms": "azure", + "type": "symbol", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAO8SXW76AEr/6D6zyP1RYwmwdVM2AINaXZn3Ipy+fynWTUV6XIPIRR7xMTttNo2zlh7fgXDZ28PmjooGlQzn0q0JVQmXPCIPM3aqAmMcgyuqg=", + "subType": "06" + } + } + }, + "azure_symbol_rand_explicit_altname": { + "kms": "azure", + "type": "symbol", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAOtoJWm2Ucre0foHIiOutsX1WIyub7t3Lby3/F8zRXn+l6ixlTjAPgWFwpRnYg96Lt2ACDDQ9CO51ejr9qk0b8LDBwG3qU5Cuibsp7vo1VsdI=", + "subType": "06" + } + } + }, + "azure_symbol_det_auto_id": { + "kms": "azure", + "type": "symbol", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAOvp/FMMmWVMkiuN51uFMFBiRQAcc9jftlNsHsLoNtohZaGni26kgX94b+/EI8pdWF5xA/73JlGlij0Rt+vC9s/zTDItRpn0bJL54WPphDcmA=", + "subType": "06" + } + } + }, + "azure_symbol_det_explicit_id": { + "kms": "azure", + "type": "symbol", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAOvp/FMMmWVMkiuN51uFMFBiRQAcc9jftlNsHsLoNtohZaGni26kgX94b+/EI8pdWF5xA/73JlGlij0Rt+vC9s/zTDItRpn0bJL54WPphDcmA=", + "subType": "06" + } + } + }, + "azure_symbol_det_explicit_altname": { + "kms": "azure", + "type": "symbol", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAOvp/FMMmWVMkiuN51uFMFBiRQAcc9jftlNsHsLoNtohZaGni26kgX94b+/EI8pdWF5xA/73JlGlij0Rt+vC9s/zTDItRpn0bJL54WPphDcmA=", + "subType": "06" + } + } + }, + "azure_javascriptWithScope_rand_auto_id": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAPCw9NnvJyuTYIgZxr1w1UiG85PGZ4rO62DWWDF98HwVM/Y6u7hNdNjkaWjYFsPMl38ioHw/pS8GFR62QmH2RAw/BV0wI7pNy2evANr3i3gKg=", + "subType": "06" + } + } + }, + "azure_javascriptWithScope_rand_auto_altname": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAPXQzqnQ2UWkIYof8/OfadNMa7iVKAbOaiu7YGm8iVrx+W6uxKLPFugVqHtQ29hYXXf33xr8rqGNxDlAe7/x1OeYEif71f7LUkmKF9WxJV9Ko=", + "subType": "06" + } + } + }, + "azure_javascriptWithScope_rand_explicit_id": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAP0nxlppgPyjLx0eBempbOlL21G6KbABSrE6+YuNDcsjJjxCQuLR9+aoAwa+yCDEC7GZ1E3oP489edKUuNpE4Ts26jy4aRegu4DmyECUeBwAg=", + "subType": "06" + } + } + }, + "azure_javascriptWithScope_rand_explicit_altname": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAPO89afu9Sb+cK9wwM1cO1DPjvu5UNyObjjTScy1hy9PzllJGfj7b84f0Ah74jPYsMPwI0Eslu/IYF3+5jmquq5Qp/VUQESlxqRqRK0xIeMfs=", + "subType": "06" + } + } + }, + "azure_javascriptWithScope_det_explicit_id": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "azure_javascriptWithScope_det_explicit_altname": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "azure_int_rand_auto_id": { + "kms": "azure", + "type": "int", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAQUyy4uWmWdzypsK81q9egREg4s80X3L2hzxJzC+fL08Xzy1z9grpPPCfJrluUVKMMGmmZR8gJPJ70igN3unJbzg==", + "subType": "06" + } + } + }, + "azure_int_rand_auto_altname": { + "kms": "azure", + "type": "int", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAQr4gyoHKpGsSJo8CMsYSJk/KilFMJhsDCmxrha7yfNW1uR5sjyZj4B4s6uTXGw76x7aR/AvecDlY3QFJb8L1mjg==", + "subType": "06" + } + } + }, + "azure_int_rand_explicit_id": { + "kms": "azure", + "type": "int", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAQ0zgXYPV1MuEFksmDpVDoWkoZQelm3+rYrMiT64KYywO//75799W8TbR3a7O6Q/ErjKQOin2OCp8EWwZqTDdz5w==", + "subType": "06" + } + } + }, + "azure_int_rand_explicit_altname": { + "kms": "azure", + "type": "int", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAQG+qz00yizREbP3tla1elMiwf8TKLbUU2XWUP+E0vey/wvbjTTIzqwUlz/b9St77CHJhavypP3hMrngXR9GapbQ==", + "subType": "06" + } + } + }, + "azure_int_det_auto_id": { + "kms": "azure", + "type": "int", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAQCkJH+CataLqp/xBjO77QBprC2xPV+rE+goSZ3C6aqwXIeTYHTOqEbeaFb5iZcqYH5nWvNvnfbZSIMyvSfrPjhw==", + "subType": "06" + } + } + }, + "azure_int_det_explicit_id": { + "kms": "azure", + "type": "int", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAQCkJH+CataLqp/xBjO77QBprC2xPV+rE+goSZ3C6aqwXIeTYHTOqEbeaFb5iZcqYH5nWvNvnfbZSIMyvSfrPjhw==", + "subType": "06" + } + } + }, + "azure_int_det_explicit_altname": { + "kms": "azure", + "type": "int", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAQCkJH+CataLqp/xBjO77QBprC2xPV+rE+goSZ3C6aqwXIeTYHTOqEbeaFb5iZcqYH5nWvNvnfbZSIMyvSfrPjhw==", + "subType": "06" + } + } + }, + "azure_timestamp_rand_auto_id": { + "kms": "azure", + "type": "timestamp", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAARwcXYtx+A7g/zGkjGdkyVxZGCO9Nzj3D70NIpl2TeH2j9qYGP4DenwL1xSgrL2Ez+X58d2BvNhKrjA9y2w1Z8kA==", + "subType": "06" + } + } + }, + "azure_timestamp_rand_auto_altname": { + "kms": "azure", + "type": "timestamp", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAARQ0Pjx3l92Aqhn2e1hot2M9rQ6aLPE2Iw8AVhm5AD8FWywWih12Fn2p9+kiE33yKPOCyrTWQHKPtB4yYhqnJgGg==", + "subType": "06" + } + } + }, + "azure_timestamp_rand_explicit_id": { + "kms": "azure", + "type": "timestamp", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAARvFMlIzh2IjpHkTJ8buqTOqBA0+CxVDsZacUhSHVMgJLN+0DJsJy8OfkmKMu9Lk5hULY00Udoja87x+79mYfmeQ==", + "subType": "06" + } + } + }, + "azure_timestamp_rand_explicit_altname": { + "kms": "azure", + "type": "timestamp", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAAR+2SCd7V5ukAkh7CYpNPIatzTL8osNoA4Mb5jjjbos8eMamImw0fbH8YA+Rdm4CgGdQQ9VDX7MtMWlArkj0Jpew==", + "subType": "06" + } + } + }, + "azure_timestamp_det_auto_id": { + "kms": "azure", + "type": "timestamp", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAARe72T/oC09QGE1vuljb6ZEHa6llEwMLT+C4s9u1fREkOKndpmrOlGE8zOey4teizY1ypOMkIZ8GDQJJ4kLSpNkQ==", + "subType": "06" + } + } + }, + "azure_timestamp_det_explicit_id": { + "kms": "azure", + "type": "timestamp", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAARe72T/oC09QGE1vuljb6ZEHa6llEwMLT+C4s9u1fREkOKndpmrOlGE8zOey4teizY1ypOMkIZ8GDQJJ4kLSpNkQ==", + "subType": "06" + } + } + }, + "azure_timestamp_det_explicit_altname": { + "kms": "azure", + "type": "timestamp", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAARe72T/oC09QGE1vuljb6ZEHa6llEwMLT+C4s9u1fREkOKndpmrOlGE8zOey4teizY1ypOMkIZ8GDQJJ4kLSpNkQ==", + "subType": "06" + } + } + }, + "azure_long_rand_auto_id": { + "kms": "azure", + "type": "long", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAASSSgX7k8iw0xFe0AiIzOu0e0P7Ujyfsk/Cdl0fR5X8V3QLVER+1Qa47Qpb8iWL2VLBSh+55HvIEtvhWn8SwXaog==", + "subType": "06" + } + } + }, + "azure_long_rand_auto_altname": { + "kms": "azure", + "type": "long", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAASUhKr5K7ulGTeFbhIvJ2DDE10gRAFn5+2zqnsIFSY8lYV2PBYcENdeNBXZs6kyIAYhJdQyuOChVCerTI5jmQWDw==", + "subType": "06" + } + } + }, + "azure_long_rand_explicit_id": { + "kms": "azure", + "type": "long", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAASHxawpjTHdXYRWQSZ7Qi7gFC+o4dW2mPH8s5nQkPFY/EubcJbdAZ5HFp66NfPaDJ/NSH6Vy+TkpX3683RC+bjSQ==", + "subType": "06" + } + } + }, + "azure_long_rand_explicit_altname": { + "kms": "azure", + "type": "long", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAASVaMAv6UjuBOUZMJ9qz+58TQWmgaMpS9xrJziJY80ml9aRlDTtRubP7U40CgbDvrtY1QgHbkF/di1XDCB6iXMMg==", + "subType": "06" + } + } + }, + "azure_long_det_auto_id": { + "kms": "azure", + "type": "long", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAS06L8oEPeMvVlA32VlobdOWG24OoyMbv9PyYsHLsbT0bHFwU7lYUSQG9EkYVRNPEDzvXpciE1jT7KT8CRY8XT/g==", + "subType": "06" + } + } + }, + "azure_long_det_explicit_id": { + "kms": "azure", + "type": "long", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAS06L8oEPeMvVlA32VlobdOWG24OoyMbv9PyYsHLsbT0bHFwU7lYUSQG9EkYVRNPEDzvXpciE1jT7KT8CRY8XT/g==", + "subType": "06" + } + } + }, + "azure_long_det_explicit_altname": { + "kms": "azure", + "type": "long", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQGVERAAAAAAAAAAAAAAAAAS06L8oEPeMvVlA32VlobdOWG24OoyMbv9PyYsHLsbT0bHFwU7lYUSQG9EkYVRNPEDzvXpciE1jT7KT8CRY8XT/g==", + "subType": "06" + } + } + }, + "azure_decimal_rand_auto_id": { + "kms": "azure", + "type": "decimal", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAATJ6LZgPu9F+rPtYsMuvwOx62+g1dAk858BUtE9FjC/300DnbDiolhkHNcyoFs07NYUNgLthW2rISb/ejmsDCt/oqnf8zWYf9vrJEfHaS/Ocw=", + "subType": "06" + } + } + }, + "azure_decimal_rand_auto_altname": { + "kms": "azure", + "type": "decimal", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAATX8eD6qFYWKwIGvXtQG79fXKuPW9hkIV0OwrmNNIqRltw6gPHl+/1X8Q6rgmjCxqvhB05AxTj7xz64gP+ILkPQY8e8VGuCOvOdwDo2IPwy18=", + "subType": "06" + } + } + }, + "azure_decimal_rand_explicit_id": { + "kms": "azure", + "type": "decimal", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAATBjQ9E5wDdTS/iI1XDqGmDBC5aLbPB4nSyrjRLfv1zEoPRjmcHlQmMRJA0mori2VQv6EBFNHeczFCenJaSAkuh77czeXM2vH3T6qwEIDs4dw=", + "subType": "06" + } + } + }, + "azure_decimal_rand_explicit_altname": { + "kms": "azure", + "type": "decimal", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AgGVERAAAAAAAAAAAAAAAAATtkjbhdve7MNuLaTm6qvaewuVUxeC1DMz1fd4RC4jeiBFMd5uZUVJTiOIerwQ6P5G5lkMlezKDWgKl2FUvZH6c7V3JknhsaWcV5iLWGUL6Zc=", + "subType": "06" + } + } + }, + "azure_decimal_det_explicit_id": { + "kms": "azure", + "type": "decimal", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$numberDecimal": "1.234" + } + }, + "azure_decimal_det_explicit_altname": { + "kms": "azure", + "type": "decimal", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$numberDecimal": "1.234" + } + }, + "azure_minKey_rand_explicit_id": { + "kms": "azure", + "type": "minKey", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "azure_minKey_rand_explicit_altname": { + "kms": "azure", + "type": "minKey", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "azure_minKey_det_explicit_id": { + "kms": "azure", + "type": "minKey", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "azure_minKey_det_explicit_altname": { + "kms": "azure", + "type": "minKey", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "azure_maxKey_rand_explicit_id": { + "kms": "azure", + "type": "maxKey", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "azure_maxKey_rand_explicit_altname": { + "kms": "azure", + "type": "maxKey", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "azure_maxKey_det_explicit_id": { + "kms": "azure", + "type": "maxKey", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "azure_maxKey_det_explicit_altname": { + "kms": "azure", + "type": "maxKey", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "gcp_double_rand_auto_id": { + "kms": "gcp", + "type": "double", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAABFoHQxnh1XSC0k1B01uFFg7rE9sZVBn4PXo26JX8gx9tuxu+4l9Avb23H9BfOzuWiEc43iw87K/W2y0VfKp5CCg==", + "subType": "06" + } + } + }, + "gcp_double_rand_auto_altname": { + "kms": "gcp", + "type": "double", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAABRkZkEtQEFB/r268cNfYRQbN4u5Cxjl9Uh+8wq9TFWLQH2E/9wj2vTLlxQ2cQsM7Qd+XxR5idjfBf9CKAfvUa/A==", + "subType": "06" + } + } + }, + "gcp_double_rand_explicit_id": { + "kms": "gcp", + "type": "double", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAABDSUZ+0BbDDEZxCXA+J2T6Js8Uor2dfXSf7s/hpLrg6dxcW2chpht9XLiLOXG5w83TzCAI5pF8cQgBpBpYjR8RQ==", + "subType": "06" + } + } + }, + "gcp_double_rand_explicit_altname": { + "kms": "gcp", + "type": "double", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAABCYxugs7L+4S+1rr0VILSbtBm79JPTLuzluQAv0+8hbu5Z6zReOL6Ta1vQH1oA+pSPGYA4euye3zNl1X6ZewbPw==", + "subType": "06" + } + } + }, + "gcp_double_det_explicit_id": { + "kms": "gcp", + "type": "double", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$numberDouble": "1.2339999999999999858" + } + }, + "gcp_double_det_explicit_altname": { + "kms": "gcp", + "type": "double", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$numberDouble": "1.2339999999999999858" + } + }, + "gcp_string_rand_auto_id": { + "kms": "gcp", + "type": "string", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAACx3wSslJEiD80YLTH0n4Bbs4yWVPQl15AU8pZMLLQePqEtI+BJy3t2bqNP1098jS0CGSf+LQmQvXhJn1aNFeMTw==", + "subType": "06" + } + } + }, + "gcp_string_rand_auto_altname": { + "kms": "gcp", + "type": "string", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAC5BTe5KP5UxSIk6dJlkz8aaZ/9fg44XPWHafiiL/48lcv3AWbu2gcBo1EDuc1sJQu6XMrtDCRQ7PCHsL7sEQMGQ==", + "subType": "06" + } + } + }, + "gcp_string_rand_explicit_id": { + "kms": "gcp", + "type": "string", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAACyJN55OcyXXJ71x8VphTaIuIg6kQtGgVKPhWx0LSdYc6JOjB6LTdA7SEWiSlSWWFZE26UmKcPbkbLDAYf4IVrzQ==", + "subType": "06" + } + } + }, + "gcp_string_rand_explicit_altname": { + "kms": "gcp", + "type": "string", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAACoa0d9gqfPP5s3+GoruwzxoQFgli8SmjpTVRLAOcFxqGdfrwSbpYffSw/OR45sZPxXCL6T2MtUvZsl7ukv0jBnw==", + "subType": "06" + } + } + }, + "gcp_string_det_auto_id": { + "kms": "gcp", + "type": "string", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAACTCkyETcWayIZ9YEoQEBVIF3i7iXEe6M3KjYYaSVCYdqSbSHBzlwKWYbP+Xj/MMYBYTLZ1aiRQWCMK4gWPYppZw==", + "subType": "06" + } + } + }, + "gcp_string_det_explicit_id": { + "kms": "gcp", + "type": "string", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAACTCkyETcWayIZ9YEoQEBVIF3i7iXEe6M3KjYYaSVCYdqSbSHBzlwKWYbP+Xj/MMYBYTLZ1aiRQWCMK4gWPYppZw==", + "subType": "06" + } + } + }, + "gcp_string_det_explicit_altname": { + "kms": "gcp", + "type": "string", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAACTCkyETcWayIZ9YEoQEBVIF3i7iXEe6M3KjYYaSVCYdqSbSHBzlwKWYbP+Xj/MMYBYTLZ1aiRQWCMK4gWPYppZw==", + "subType": "06" + } + } + }, + "gcp_object_rand_auto_id": { + "kms": "gcp", + "type": "object", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAADy+8fkyeNYdIK001YogXfKc25zRXS1VGIFVWR6jRfrexy9C8LBBfX3iDwGNPbP2pkC3Tq16OoziQB6iNGf7s7yg==", + "subType": "06" + } + } + }, + "gcp_object_rand_auto_altname": { + "kms": "gcp", + "type": "object", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAADixoDdvm57gH8ooOaKI57WyZD5uaPmuYgmrgAFuV8I+oaalqYctnNSYlzQKCMQX/mIcTxvW3oOWY7+IzAz7npvw==", + "subType": "06" + } + } + }, + "gcp_object_rand_explicit_id": { + "kms": "gcp", + "type": "object", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAADvq0OAoijgHaVMhsoNMdfWFLyISDo6Y13sYM0CoBXS/oXJNIJJvhgKPbFSV/h4IgiDLy4qNYOTJQvpqt094RPgQ==", + "subType": "06" + } + } + }, + "gcp_object_rand_explicit_altname": { + "kms": "gcp", + "type": "object", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAADuTZF7/uqGjFbjzBYspPkxGWvvVAEN/ib8bfPOQrEobtTWuU+ju9H3TlT9DMuFy7RdUZnPB0D3HkM8+zky5xeBw==", + "subType": "06" + } + } + }, + "gcp_object_det_explicit_id": { + "kms": "gcp", + "type": "object", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "gcp_object_det_explicit_altname": { + "kms": "gcp", + "type": "object", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "gcp_array_rand_auto_id": { + "kms": "gcp", + "type": "array", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAE085kJIBX6S93D94bcRjkOegEKsksi2R1cxoVDoOpSdHh3S6bZAOh50W405wvnOKf3KTP9SICDUehQKQZSC026Y5dwVQ2GiM7PtpSedthKJs=", + "subType": "06" + } + } + }, + "gcp_array_rand_auto_altname": { + "kms": "gcp", + "type": "array", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAEk/FAXsaqyVr6I+MY5L0axeLhskcEfLZeB8whLMKbjLDLa8Iep+IdrFVSfKo03Zr/7Ah8Js01aT6+Vt4EDMJK0mGKZJOjsrAf3b6RS+Mzebg=", + "subType": "06" + } + } + }, + "gcp_array_rand_explicit_id": { + "kms": "gcp", + "type": "array", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAEDY7J9JGiurctYr7ytakNjcryVm42fkubcVpQpUYEkpK/G9NLGjrJuFgNW5ZVjYiPKEBbDB7vEtJqGux0BU++hrvVHNJ3wUT2mbDE18NE4KE=", + "subType": "06" + } + } + }, + "gcp_array_rand_explicit_altname": { + "kms": "gcp", + "type": "array", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAErFFlw8W9J2y+751RnYLw0TSK9ThD6sP3i4zPbZtiuhc90RFoJhScvqM9i4sDKuYePZZRLBxdX4EZhZClOmswCGDLCIWsQlSvCwgDcIsRR/w=", + "subType": "06" + } + } + }, + "gcp_array_det_explicit_id": { + "kms": "gcp", + "type": "array", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "gcp_array_det_explicit_altname": { + "kms": "gcp", + "type": "array", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "gcp_binData=00_rand_auto_id": { + "kms": "gcp", + "type": "binData=00", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAF0R5BNkQKfm6wx/tob8nVGDEYV/pvy9UeCqc9gFNuB5d9KxCkgyxryV65rbB90OriqvWFO2jcxzchRYgRI3fQ+A==", + "subType": "06" + } + } + }, + "gcp_binData=00_rand_auto_altname": { + "kms": "gcp", + "type": "binData=00", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAF4wcT8XGc3xNdKYDX5/cbUwPDdnkIXlWWCCYeSXSk2oWPxMZnPsVQ44nXKJJsKitoE3r/hL1sSG5239WzCWyx9g==", + "subType": "06" + } + } + }, + "gcp_binData=00_rand_explicit_id": { + "kms": "gcp", + "type": "binData=00", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAF07OFs5mlx0AB6QBanaybLuhuFbG+19KxSqHlSgELcz6TQKI6equX97OZdaWSWf2SSeiYm5E6+Y3lgA5l4KxC2A==", + "subType": "06" + } + } + }, + "gcp_binData=00_rand_explicit_altname": { + "kms": "gcp", + "type": "binData=00", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAFZ74Q7JMm7y2i3wRmjIRKefhmdnrhP1NXJgploi+44eQ2eRraZsW7peGPYyIfsXEbhgV5+aLmiYgvemBywfdogQ==", + "subType": "06" + } + } + }, + "gcp_binData=00_det_auto_id": { + "kms": "gcp", + "type": "binData=00", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAFhwJkocj36WXoY3mg2GWUrJ5IQTo9MvkwEwRFKdkcxm9pX2PZPK7bN5ZWw3IFcQ/0GfaW6V4LYr8WarZdLF0p5g==", + "subType": "06" + } + } + }, + "gcp_binData=00_det_explicit_id": { + "kms": "gcp", + "type": "binData=00", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAFhwJkocj36WXoY3mg2GWUrJ5IQTo9MvkwEwRFKdkcxm9pX2PZPK7bN5ZWw3IFcQ/0GfaW6V4LYr8WarZdLF0p5g==", + "subType": "06" + } + } + }, + "gcp_binData=00_det_explicit_altname": { + "kms": "gcp", + "type": "binData=00", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAFhwJkocj36WXoY3mg2GWUrJ5IQTo9MvkwEwRFKdkcxm9pX2PZPK7bN5ZWw3IFcQ/0GfaW6V4LYr8WarZdLF0p5g==", + "subType": "06" + } + } + }, + "gcp_binData=04_rand_auto_id": { + "kms": "gcp", + "type": "binData=04", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAFmDO47RTVXzm8D4hfhLICILrQJg3yOwG3HYfCdz7yaanPow2Y6bMxvXxk+kDS29aS8pJKDqJQQoMGc1ZFD3yYKsLQHRi/8rW6TNDQd4sCQ00=", + "subType": "06" + } + } + }, + "gcp_binData=04_rand_auto_altname": { + "kms": "gcp", + "type": "binData=04", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAFpiu9Q3LTuPmgdWBqo5Kw0vGF9xU1rMyE4xwR8GccZ7ZMrUcR4AnZnAP7ah5Oz8e7qonNYX4d09obesYSLlIjyK7J7qg+GWiEURgbvmOngaA=", + "subType": "06" + } + } + }, + "gcp_binData=04_rand_explicit_id": { + "kms": "gcp", + "type": "binData=04", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAFHRy8dveGuMng9WMmadIp39jD7iEfl3bEjKmzyNoAc0wIcSJZo9kdGbNEwZ4p+A1gz273fmAt/AJwAxwvqdlanLWBr4wiSKz1Mu9VaBcTlyY=", + "subType": "06" + } + } + }, + "gcp_binData=04_rand_explicit_altname": { + "kms": "gcp", + "type": "binData=04", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAFiqO+sKodqXuVox0zTbKuY4Ng0QE1If2hDLWXljAEZdYABPk20UJyL/CHR49WP2Cwvi4evJCf8sEfKpR+ugPiyxWzP3iVe6qqTzP93BBjqoc=", + "subType": "06" + } + } + }, + "gcp_binData=04_det_auto_id": { + "kms": "gcp", + "type": "binData=04", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAFEp5Gut6iENHUqDMVdBm4cxQy35gnslTf7vSWW9InFh323BvaTTiubxbxTiMKIa/u47MfMprL9HNQSwgpAQc4lped+YnlRW8RYvTcG4frFtA=", + "subType": "06" + } + } + }, + "gcp_binData=04_det_explicit_id": { + "kms": "gcp", + "type": "binData=04", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAFEp5Gut6iENHUqDMVdBm4cxQy35gnslTf7vSWW9InFh323BvaTTiubxbxTiMKIa/u47MfMprL9HNQSwgpAQc4lped+YnlRW8RYvTcG4frFtA=", + "subType": "06" + } + } + }, + "gcp_binData=04_det_explicit_altname": { + "kms": "gcp", + "type": "binData=04", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAFEp5Gut6iENHUqDMVdBm4cxQy35gnslTf7vSWW9InFh323BvaTTiubxbxTiMKIa/u47MfMprL9HNQSwgpAQc4lped+YnlRW8RYvTcG4frFtA=", + "subType": "06" + } + } + }, + "gcp_undefined_rand_explicit_id": { + "kms": "gcp", + "type": "undefined", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$undefined": true + } + }, + "gcp_undefined_rand_explicit_altname": { + "kms": "gcp", + "type": "undefined", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$undefined": true + } + }, + "gcp_undefined_det_explicit_id": { + "kms": "gcp", + "type": "undefined", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$undefined": true + } + }, + "gcp_undefined_det_explicit_altname": { + "kms": "gcp", + "type": "undefined", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$undefined": true + } + }, + "gcp_objectId_rand_auto_id": { + "kms": "gcp", + "type": "objectId", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAH8Kt6coc8bPI4QIwS1tIdk6pPA05xlZvrOyAQgvoqaozMtWzG15OunQLDdS3yJ5WRiV7kO6CIKqRrvL2RykB5sw==", + "subType": "06" + } + } + }, + "gcp_objectId_rand_auto_altname": { + "kms": "gcp", + "type": "objectId", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAHU5Yzmz2mbgNQrGSvglgVuv14nQWzipBkZUVSO4eYZ7wLrj/9t0fnizsu7Isgg5oA9fV0Snh/A9pDnHZWoccXUw==", + "subType": "06" + } + } + }, + "gcp_objectId_rand_explicit_id": { + "kms": "gcp", + "type": "objectId", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAHsdq5/FLqbjMDiNzf+6k9yxUtFVjS/xSqErqaboOl21934pAzgkOzBGodpKKFuK0Ta4f3h21XS+84wlIYPMlTtw==", + "subType": "06" + } + } + }, + "gcp_objectId_rand_explicit_altname": { + "kms": "gcp", + "type": "objectId", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAHokIdXxNQ/NBMdMAVNxyVuz/J5pMMdtfxxJxr7PbsRJ3FoD2QNjTgE1Wsz0G4o09Wv9UWD+/mIqPVlLgx1sRtPw==", + "subType": "06" + } + } + }, + "gcp_objectId_det_auto_id": { + "kms": "gcp", + "type": "objectId", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAHkcbaj3Hy3b4HkjRkMgiw5h6jBW7Sc56QSJmAPmVSc2T4B8d79A49dW0RyEiInZJcnVRjrYzUTRtgRaG4/FRd8g==", + "subType": "06" + } + } + }, + "gcp_objectId_det_explicit_id": { + "kms": "gcp", + "type": "objectId", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAHkcbaj3Hy3b4HkjRkMgiw5h6jBW7Sc56QSJmAPmVSc2T4B8d79A49dW0RyEiInZJcnVRjrYzUTRtgRaG4/FRd8g==", + "subType": "06" + } + } + }, + "gcp_objectId_det_explicit_altname": { + "kms": "gcp", + "type": "objectId", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAHkcbaj3Hy3b4HkjRkMgiw5h6jBW7Sc56QSJmAPmVSc2T4B8d79A49dW0RyEiInZJcnVRjrYzUTRtgRaG4/FRd8g==", + "subType": "06" + } + } + }, + "gcp_bool_rand_auto_id": { + "kms": "gcp", + "type": "bool", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAIf7vUYS5XFrEU4g03lzj9dk8a2MkaQdlH8nE/507D2Gm5XKQLi2jCENZ9UaQm3MQtVr4Uqrgz2GZiQHt9mXcG3w==", + "subType": "06" + } + } + }, + "gcp_bool_rand_auto_altname": { + "kms": "gcp", + "type": "bool", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAIdOC4Tx/TaVLRtOL/Qh8RUFIzHFB6nSegZoITwZeDethd8V3+R+aIAgzfN3pvmZzagHyVCm2nbNYJNdjOJhuDrg==", + "subType": "06" + } + } + }, + "gcp_bool_rand_explicit_id": { + "kms": "gcp", + "type": "bool", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAIzB14mX2vaZdiW9kGc+wYEgTCXA0FB5AVEyuERD00+K7U5Otlc6ZUwMtb9nGUu+M7PnnfxiDFHCrUWrTkAZzSUw==", + "subType": "06" + } + } + }, + "gcp_bool_rand_explicit_altname": { + "kms": "gcp", + "type": "bool", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAIhRLg79ACCMfeERBgG1wirirrZXZzbK11RxHkAbf14Fji2L3sdMBdLBU5I028+rmtDdC7khcNMt11V6XGKpAjnA==", + "subType": "06" + } + } + }, + "gcp_bool_det_explicit_id": { + "kms": "gcp", + "type": "bool", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": true + }, + "gcp_bool_det_explicit_altname": { + "kms": "gcp", + "type": "bool", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": true + }, + "gcp_date_rand_auto_id": { + "kms": "gcp", + "type": "date", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAJL+mjI8xBmSahOOi3XkGRGxjhGNdJb445KZtRAaUdCV0vMKbrefuiDHJDPCYo7mLYNhRSIhQfs63IFYMrlKP26A==", + "subType": "06" + } + } + }, + "gcp_date_rand_auto_altname": { + "kms": "gcp", + "type": "date", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAJbeyqO5FRmqvPYyOb0tdKtK6JOg8QKbCl37/iFeEm7N0T0Pjb8Io4U0ndB3O6fjokc3kDQrZcQkV+OFWIMuKFjw==", + "subType": "06" + } + } + }, + "gcp_date_rand_explicit_id": { + "kms": "gcp", + "type": "date", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAJVz3rSYIcoYtM0tZ8pB2Ytgh8RvYPeZvW7aUVJfZkZlIhfUHOHEf5kHqxzt8E1l2n3lmK/7ZVCFUuCCmr8cZyWw==", + "subType": "06" + } + } + }, + "gcp_date_rand_explicit_altname": { + "kms": "gcp", + "type": "date", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAJAiQqNyUcpuDEpFt7skp2NSHFCux2XObrIIFgXReYgtWoapL/n4zksJXl89PGavzNPBZbzgEa8uwwAe+S+Y6TLg==", + "subType": "06" + } + } + }, + "gcp_date_det_auto_id": { + "kms": "gcp", + "type": "date", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAJmATV2A1P5DmrS8uES6AMD9y+EU3x7u4K4J0p296iSkCEgIdZZORhPIEnuJK3FHw1II6IEShW2nd7sOJRZSGKcg==", + "subType": "06" + } + } + }, + "gcp_date_det_explicit_id": { + "kms": "gcp", + "type": "date", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAJmATV2A1P5DmrS8uES6AMD9y+EU3x7u4K4J0p296iSkCEgIdZZORhPIEnuJK3FHw1II6IEShW2nd7sOJRZSGKcg==", + "subType": "06" + } + } + }, + "gcp_date_det_explicit_altname": { + "kms": "gcp", + "type": "date", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAJmATV2A1P5DmrS8uES6AMD9y+EU3x7u4K4J0p296iSkCEgIdZZORhPIEnuJK3FHw1II6IEShW2nd7sOJRZSGKcg==", + "subType": "06" + } + } + }, + "gcp_null_rand_explicit_id": { + "kms": "gcp", + "type": "null", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": null + }, + "gcp_null_rand_explicit_altname": { + "kms": "gcp", + "type": "null", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": null + }, + "gcp_null_det_explicit_id": { + "kms": "gcp", + "type": "null", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": null + }, + "gcp_null_det_explicit_altname": { + "kms": "gcp", + "type": "null", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": null + }, + "gcp_regex_rand_auto_id": { + "kms": "gcp", + "type": "regex", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAALiebb3hWwJRqlgVEhLYKKvo6cnlU7BFnZnvlZ8GuIr11fUvcnS9Tg2m7vPmfL7WVyuNrXlR48x28Es49YuaxuIg==", + "subType": "06" + } + } + }, + "gcp_regex_rand_auto_altname": { + "kms": "gcp", + "type": "regex", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAALouDFNLVgBXqhJvBRj9DKacuD1AQ2NAVDW93P9NpZDFFwGOFxmKUcklbPj8KkHqvma8ovVUBTLLUDR+tKFRvC2Q==", + "subType": "06" + } + } + }, + "gcp_regex_rand_explicit_id": { + "kms": "gcp", + "type": "regex", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAALtdcT9+3R1he4eniT+1opqs/YtujFlqzBXssv+hCKhJQVY/IXde32nNpQ1WTgUc7jfIJl/v9HvuA9cDHPtDWWTg==", + "subType": "06" + } + } + }, + "gcp_regex_rand_explicit_altname": { + "kms": "gcp", + "type": "regex", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAALAwlRAlj4Zpn+wu9eOcs5CsNgrkVwrgmu1tc4wyQp0Lt+3UcplYsXQMrMPcTx3yB0JcI4Kh65n/DrAaA+G/a6iw==", + "subType": "06" + } + } + }, + "gcp_regex_det_auto_id": { + "kms": "gcp", + "type": "regex", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAALbCutQ7D94gk0djewcQiEdMFVVa21+Dn5enQf/mqPi3o7vPy7OejDBk9fiZRffsioRMhlx2cxqa8T3+AkeN96yg==", + "subType": "06" + } + } + }, + "gcp_regex_det_explicit_id": { + "kms": "gcp", + "type": "regex", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAALbCutQ7D94gk0djewcQiEdMFVVa21+Dn5enQf/mqPi3o7vPy7OejDBk9fiZRffsioRMhlx2cxqa8T3+AkeN96yg==", + "subType": "06" + } + } + }, + "gcp_regex_det_explicit_altname": { + "kms": "gcp", + "type": "regex", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAALbCutQ7D94gk0djewcQiEdMFVVa21+Dn5enQf/mqPi3o7vPy7OejDBk9fiZRffsioRMhlx2cxqa8T3+AkeN96yg==", + "subType": "06" + } + } + }, + "gcp_dbPointer_rand_auto_id": { + "kms": "gcp", + "type": "dbPointer", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAMG8P+Y2YNIgknxE0/yPDCHASBvCU1IJwsEyaJPuOjn03enxEN7z/wbjVMN0lGUptDP3SVL+OIZtQ35VRP84MtnbdhcfZWqMhLjzrCjmtHUEg=", + "subType": "06" + } + } + }, + "gcp_dbPointer_rand_auto_altname": { + "kms": "gcp", + "type": "dbPointer", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAMKCLFUN6ApB5fSVEWazRddhKTEwgqI/mxfe0BBxht69pZQYhTjhOJP0YcIrtr+RCeHOa4FIJgQod1CFOellIzO5YH5CuV4wPxCAlOdbJcBK8=", + "subType": "06" + } + } + }, + "gcp_dbPointer_rand_explicit_id": { + "kms": "gcp", + "type": "dbPointer", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAM7ULEA6uKKv4Pu4Sa3aAt7dXtEwfQC98aJoLBapHT+xXtn5GWPynOZQNtV3lGaYExQjiGdYbzOcav3SVy/sYTe3ktgkQnuZfe0tk0zyvKIMM=", + "subType": "06" + } + } + }, + "gcp_dbPointer_rand_explicit_altname": { + "kms": "gcp", + "type": "dbPointer", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAMoMveHO1MadAKuT498xiKWWBUKRbH7k7P2YETDg/BufVw0swos07rk6WJa1vqyF61QEmACjy4pmlK/5P0VfKJBAIvif51YqHPQkobJVS3nVA=", + "subType": "06" + } + } + }, + "gcp_dbPointer_det_auto_id": { + "kms": "gcp", + "type": "dbPointer", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAMz+9m1bE+Th9YeyPmJdtJPO0F5QYsGYtU/Eom/LSoYjDmTmV2ehkKx/cevIxJfZUc+Mvv/uGoeuubGl8tiX4l+f6yLrSIS6QBtIHYKXk+JNE=", + "subType": "06" + } + } + }, + "gcp_dbPointer_det_explicit_id": { + "kms": "gcp", + "type": "dbPointer", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAMz+9m1bE+Th9YeyPmJdtJPO0F5QYsGYtU/Eom/LSoYjDmTmV2ehkKx/cevIxJfZUc+Mvv/uGoeuubGl8tiX4l+f6yLrSIS6QBtIHYKXk+JNE=", + "subType": "06" + } + } + }, + "gcp_dbPointer_det_explicit_altname": { + "kms": "gcp", + "type": "dbPointer", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAMz+9m1bE+Th9YeyPmJdtJPO0F5QYsGYtU/Eom/LSoYjDmTmV2ehkKx/cevIxJfZUc+Mvv/uGoeuubGl8tiX4l+f6yLrSIS6QBtIHYKXk+JNE=", + "subType": "06" + } + } + }, + "gcp_javascript_rand_auto_id": { + "kms": "gcp", + "type": "javascript", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAANqBD0ITMn4BaFnDp7BX7vXbRBkFwmjQRVUeBbwsQtv5WVlJMAd/2+w7tyH8Wc44x0/9U/DA5GVhpTrtdDyPBI3w==", + "subType": "06" + } + } + }, + "gcp_javascript_rand_auto_altname": { + "kms": "gcp", + "type": "javascript", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAANtA0q4mbkAaKX4x1xk0/094Mln0wnh2bYnI6s6dh+l2WLDH7A9JMZxCl6kc4uOsEfbOvjP/PLIYtdMGs14EjM5A==", + "subType": "06" + } + } + }, + "gcp_javascript_rand_explicit_id": { + "kms": "gcp", + "type": "javascript", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAANfrW3pmeiFdBFt5tJS6Auq9Wo/J4r/vMRiueLWxig5S1zYuf9kFPJMK/nN9HqQPIcBIJIC2i/uEPgeepaNXACCw==", + "subType": "06" + } + } + }, + "gcp_javascript_rand_explicit_altname": { + "kms": "gcp", + "type": "javascript", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAANL7UZNzpwfwhRn/HflWIE9CSxGYNwLSo9d86HsOJ42rrZKq6HQqm/hiEAg0lyqCxVIVFxYEc2BUWSaq4/+SSyZw==", + "subType": "06" + } + } + }, + "gcp_javascript_det_auto_id": { + "kms": "gcp", + "type": "javascript", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAANB2d97R8nUJqnG0JPsWzyFe5pct5jvUljdkPnlZvLN1ZH+wSu4WmLfjri6IzzYP//f8tywn4Il+R4lZ0Kr/RAeA==", + "subType": "06" + } + } + }, + "gcp_javascript_det_explicit_id": { + "kms": "gcp", + "type": "javascript", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAANB2d97R8nUJqnG0JPsWzyFe5pct5jvUljdkPnlZvLN1ZH+wSu4WmLfjri6IzzYP//f8tywn4Il+R4lZ0Kr/RAeA==", + "subType": "06" + } + } + }, + "gcp_javascript_det_explicit_altname": { + "kms": "gcp", + "type": "javascript", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAANB2d97R8nUJqnG0JPsWzyFe5pct5jvUljdkPnlZvLN1ZH+wSu4WmLfjri6IzzYP//f8tywn4Il+R4lZ0Kr/RAeA==", + "subType": "06" + } + } + }, + "gcp_symbol_rand_auto_id": { + "kms": "gcp", + "type": "symbol", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAOsGdnr6EKcBdOAvYrP0o1pWbhhJbYsqfVwwwS1zq6ZkBayOss2J3TuYwBGXhJFlq3iIiWLdxGQ883XIvuAECnqUNuvpK2rOLwtDg8xJLiH24=", + "subType": "06" + } + } + }, + "gcp_symbol_rand_auto_altname": { + "kms": "gcp", + "type": "symbol", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAOpfa6CUSnJBvnWdd7pSZ2pXAbYm68Yka6xa/fuyhVx/Tc926/JpqmOmQtXqbOj8dZra0rQ3/yxHySwgD7s9Qr+xvyL7LvAguGkGmEV5H4Xz4=", + "subType": "06" + } + } + }, + "gcp_symbol_rand_explicit_id": { + "kms": "gcp", + "type": "symbol", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAO085iqYGFdtjiFWHcNqE0HuKMNHmk49DVh+pX8Pb4p3ehB57JL1nRqaXqHPqhFenxSEInT/te9HQRr+ADcHADvUGsScfm/n85v85nq6X+5y4=", + "subType": "06" + } + } + }, + "gcp_symbol_rand_explicit_altname": { + "kms": "gcp", + "type": "symbol", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAOiidb+2TsbAb2wc7MtDzb/UYsjgVNSw410Sz9pm+Uy7aZROE5SURKXdLjrCH2ZM2a+XCAl3o9yAoNgmAjEvYVxjmyzLK00EVjT42MBOrdA+k=", + "subType": "06" + } + } + }, + "gcp_symbol_det_auto_id": { + "kms": "gcp", + "type": "symbol", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAOFBGo77joqvZl7QQMB9ebMsAI3uro8ILQTJsTUgAqNzSh1mNzqihGHZYe84xtgMrVxNuwcjkidkRbNnLXWLuarOx4tgmOLx5A5G1eYEe3s7Q=", + "subType": "06" + } + } + }, + "gcp_symbol_det_explicit_id": { + "kms": "gcp", + "type": "symbol", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAOFBGo77joqvZl7QQMB9ebMsAI3uro8ILQTJsTUgAqNzSh1mNzqihGHZYe84xtgMrVxNuwcjkidkRbNnLXWLuarOx4tgmOLx5A5G1eYEe3s7Q=", + "subType": "06" + } + } + }, + "gcp_symbol_det_explicit_altname": { + "kms": "gcp", + "type": "symbol", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAOFBGo77joqvZl7QQMB9ebMsAI3uro8ILQTJsTUgAqNzSh1mNzqihGHZYe84xtgMrVxNuwcjkidkRbNnLXWLuarOx4tgmOLx5A5G1eYEe3s7Q=", + "subType": "06" + } + } + }, + "gcp_javascriptWithScope_rand_auto_id": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAPUsQHeXWhdmyfQ2Sq1ev1HMuMhBTc/FZFKO9tMMcI9qzjr+z4IdCOFCcx24/T/6NCsDpMiOGNnCdaBCCNRwNM0CTIkpHNLO+RSZORDgAsm9Q=", + "subType": "06" + } + } + }, + "gcp_javascriptWithScope_rand_auto_altname": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAPRZawtuu0gErebyFqiQw0LxniWhdeujGzaqfAXriGo/2fU7PalzTlWQa8wsv0y7Q/i1K4JbQwCEFpJWLppmtZshCGbVWjpPljB2BH4NNrLPE=", + "subType": "06" + } + } + }, + "gcp_javascriptWithScope_rand_explicit_id": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAP0qkQjuKmKIqdrsrR9djxt+1jFlEL7K9bP1oz7QWuY38dZJOoGwa6G1bP4wDzjsucJLCEgU2IY+t7BHraBFXvR/Aar8ID5eXcvJ7iOPIyqUw=", + "subType": "06" + } + } + }, + "gcp_javascriptWithScope_rand_explicit_altname": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAP6L41iuBWGLg3hQZuhXp4MupTQvIT07+/+CRY292sC02mehk5BkuSOEVrehlvyvBJFKia4Bqd/UWvY8PnUPLqFKTLnokONWbAuh36y3gjStw=", + "subType": "06" + } + } + }, + "gcp_javascriptWithScope_det_explicit_id": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "gcp_javascriptWithScope_det_explicit_altname": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "gcp_int_rand_auto_id": { + "kms": "gcp", + "type": "int", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAQ+6oRKWMSvC+3UGrHSyGeVlR9bFnZtFTmYlUoGn04k6ndtCl8rsmBVUV6dMMYd7znnZtTSIGPI8q6jwf/NJjdIw==", + "subType": "06" + } + } + }, + "gcp_int_rand_auto_altname": { + "kms": "gcp", + "type": "int", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAQnz5jAbrrdutTPFA4m3MvlVJr3bpurTKY5xjwO5k8DZpeWTJzr+kVEJjG6M8/RgC/0UFNgBBrDbDhYa8PZHRijw==", + "subType": "06" + } + } + }, + "gcp_int_rand_explicit_id": { + "kms": "gcp", + "type": "int", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAQfRFoxUgjrv8up/eZ/fLlr/z++d/jFm30nYvKqsnQT7vkmmujJWc8yAtthR9OI6W5biBgAkounqRHhvatLZC6gA==", + "subType": "06" + } + } + }, + "gcp_int_rand_explicit_altname": { + "kms": "gcp", + "type": "int", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAQY/ePk59RY6vLejx9a5ITwkT9000KAubVSqMoQwv7lNXO+GKZfZoLHG6k1MA/IxTvl1Zbz1Tw1bTctmj0HPEGNA==", + "subType": "06" + } + } + }, + "gcp_int_det_auto_id": { + "kms": "gcp", + "type": "int", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAQE9RVV9pOuysUUEGKq0u6ztFM0gTpoOHcHsTFQstA7+L9XTvxWEgL3RgNeq5KtKdODlxl62niV8dnQwlSoDSSWw==", + "subType": "06" + } + } + }, + "gcp_int_det_explicit_id": { + "kms": "gcp", + "type": "int", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAQE9RVV9pOuysUUEGKq0u6ztFM0gTpoOHcHsTFQstA7+L9XTvxWEgL3RgNeq5KtKdODlxl62niV8dnQwlSoDSSWw==", + "subType": "06" + } + } + }, + "gcp_int_det_explicit_altname": { + "kms": "gcp", + "type": "int", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAQE9RVV9pOuysUUEGKq0u6ztFM0gTpoOHcHsTFQstA7+L9XTvxWEgL3RgNeq5KtKdODlxl62niV8dnQwlSoDSSWw==", + "subType": "06" + } + } + }, + "gcp_timestamp_rand_auto_id": { + "kms": "gcp", + "type": "timestamp", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAARLnk1LpJIriKr6iiY1yBDGnfkRaHNwWcQyL+mORtYC4+AQ6oMv0qpGrJxS2QCbYY1tGmAISqZHCIExCG+TIv4bw==", + "subType": "06" + } + } + }, + "gcp_timestamp_rand_auto_altname": { + "kms": "gcp", + "type": "timestamp", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAARaqYXh9AVZI6gvRZrBwbprE5P3K5Qf4PIK1ca+mLRNOof0EExyAhtku7mYXusLeq0ww/tV6Zt1cA36KsT8a0Nog==", + "subType": "06" + } + } + }, + "gcp_timestamp_rand_explicit_id": { + "kms": "gcp", + "type": "timestamp", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAARLXzBjkCN8BpfXDIrb94kuZCD07Uo/DMBfMIWQtAb1++tTheUoY2ClQz33Luh4g8NXwuMJ7h8ufE70N2+b1yrUg==", + "subType": "06" + } + } + }, + "gcp_timestamp_rand_explicit_altname": { + "kms": "gcp", + "type": "timestamp", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAARe44QH9ZvTAuHsWhEMoue8eHod+cJpBm+Kl/Xtw7NI/6UTOOHC5Kkg20EvX3+GwXdAGk0bUSCFiTZb/yPox1OlA==", + "subType": "06" + } + } + }, + "gcp_timestamp_det_auto_id": { + "kms": "gcp", + "type": "timestamp", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAARzXjP6d6j/iQxiz1/TC/m+IfAGLFH9wY2ksS//i9x15QttlhcRrT3XmPvxaP5OjTHac4Gq3m2aXiJH56lETyl8A==", + "subType": "06" + } + } + }, + "gcp_timestamp_det_explicit_id": { + "kms": "gcp", + "type": "timestamp", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAARzXjP6d6j/iQxiz1/TC/m+IfAGLFH9wY2ksS//i9x15QttlhcRrT3XmPvxaP5OjTHac4Gq3m2aXiJH56lETyl8A==", + "subType": "06" + } + } + }, + "gcp_timestamp_det_explicit_altname": { + "kms": "gcp", + "type": "timestamp", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAARzXjP6d6j/iQxiz1/TC/m+IfAGLFH9wY2ksS//i9x15QttlhcRrT3XmPvxaP5OjTHac4Gq3m2aXiJH56lETyl8A==", + "subType": "06" + } + } + }, + "gcp_long_rand_auto_id": { + "kms": "gcp", + "type": "long", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAASuGZs48eEyVBJ9vvM6cvRySfuR0WM4kL7lx52rSGXBKtkZywyP5rJwNtRn9WTBMDqc1O/4jUgYXpqHx39SLhUPA==", + "subType": "06" + } + } + }, + "gcp_long_rand_auto_altname": { + "kms": "gcp", + "type": "long", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAS/62F71oKTX1GlvOP89uNhXpIyLZ5OdnuLeM/hvL5HWyOudSb06cG3+xnPg3QgppAYFK5X2PGgrEcrA87AykLPg==", + "subType": "06" + } + } + }, + "gcp_long_rand_explicit_id": { + "kms": "gcp", + "type": "long", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAASSgx+p4YzTvjZ+GCZCFHEKHNXJUSloPnLRHE4iJ515Epb8Tox7h8/aIAkB3ulnDS9BiT5UKdye2TWf8OBEwkXzg==", + "subType": "06" + } + } + }, + "gcp_long_rand_explicit_altname": { + "kms": "gcp", + "type": "long", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAAStqszyEfltpgd3aYeoyqaJX27OX861o06VhNX/N2fdSfKx0NQq/hWlWTkX6hK3hjCijiTtHmhFQR6QLkHD/6THw==", + "subType": "06" + } + } + }, + "gcp_long_det_auto_id": { + "kms": "gcp", + "type": "long", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAS0wJHtZKnxJlWnlSu0xuq7bZR25UdwcbdCRSaXBC0EXEFuqlzrZSn1lcwKPKGZQO8EQ6SdQDqK95alMLmM8eQrQ==", + "subType": "06" + } + } + }, + "gcp_long_det_explicit_id": { + "kms": "gcp", + "type": "long", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAS0wJHtZKnxJlWnlSu0xuq7bZR25UdwcbdCRSaXBC0EXEFuqlzrZSn1lcwKPKGZQO8EQ6SdQDqK95alMLmM8eQrQ==", + "subType": "06" + } + } + }, + "gcp_long_det_explicit_altname": { + "kms": "gcp", + "type": "long", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "ARgjwAAAAAAAAAAAAAAAAAAS0wJHtZKnxJlWnlSu0xuq7bZR25UdwcbdCRSaXBC0EXEFuqlzrZSn1lcwKPKGZQO8EQ6SdQDqK95alMLmM8eQrQ==", + "subType": "06" + } + } + }, + "gcp_decimal_rand_auto_id": { + "kms": "gcp", + "type": "decimal", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAATg4U3nbHBX/Az3ie2yurEIJO6cFryQWKiCpBbx1z0NF7RXd7kFC1XzaY6zcBjfl2AfRO8FFmgjTmFXb6gTRSSF0iAZJZTslfe3n6YFtwSKDI=", + "subType": "06" + } + } + }, + "gcp_decimal_rand_auto_altname": { + "kms": "gcp", + "type": "decimal", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAATdSSyp0ewboV5zI3T3TV/FOrdx0UQbFHhqcH+yqpotoWPSw5dxE+BEoihYLeaPKuVU/rUIY4TUv05Egj7Ovg62Kpk3cPscxsGtE/T2Ppbt6o=", + "subType": "06" + } + } + }, + "gcp_decimal_rand_explicit_id": { + "kms": "gcp", + "type": "decimal", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAATl7k20T22pf5Y9knVwIDyOIlbHyZBJqyi3Mai8APEZIYjpSKDKs8QNAH69CIjupyge8Izw4Cuch0bRrvMbp6YFfrUgk1JIQ4iLKkqqzHpBTY=", + "subType": "06" + } + } + }, + "gcp_decimal_rand_explicit_altname": { + "kms": "gcp", + "type": "decimal", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AhgjwAAAAAAAAAAAAAAAAAATF7YLkhkuLhXdxrQk2fJTs128tRNYHeodkqw7ha/TxW3Czr5gE272gnkdzfNoS7uu9XwOr1yjrC6y/8gHALAWn77WvGrAlBktLQbIIinsuds=", + "subType": "06" + } + } + }, + "gcp_decimal_det_explicit_id": { + "kms": "gcp", + "type": "decimal", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$numberDecimal": "1.234" + } + }, + "gcp_decimal_det_explicit_altname": { + "kms": "gcp", + "type": "decimal", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$numberDecimal": "1.234" + } + }, + "gcp_minKey_rand_explicit_id": { + "kms": "gcp", + "type": "minKey", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "gcp_minKey_rand_explicit_altname": { + "kms": "gcp", + "type": "minKey", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "gcp_minKey_det_explicit_id": { + "kms": "gcp", + "type": "minKey", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "gcp_minKey_det_explicit_altname": { + "kms": "gcp", + "type": "minKey", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "gcp_maxKey_rand_explicit_id": { + "kms": "gcp", + "type": "maxKey", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "gcp_maxKey_rand_explicit_altname": { + "kms": "gcp", + "type": "maxKey", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "gcp_maxKey_det_explicit_id": { + "kms": "gcp", + "type": "maxKey", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "gcp_maxKey_det_explicit_altname": { + "kms": "gcp", + "type": "maxKey", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$maxKey": 1 + } } -} +} \ No newline at end of file diff --git a/test/spec/client-side-encryption/corpus/corpus-key-azure.json b/test/spec/client-side-encryption/corpus/corpus-key-azure.json new file mode 100644 index 0000000000..31a564edb8 --- /dev/null +++ b/test/spec/client-side-encryption/corpus/corpus-key-azure.json @@ -0,0 +1,33 @@ +{ + "_id": { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + }, + "keyMaterial": { + "$binary": { + "base64": "n+HWZ0ZSVOYA3cvQgP7inN4JSXfOH85IngmeQxRpQHjCCcqT3IFqEWNlrsVHiz3AELimHhX4HKqOLWMUeSIT6emUDDoQX9BAv8DR1+E1w4nGs/NyEneac78EYFkK3JysrFDOgl2ypCCTKAypkn9CkAx1if4cfgQE93LW4kczcyHdGiH36CIxrCDGv1UzAvERN5Qa47DVwsM6a+hWsF2AAAJVnF0wYLLJU07TuRHdMrrphPWXZsFgyV+lRqJ7DDpReKNO8nMPLV/mHqHBHGPGQiRdb9NoJo8CvokGz4+KE8oLwzKf6V24dtwZmRkrsDV4iOhvROAzz+Euo1ypSkL3mw==", + "subType": "00" + } + }, + "creationDate": { + "$date": { + "$numberLong": "1601573901680" + } + }, + "updateDate": { + "$date": { + "$numberLong": "1601573901680" + } + }, + "status": { + "$numberInt": "0" + }, + "masterKey": { + "provider": "azure", + "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", + "keyName": "key-name-csfle" + }, + "keyAltNames": ["azure"] +} \ No newline at end of file diff --git a/test/spec/client-side-encryption/corpus/corpus-key-gcp.json b/test/spec/client-side-encryption/corpus/corpus-key-gcp.json new file mode 100644 index 0000000000..79d6999b08 --- /dev/null +++ b/test/spec/client-side-encryption/corpus/corpus-key-gcp.json @@ -0,0 +1,35 @@ +{ + "_id": { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + }, + "keyMaterial": { + "$binary": { + "base64": "CiQAIgLj0WyktnB4dfYHo5SLZ41K4ASQrjJUaSzl5vvVH0G12G0SiQEAjlV8XPlbnHDEDFbdTO4QIe8ER2/172U1ouLazG0ysDtFFIlSvWX5ZnZUrRMmp/R2aJkzLXEt/zf8Mn4Lfm+itnjgo5R9K4pmPNvvPKNZX5C16lrPT+aA+rd+zXFSmlMg3i5jnxvTdLHhg3G7Q/Uv1ZIJskKt95bzLoe0tUVzRWMYXLIEcohnQg==", + "subType": "00" + } + }, + "creationDate": { + "$date": { + "$numberLong": "1601574333107" + } + }, + "updateDate": { + "$date": { + "$numberLong": "1601574333107" + } + }, + "status": { + "$numberInt": "0" + }, + "masterKey": { + "provider": "gcp", + "projectId": "devprod-drivers", + "location": "global", + "keyRing": "key-ring-csfle", + "keyName": "key-name-csfle" + }, + "keyAltNames": ["gcp"] +} \ No newline at end of file diff --git a/test/spec/client-side-encryption/corpus/corpus-schema.json b/test/spec/client-side-encryption/corpus/corpus-schema.json index e4838d8aae..f145f712a4 100644 --- a/test/spec/client-side-encryption/corpus/corpus-schema.json +++ b/test/spec/client-side-encryption/corpus/corpus-schema.json @@ -34,11 +34,19 @@ }, "aws_double_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_double_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_string_rand_auto_id": { "bsonType": "object", @@ -73,11 +81,19 @@ }, "aws_string_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_string_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_string_det_auto_id": { "bsonType": "object", @@ -100,11 +116,19 @@ }, "aws_string_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_string_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_object_rand_auto_id": { "bsonType": "object", @@ -139,11 +163,19 @@ }, "aws_object_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_object_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_array_rand_auto_id": { "bsonType": "object", @@ -178,11 +210,19 @@ }, "aws_array_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_array_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_binData=00_rand_auto_id": { "bsonType": "object", @@ -217,11 +257,19 @@ }, "aws_binData=00_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_binData=00_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_binData=00_det_auto_id": { "bsonType": "object", @@ -244,11 +292,19 @@ }, "aws_binData=00_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_binData=00_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_binData=04_rand_auto_id": { "bsonType": "object", @@ -283,11 +339,19 @@ }, "aws_binData=04_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_binData=04_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_binData=04_det_auto_id": { "bsonType": "object", @@ -310,11 +374,19 @@ }, "aws_binData=04_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_binData=04_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_objectId_rand_auto_id": { "bsonType": "object", @@ -349,11 +421,19 @@ }, "aws_objectId_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_objectId_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_objectId_det_auto_id": { "bsonType": "object", @@ -376,11 +456,19 @@ }, "aws_objectId_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_objectId_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_bool_rand_auto_id": { "bsonType": "object", @@ -415,11 +503,19 @@ }, "aws_bool_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_bool_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_date_rand_auto_id": { "bsonType": "object", @@ -454,11 +550,19 @@ }, "aws_date_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_date_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_date_det_auto_id": { "bsonType": "object", @@ -481,11 +585,19 @@ }, "aws_date_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_date_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_regex_rand_auto_id": { "bsonType": "object", @@ -520,11 +632,19 @@ }, "aws_regex_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_regex_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_regex_det_auto_id": { "bsonType": "object", @@ -547,11 +667,19 @@ }, "aws_regex_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_regex_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_dbPointer_rand_auto_id": { "bsonType": "object", @@ -586,11 +714,19 @@ }, "aws_dbPointer_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_dbPointer_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_dbPointer_det_auto_id": { "bsonType": "object", @@ -613,11 +749,19 @@ }, "aws_dbPointer_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_dbPointer_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_javascript_rand_auto_id": { "bsonType": "object", @@ -652,11 +796,19 @@ }, "aws_javascript_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_javascript_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_javascript_det_auto_id": { "bsonType": "object", @@ -679,11 +831,19 @@ }, "aws_javascript_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_javascript_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_symbol_rand_auto_id": { "bsonType": "object", @@ -718,11 +878,19 @@ }, "aws_symbol_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_symbol_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_symbol_det_auto_id": { "bsonType": "object", @@ -745,11 +913,19 @@ }, "aws_symbol_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_symbol_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_javascriptWithScope_rand_auto_id": { "bsonType": "object", @@ -784,11 +960,19 @@ }, "aws_javascriptWithScope_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_javascriptWithScope_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_int_rand_auto_id": { "bsonType": "object", @@ -823,11 +1007,19 @@ }, "aws_int_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_int_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_int_det_auto_id": { "bsonType": "object", @@ -850,11 +1042,19 @@ }, "aws_int_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_int_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_timestamp_rand_auto_id": { "bsonType": "object", @@ -889,11 +1089,19 @@ }, "aws_timestamp_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_timestamp_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_timestamp_det_auto_id": { "bsonType": "object", @@ -916,11 +1124,19 @@ }, "aws_timestamp_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_timestamp_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_long_rand_auto_id": { "bsonType": "object", @@ -955,11 +1171,19 @@ }, "aws_long_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_long_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_long_det_auto_id": { "bsonType": "object", @@ -982,11 +1206,19 @@ }, "aws_long_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_long_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_decimal_rand_auto_id": { "bsonType": "object", @@ -1021,11 +1253,19 @@ }, "aws_decimal_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "aws_decimal_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_double_rand_auto_id": { "bsonType": "object", @@ -1060,11 +1300,19 @@ }, "local_double_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_double_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_string_rand_auto_id": { "bsonType": "object", @@ -1099,11 +1347,19 @@ }, "local_string_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_string_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_string_det_auto_id": { "bsonType": "object", @@ -1126,11 +1382,19 @@ }, "local_string_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_string_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_object_rand_auto_id": { "bsonType": "object", @@ -1165,11 +1429,19 @@ }, "local_object_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_object_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_array_rand_auto_id": { "bsonType": "object", @@ -1204,11 +1476,19 @@ }, "local_array_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_array_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_binData=00_rand_auto_id": { "bsonType": "object", @@ -1243,11 +1523,19 @@ }, "local_binData=00_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_binData=00_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_binData=00_det_auto_id": { "bsonType": "object", @@ -1270,11 +1558,19 @@ }, "local_binData=00_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_binData=00_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_binData=04_rand_auto_id": { "bsonType": "object", @@ -1309,11 +1605,19 @@ }, "local_binData=04_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_binData=04_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_binData=04_det_auto_id": { "bsonType": "object", @@ -1336,11 +1640,19 @@ }, "local_binData=04_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_binData=04_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_objectId_rand_auto_id": { "bsonType": "object", @@ -1375,11 +1687,19 @@ }, "local_objectId_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_objectId_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_objectId_det_auto_id": { "bsonType": "object", @@ -1402,11 +1722,19 @@ }, "local_objectId_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_objectId_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_bool_rand_auto_id": { "bsonType": "object", @@ -1441,11 +1769,19 @@ }, "local_bool_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_bool_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_date_rand_auto_id": { "bsonType": "object", @@ -1480,11 +1816,19 @@ }, "local_date_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_date_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_date_det_auto_id": { "bsonType": "object", @@ -1507,11 +1851,19 @@ }, "local_date_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_date_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_regex_rand_auto_id": { "bsonType": "object", @@ -1546,11 +1898,19 @@ }, "local_regex_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_regex_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_regex_det_auto_id": { "bsonType": "object", @@ -1573,11 +1933,19 @@ }, "local_regex_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_regex_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_dbPointer_rand_auto_id": { "bsonType": "object", @@ -1612,11 +1980,19 @@ }, "local_dbPointer_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_dbPointer_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_dbPointer_det_auto_id": { "bsonType": "object", @@ -1639,11 +2015,19 @@ }, "local_dbPointer_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_dbPointer_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_javascript_rand_auto_id": { "bsonType": "object", @@ -1678,11 +2062,19 @@ }, "local_javascript_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_javascript_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_javascript_det_auto_id": { "bsonType": "object", @@ -1705,11 +2097,19 @@ }, "local_javascript_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_javascript_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_symbol_rand_auto_id": { "bsonType": "object", @@ -1744,11 +2144,19 @@ }, "local_symbol_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_symbol_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_symbol_det_auto_id": { "bsonType": "object", @@ -1771,11 +2179,19 @@ }, "local_symbol_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_symbol_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_javascriptWithScope_rand_auto_id": { "bsonType": "object", @@ -1810,11 +2226,19 @@ }, "local_javascriptWithScope_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_javascriptWithScope_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_int_rand_auto_id": { "bsonType": "object", @@ -1849,11 +2273,19 @@ }, "local_int_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_int_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_int_det_auto_id": { "bsonType": "object", @@ -1876,11 +2308,19 @@ }, "local_int_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_int_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_timestamp_rand_auto_id": { "bsonType": "object", @@ -1915,11 +2355,19 @@ }, "local_timestamp_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_timestamp_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_timestamp_det_auto_id": { "bsonType": "object", @@ -1942,11 +2390,19 @@ }, "local_timestamp_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_timestamp_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_long_rand_auto_id": { "bsonType": "object", @@ -1981,11 +2437,19 @@ }, "local_long_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_long_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_long_det_auto_id": { "bsonType": "object", @@ -2008,11 +2472,19 @@ }, "local_long_det_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_long_det_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_decimal_rand_auto_id": { "bsonType": "object", @@ -2047,11 +2519,2551 @@ }, "local_decimal_rand_explicit_id": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } }, "local_decimal_rand_explicit_altname": { "bsonType": "object", - "properties": { "value": { "bsonType": "binData" } } + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_double_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "double" + } + } + } + }, + "azure_double_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "double" + } + } + } + }, + "azure_double_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_double_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_string_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "string" + } + } + } + }, + "azure_string_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "string" + } + } + } + }, + "azure_string_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_string_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_string_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "string" + } + } + } + }, + "azure_string_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_string_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_object_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "object" + } + } + } + }, + "azure_object_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "object" + } + } + } + }, + "azure_object_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_object_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_array_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "array" + } + } + } + }, + "azure_array_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "array" + } + } + } + }, + "azure_array_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_array_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_binData=00_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "binData" + } + } + } + }, + "azure_binData=00_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "binData" + } + } + } + }, + "azure_binData=00_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_binData=00_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_binData=00_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "binData" + } + } + } + }, + "azure_binData=00_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_binData=00_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_binData=04_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "binData" + } + } + } + }, + "azure_binData=04_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "binData" + } + } + } + }, + "azure_binData=04_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_binData=04_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_binData=04_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "binData" + } + } + } + }, + "azure_binData=04_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_binData=04_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_objectId_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "objectId" + } + } + } + }, + "azure_objectId_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "objectId" + } + } + } + }, + "azure_objectId_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_objectId_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_objectId_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "objectId" + } + } + } + }, + "azure_objectId_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_objectId_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_bool_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "bool" + } + } + } + }, + "azure_bool_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "bool" + } + } + } + }, + "azure_bool_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_bool_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_date_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "date" + } + } + } + }, + "azure_date_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "date" + } + } + } + }, + "azure_date_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_date_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_date_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "date" + } + } + } + }, + "azure_date_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_date_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_regex_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "regex" + } + } + } + }, + "azure_regex_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "regex" + } + } + } + }, + "azure_regex_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_regex_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_regex_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "regex" + } + } + } + }, + "azure_regex_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_regex_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_dbPointer_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "dbPointer" + } + } + } + }, + "azure_dbPointer_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "dbPointer" + } + } + } + }, + "azure_dbPointer_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_dbPointer_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_dbPointer_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "dbPointer" + } + } + } + }, + "azure_dbPointer_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_dbPointer_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_javascript_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "javascript" + } + } + } + }, + "azure_javascript_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "javascript" + } + } + } + }, + "azure_javascript_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_javascript_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_javascript_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "javascript" + } + } + } + }, + "azure_javascript_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_javascript_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_symbol_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "symbol" + } + } + } + }, + "azure_symbol_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "symbol" + } + } + } + }, + "azure_symbol_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_symbol_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_symbol_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "symbol" + } + } + } + }, + "azure_symbol_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_symbol_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_javascriptWithScope_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "javascriptWithScope" + } + } + } + }, + "azure_javascriptWithScope_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "javascriptWithScope" + } + } + } + }, + "azure_javascriptWithScope_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_javascriptWithScope_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_int_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "int" + } + } + } + }, + "azure_int_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "int" + } + } + } + }, + "azure_int_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_int_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_int_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "int" + } + } + } + }, + "azure_int_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_int_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_timestamp_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "timestamp" + } + } + } + }, + "azure_timestamp_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "timestamp" + } + } + } + }, + "azure_timestamp_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_timestamp_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_timestamp_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "timestamp" + } + } + } + }, + "azure_timestamp_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_timestamp_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_long_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "long" + } + } + } + }, + "azure_long_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "long" + } + } + } + }, + "azure_long_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_long_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_long_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "long" + } + } + } + }, + "azure_long_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_long_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_decimal_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZUREAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "decimal" + } + } + } + }, + "azure_decimal_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_azure", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "decimal" + } + } + } + }, + "azure_decimal_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "azure_decimal_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_double_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "double" + } + } + } + }, + "gcp_double_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "double" + } + } + } + }, + "gcp_double_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_double_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_string_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "string" + } + } + } + }, + "gcp_string_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "string" + } + } + } + }, + "gcp_string_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_string_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_string_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "string" + } + } + } + }, + "gcp_string_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_string_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_object_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "object" + } + } + } + }, + "gcp_object_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "object" + } + } + } + }, + "gcp_object_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_object_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_array_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "array" + } + } + } + }, + "gcp_array_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "array" + } + } + } + }, + "gcp_array_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_array_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_binData=00_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "binData" + } + } + } + }, + "gcp_binData=00_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "binData" + } + } + } + }, + "gcp_binData=00_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_binData=00_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_binData=00_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "binData" + } + } + } + }, + "gcp_binData=00_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_binData=00_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_binData=04_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "binData" + } + } + } + }, + "gcp_binData=04_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "binData" + } + } + } + }, + "gcp_binData=04_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_binData=04_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_binData=04_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "binData" + } + } + } + }, + "gcp_binData=04_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_binData=04_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_objectId_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "objectId" + } + } + } + }, + "gcp_objectId_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "objectId" + } + } + } + }, + "gcp_objectId_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_objectId_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_objectId_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "objectId" + } + } + } + }, + "gcp_objectId_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_objectId_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_bool_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "bool" + } + } + } + }, + "gcp_bool_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "bool" + } + } + } + }, + "gcp_bool_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_bool_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_date_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "date" + } + } + } + }, + "gcp_date_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "date" + } + } + } + }, + "gcp_date_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_date_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_date_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "date" + } + } + } + }, + "gcp_date_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_date_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_regex_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "regex" + } + } + } + }, + "gcp_regex_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "regex" + } + } + } + }, + "gcp_regex_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_regex_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_regex_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "regex" + } + } + } + }, + "gcp_regex_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_regex_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_dbPointer_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "dbPointer" + } + } + } + }, + "gcp_dbPointer_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "dbPointer" + } + } + } + }, + "gcp_dbPointer_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_dbPointer_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_dbPointer_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "dbPointer" + } + } + } + }, + "gcp_dbPointer_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_dbPointer_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_javascript_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "javascript" + } + } + } + }, + "gcp_javascript_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "javascript" + } + } + } + }, + "gcp_javascript_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_javascript_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_javascript_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "javascript" + } + } + } + }, + "gcp_javascript_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_javascript_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_symbol_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "symbol" + } + } + } + }, + "gcp_symbol_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "symbol" + } + } + } + }, + "gcp_symbol_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_symbol_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_symbol_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "symbol" + } + } + } + }, + "gcp_symbol_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_symbol_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_javascriptWithScope_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "javascriptWithScope" + } + } + } + }, + "gcp_javascriptWithScope_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "javascriptWithScope" + } + } + } + }, + "gcp_javascriptWithScope_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_javascriptWithScope_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_int_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "int" + } + } + } + }, + "gcp_int_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "int" + } + } + } + }, + "gcp_int_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_int_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_int_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "int" + } + } + } + }, + "gcp_int_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_int_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_timestamp_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "timestamp" + } + } + } + }, + "gcp_timestamp_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "timestamp" + } + } + } + }, + "gcp_timestamp_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_timestamp_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_timestamp_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "timestamp" + } + } + } + }, + "gcp_timestamp_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_timestamp_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_long_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "long" + } + } + } + }, + "gcp_long_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "long" + } + } + } + }, + "gcp_long_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_long_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_long_det_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", + "bsonType": "long" + } + } + } + }, + "gcp_long_det_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_long_det_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_decimal_rand_auto_id": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCPAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "decimal" + } + } + } + }, + "gcp_decimal_rand_auto_altname": { + "bsonType": "object", + "properties": { + "value": { + "encrypt": { + "keyId": "/altname_gcp", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", + "bsonType": "decimal" + } + } + } + }, + "gcp_decimal_rand_explicit_id": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } + }, + "gcp_decimal_rand_explicit_altname": { + "bsonType": "object", + "properties": { + "value": { + "bsonType": "binData" + } + } } } -} +} \ No newline at end of file diff --git a/test/spec/client-side-encryption/corpus/corpus.json b/test/spec/client-side-encryption/corpus/corpus.json index cbf7a091a1..55bbaf99c2 100644 --- a/test/spec/client-side-encryption/corpus/corpus.json +++ b/test/spec/client-side-encryption/corpus/corpus.json @@ -2,6 +2,8 @@ "_id": "client_side_encryption_corpus", "altname_aws": "aws", "altname_local": "local", + "altname_azure": "azure", + "altname_gcp": "gcp", "aws_double_rand_auto_id": { "kms": "aws", "type": "double", @@ -9,7 +11,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "aws_double_rand_auto_altname": { "kms": "aws", @@ -18,7 +22,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "aws_double_rand_explicit_id": { "kms": "aws", @@ -27,7 +33,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "aws_double_rand_explicit_altname": { "kms": "aws", @@ -36,7 +44,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "aws_double_det_explicit_id": { "kms": "aws", @@ -45,7 +55,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "aws_double_det_explicit_altname": { "kms": "aws", @@ -54,7 +66,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "aws_string_rand_auto_id": { "kms": "aws", @@ -126,7 +140,11 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "aws_object_rand_auto_altname": { "kms": "aws", @@ -135,7 +153,11 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "aws_object_rand_explicit_id": { "kms": "aws", @@ -144,7 +166,11 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "aws_object_rand_explicit_altname": { "kms": "aws", @@ -153,7 +179,11 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "aws_object_det_explicit_id": { "kms": "aws", @@ -162,7 +192,11 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "aws_object_det_explicit_altname": { "kms": "aws", @@ -171,7 +205,11 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "aws_array_rand_auto_id": { "kms": "aws", @@ -181,9 +219,15 @@ "identifier": "id", "allowed": true, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "aws_array_rand_auto_altname": { @@ -194,9 +238,15 @@ "identifier": "altname", "allowed": true, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "aws_array_rand_explicit_id": { @@ -207,9 +257,15 @@ "identifier": "id", "allowed": true, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "aws_array_rand_explicit_altname": { @@ -220,9 +276,15 @@ "identifier": "altname", "allowed": true, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "aws_array_det_explicit_id": { @@ -233,9 +295,15 @@ "identifier": "id", "allowed": false, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "aws_array_det_explicit_altname": { @@ -246,9 +314,15 @@ "identifier": "altname", "allowed": false, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "aws_binData=00_rand_auto_id": { @@ -258,7 +332,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "aws_binData=00_rand_auto_altname": { "kms": "aws", @@ -267,7 +346,12 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "aws_binData=00_rand_explicit_id": { "kms": "aws", @@ -276,7 +360,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "aws_binData=00_rand_explicit_altname": { "kms": "aws", @@ -285,7 +374,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "aws_binData=00_det_auto_id": { "kms": "aws", @@ -294,7 +388,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "aws_binData=00_det_explicit_id": { "kms": "aws", @@ -303,7 +402,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "aws_binData=00_det_explicit_altname": { "kms": "aws", @@ -312,7 +416,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "aws_binData=04_rand_auto_id": { "kms": "aws", @@ -322,7 +431,10 @@ "identifier": "id", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "aws_binData=04_rand_auto_altname": { @@ -333,7 +445,10 @@ "identifier": "altname", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "aws_binData=04_rand_explicit_id": { @@ -344,7 +459,10 @@ "identifier": "id", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "aws_binData=04_rand_explicit_altname": { @@ -355,7 +473,10 @@ "identifier": "altname", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "aws_binData=04_det_auto_id": { @@ -366,7 +487,10 @@ "identifier": "id", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "aws_binData=04_det_explicit_id": { @@ -377,7 +501,10 @@ "identifier": "id", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "aws_binData=04_det_explicit_altname": { @@ -388,7 +515,10 @@ "identifier": "altname", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "aws_undefined_rand_explicit_id": { @@ -398,7 +528,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$undefined": true } + "value": { + "$undefined": true + } }, "aws_undefined_rand_explicit_altname": { "kms": "aws", @@ -407,7 +539,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$undefined": true } + "value": { + "$undefined": true + } }, "aws_undefined_det_explicit_id": { "kms": "aws", @@ -416,7 +550,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$undefined": true } + "value": { + "$undefined": true + } }, "aws_undefined_det_explicit_altname": { "kms": "aws", @@ -425,7 +561,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$undefined": true } + "value": { + "$undefined": true + } }, "aws_objectId_rand_auto_id": { "kms": "aws", @@ -434,7 +572,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "aws_objectId_rand_auto_altname": { "kms": "aws", @@ -443,7 +583,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "aws_objectId_rand_explicit_id": { "kms": "aws", @@ -452,7 +594,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "aws_objectId_rand_explicit_altname": { "kms": "aws", @@ -461,7 +605,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "aws_objectId_det_auto_id": { "kms": "aws", @@ -470,7 +616,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "aws_objectId_det_explicit_id": { "kms": "aws", @@ -479,7 +627,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "aws_objectId_det_explicit_altname": { "kms": "aws", @@ -488,7 +638,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "aws_bool_rand_auto_id": { "kms": "aws", @@ -551,7 +703,11 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "aws_date_rand_auto_altname": { "kms": "aws", @@ -560,7 +716,11 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "aws_date_rand_explicit_id": { "kms": "aws", @@ -569,7 +729,11 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "aws_date_rand_explicit_altname": { "kms": "aws", @@ -578,7 +742,11 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "aws_date_det_auto_id": { "kms": "aws", @@ -587,7 +755,11 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "aws_date_det_explicit_id": { "kms": "aws", @@ -596,7 +768,11 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "aws_date_det_explicit_altname": { "kms": "aws", @@ -605,7 +781,11 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "aws_null_rand_explicit_id": { "kms": "aws", @@ -650,7 +830,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "aws_regex_rand_auto_altname": { "kms": "aws", @@ -659,7 +844,12 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "aws_regex_rand_explicit_id": { "kms": "aws", @@ -668,7 +858,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "aws_regex_rand_explicit_altname": { "kms": "aws", @@ -677,7 +872,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "aws_regex_det_auto_id": { "kms": "aws", @@ -686,7 +886,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "aws_regex_det_explicit_id": { "kms": "aws", @@ -695,7 +900,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "aws_regex_det_explicit_altname": { "kms": "aws", @@ -704,7 +914,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "aws_dbPointer_rand_auto_id": { "kms": "aws", @@ -716,7 +931,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -730,7 +947,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -744,7 +963,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -758,7 +979,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -772,7 +995,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -786,7 +1011,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -800,7 +1027,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -811,7 +1040,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "aws_javascript_rand_auto_altname": { "kms": "aws", @@ -820,7 +1051,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "aws_javascript_rand_explicit_id": { "kms": "aws", @@ -829,7 +1062,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "aws_javascript_rand_explicit_altname": { "kms": "aws", @@ -838,7 +1073,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "aws_javascript_det_auto_id": { "kms": "aws", @@ -847,7 +1084,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "aws_javascript_det_explicit_id": { "kms": "aws", @@ -856,7 +1095,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "aws_javascript_det_explicit_altname": { "kms": "aws", @@ -865,7 +1106,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "aws_symbol_rand_auto_id": { "kms": "aws", @@ -874,7 +1117,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "aws_symbol_rand_auto_altname": { "kms": "aws", @@ -883,7 +1128,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "aws_symbol_rand_explicit_id": { "kms": "aws", @@ -892,7 +1139,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "aws_symbol_rand_explicit_altname": { "kms": "aws", @@ -901,7 +1150,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "aws_symbol_det_auto_id": { "kms": "aws", @@ -910,7 +1161,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "aws_symbol_det_explicit_id": { "kms": "aws", @@ -919,7 +1172,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "aws_symbol_det_explicit_altname": { "kms": "aws", @@ -928,7 +1183,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "aws_javascriptWithScope_rand_auto_id": { "kms": "aws", @@ -937,7 +1194,10 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "aws_javascriptWithScope_rand_auto_altname": { "kms": "aws", @@ -946,7 +1206,10 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "aws_javascriptWithScope_rand_explicit_id": { "kms": "aws", @@ -955,7 +1218,10 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "aws_javascriptWithScope_rand_explicit_altname": { "kms": "aws", @@ -964,7 +1230,10 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "aws_javascriptWithScope_det_explicit_id": { "kms": "aws", @@ -973,7 +1242,10 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "aws_javascriptWithScope_det_explicit_altname": { "kms": "aws", @@ -982,7 +1254,10 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "aws_int_rand_auto_id": { "kms": "aws", @@ -991,7 +1266,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "aws_int_rand_auto_altname": { "kms": "aws", @@ -1000,7 +1277,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "aws_int_rand_explicit_id": { "kms": "aws", @@ -1009,7 +1288,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "aws_int_rand_explicit_altname": { "kms": "aws", @@ -1018,7 +1299,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "aws_int_det_auto_id": { "kms": "aws", @@ -1027,7 +1310,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "aws_int_det_explicit_id": { "kms": "aws", @@ -1036,7 +1321,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "aws_int_det_explicit_altname": { "kms": "aws", @@ -1045,7 +1332,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "aws_timestamp_rand_auto_id": { "kms": "aws", @@ -1054,7 +1343,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "aws_timestamp_rand_auto_altname": { "kms": "aws", @@ -1063,7 +1357,12 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "aws_timestamp_rand_explicit_id": { "kms": "aws", @@ -1072,7 +1371,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "aws_timestamp_rand_explicit_altname": { "kms": "aws", @@ -1081,7 +1385,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "aws_timestamp_det_auto_id": { "kms": "aws", @@ -1090,7 +1399,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "aws_timestamp_det_explicit_id": { "kms": "aws", @@ -1099,7 +1413,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "aws_timestamp_det_explicit_altname": { "kms": "aws", @@ -1108,7 +1427,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "aws_long_rand_auto_id": { "kms": "aws", @@ -1117,7 +1441,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "aws_long_rand_auto_altname": { "kms": "aws", @@ -1126,7 +1452,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "aws_long_rand_explicit_id": { "kms": "aws", @@ -1135,7 +1463,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "aws_long_rand_explicit_altname": { "kms": "aws", @@ -1144,7 +1474,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "aws_long_det_auto_id": { "kms": "aws", @@ -1153,7 +1485,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "aws_long_det_explicit_id": { "kms": "aws", @@ -1162,7 +1496,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "aws_long_det_explicit_altname": { "kms": "aws", @@ -1171,7 +1507,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "aws_decimal_rand_auto_id": { "kms": "aws", @@ -1180,7 +1518,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "aws_decimal_rand_auto_altname": { "kms": "aws", @@ -1189,7 +1529,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "aws_decimal_rand_explicit_id": { "kms": "aws", @@ -1198,7 +1540,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "aws_decimal_rand_explicit_altname": { "kms": "aws", @@ -1207,7 +1551,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "aws_decimal_det_explicit_id": { "kms": "aws", @@ -1216,7 +1562,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "aws_decimal_det_explicit_altname": { "kms": "aws", @@ -1225,7 +1573,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "aws_minKey_rand_explicit_id": { "kms": "aws", @@ -1234,7 +1584,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$minKey": 1 } + "value": { + "$minKey": 1 + } }, "aws_minKey_rand_explicit_altname": { "kms": "aws", @@ -1243,7 +1595,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$minKey": 1 } + "value": { + "$minKey": 1 + } }, "aws_minKey_det_explicit_id": { "kms": "aws", @@ -1252,7 +1606,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$minKey": 1 } + "value": { + "$minKey": 1 + } }, "aws_minKey_det_explicit_altname": { "kms": "aws", @@ -1261,7 +1617,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$minKey": 1 } + "value": { + "$minKey": 1 + } }, "aws_maxKey_rand_explicit_id": { "kms": "aws", @@ -1270,7 +1628,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$maxKey": 1 } + "value": { + "$maxKey": 1 + } }, "aws_maxKey_rand_explicit_altname": { "kms": "aws", @@ -1279,7 +1639,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$maxKey": 1 } + "value": { + "$maxKey": 1 + } }, "aws_maxKey_det_explicit_id": { "kms": "aws", @@ -1288,7 +1650,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$maxKey": 1 } + "value": { + "$maxKey": 1 + } }, "aws_maxKey_det_explicit_altname": { "kms": "aws", @@ -1297,7 +1661,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$maxKey": 1 } + "value": { + "$maxKey": 1 + } }, "local_double_rand_auto_id": { "kms": "local", @@ -1306,7 +1672,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "local_double_rand_auto_altname": { "kms": "local", @@ -1315,7 +1683,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "local_double_rand_explicit_id": { "kms": "local", @@ -1324,7 +1694,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "local_double_rand_explicit_altname": { "kms": "local", @@ -1333,7 +1705,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "local_double_det_explicit_id": { "kms": "local", @@ -1342,7 +1716,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$numberDouble": "1.234" } + "value": { + "$numberDouble": "1.234" + } }, "local_double_det_explicit_altname": { "kms": "local", @@ -1351,8 +1727,10 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$numberDouble": "1.234" } - }, + "value": { + "$numberDouble": "1.234" + } + }, "local_string_rand_auto_id": { "kms": "local", "type": "string", @@ -1423,7 +1801,11 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "local_object_rand_auto_altname": { "kms": "local", @@ -1432,7 +1814,11 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "local_object_rand_explicit_id": { "kms": "local", @@ -1441,7 +1827,11 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "local_object_rand_explicit_altname": { "kms": "local", @@ -1450,7 +1840,11 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "local_object_det_explicit_id": { "kms": "local", @@ -1459,7 +1853,11 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "local_object_det_explicit_altname": { "kms": "local", @@ -1468,7 +1866,11 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "x": { "$numberInt": "1" } } + "value": { + "x": { + "$numberInt": "1" + } + } }, "local_array_rand_auto_id": { "kms": "local", @@ -1478,9 +1880,15 @@ "identifier": "id", "allowed": true, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "local_array_rand_auto_altname": { @@ -1491,9 +1899,15 @@ "identifier": "altname", "allowed": true, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "local_array_rand_explicit_id": { @@ -1504,9 +1918,15 @@ "identifier": "id", "allowed": true, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "local_array_rand_explicit_altname": { @@ -1517,9 +1937,15 @@ "identifier": "altname", "allowed": true, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "local_array_det_explicit_id": { @@ -1530,9 +1956,15 @@ "identifier": "id", "allowed": false, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "local_array_det_explicit_altname": { @@ -1543,9 +1975,15 @@ "identifier": "altname", "allowed": false, "value": [ - { "$numberInt": "1" }, - { "$numberInt": "2" }, - { "$numberInt": "3" } + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } ] }, "local_binData=00_rand_auto_id": { @@ -1555,7 +1993,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "local_binData=00_rand_auto_altname": { "kms": "local", @@ -1564,7 +2007,12 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "local_binData=00_rand_explicit_id": { "kms": "local", @@ -1573,7 +2021,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "local_binData=00_rand_explicit_altname": { "kms": "local", @@ -1582,7 +2035,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "local_binData=00_det_auto_id": { "kms": "local", @@ -1591,7 +2049,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "local_binData=00_det_explicit_id": { "kms": "local", @@ -1600,7 +2063,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "local_binData=00_det_explicit_altname": { "kms": "local", @@ -1609,7 +2077,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$binary": { "base64": "AQIDBA==", "subType": "00" } } + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } }, "local_binData=04_rand_auto_id": { "kms": "local", @@ -1619,7 +2092,10 @@ "identifier": "id", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "local_binData=04_rand_auto_altname": { @@ -1630,7 +2106,10 @@ "identifier": "altname", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "local_binData=04_rand_explicit_id": { @@ -1641,7 +2120,10 @@ "identifier": "id", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "local_binData=04_rand_explicit_altname": { @@ -1652,7 +2134,10 @@ "identifier": "altname", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "local_binData=04_det_auto_id": { @@ -1663,7 +2148,10 @@ "identifier": "id", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "local_binData=04_det_explicit_id": { @@ -1674,7 +2162,10 @@ "identifier": "id", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "local_binData=04_det_explicit_altname": { @@ -1685,7 +2176,10 @@ "identifier": "altname", "allowed": true, "value": { - "$binary": { "base64": "AAECAwQFBgcICQoLDA0ODw==", "subType": "04" } + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } } }, "local_undefined_rand_explicit_id": { @@ -1695,7 +2189,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$undefined": true } + "value": { + "$undefined": true + } }, "local_undefined_rand_explicit_altname": { "kms": "local", @@ -1704,7 +2200,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$undefined": true } + "value": { + "$undefined": true + } }, "local_undefined_det_explicit_id": { "kms": "local", @@ -1713,7 +2211,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$undefined": true } + "value": { + "$undefined": true + } }, "local_undefined_det_explicit_altname": { "kms": "local", @@ -1722,7 +2222,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$undefined": true } + "value": { + "$undefined": true + } }, "local_objectId_rand_auto_id": { "kms": "local", @@ -1731,7 +2233,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "local_objectId_rand_auto_altname": { "kms": "local", @@ -1740,7 +2244,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "local_objectId_rand_explicit_id": { "kms": "local", @@ -1749,7 +2255,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "local_objectId_rand_explicit_altname": { "kms": "local", @@ -1758,7 +2266,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "local_objectId_det_auto_id": { "kms": "local", @@ -1767,7 +2277,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "local_objectId_det_explicit_id": { "kms": "local", @@ -1776,7 +2288,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "local_objectId_det_explicit_altname": { "kms": "local", @@ -1785,7 +2299,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$oid": "01234567890abcdef0123456" } + "value": { + "$oid": "01234567890abcdef0123456" + } }, "local_bool_rand_auto_id": { "kms": "local", @@ -1848,7 +2364,11 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "local_date_rand_auto_altname": { "kms": "local", @@ -1857,7 +2377,11 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "local_date_rand_explicit_id": { "kms": "local", @@ -1866,7 +2390,11 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "local_date_rand_explicit_altname": { "kms": "local", @@ -1875,7 +2403,11 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "local_date_det_auto_id": { "kms": "local", @@ -1884,7 +2416,11 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "local_date_det_explicit_id": { "kms": "local", @@ -1893,7 +2429,11 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "local_date_det_explicit_altname": { "kms": "local", @@ -1902,7 +2442,11 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$date": { "$numberLong": "12345" } } + "value": { + "$date": { + "$numberLong": "12345" + } + } }, "local_null_rand_explicit_id": { "kms": "local", @@ -1947,7 +2491,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "local_regex_rand_auto_altname": { "kms": "local", @@ -1956,7 +2505,12 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "local_regex_rand_explicit_id": { "kms": "local", @@ -1965,7 +2519,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "local_regex_rand_explicit_altname": { "kms": "local", @@ -1974,7 +2533,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "local_regex_det_auto_id": { "kms": "local", @@ -1983,7 +2547,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "local_regex_det_explicit_id": { "kms": "local", @@ -1992,7 +2561,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "local_regex_det_explicit_altname": { "kms": "local", @@ -2001,7 +2575,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$regularExpression": { "pattern": ".*", "options": "" } } + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } }, "local_dbPointer_rand_auto_id": { "kms": "local", @@ -2013,7 +2592,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -2027,7 +2608,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -2041,7 +2624,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -2055,7 +2640,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -2069,7 +2656,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -2083,7 +2672,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -2097,7 +2688,9 @@ "value": { "$dbPointer": { "$ref": "db.example", - "$id": { "$oid": "01234567890abcdef0123456" } + "$id": { + "$oid": "01234567890abcdef0123456" + } } } }, @@ -2108,7 +2701,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "local_javascript_rand_auto_altname": { "kms": "local", @@ -2117,7 +2712,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "local_javascript_rand_explicit_id": { "kms": "local", @@ -2126,7 +2723,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "local_javascript_rand_explicit_altname": { "kms": "local", @@ -2135,7 +2734,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "local_javascript_det_auto_id": { "kms": "local", @@ -2144,7 +2745,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "local_javascript_det_explicit_id": { "kms": "local", @@ -2153,7 +2756,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "local_javascript_det_explicit_altname": { "kms": "local", @@ -2162,7 +2767,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$code": "x=1" } + "value": { + "$code": "x=1" + } }, "local_symbol_rand_auto_id": { "kms": "local", @@ -2171,7 +2778,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "local_symbol_rand_auto_altname": { "kms": "local", @@ -2180,7 +2789,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "local_symbol_rand_explicit_id": { "kms": "local", @@ -2189,7 +2800,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "local_symbol_rand_explicit_altname": { "kms": "local", @@ -2198,7 +2811,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "local_symbol_det_auto_id": { "kms": "local", @@ -2207,7 +2822,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "local_symbol_det_explicit_id": { "kms": "local", @@ -2216,7 +2833,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "local_symbol_det_explicit_altname": { "kms": "local", @@ -2225,7 +2844,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$symbol": "mongodb-symbol" } + "value": { + "$symbol": "mongodb-symbol" + } }, "local_javascriptWithScope_rand_auto_id": { "kms": "local", @@ -2234,7 +2855,10 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "local_javascriptWithScope_rand_auto_altname": { "kms": "local", @@ -2243,7 +2867,10 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "local_javascriptWithScope_rand_explicit_id": { "kms": "local", @@ -2252,7 +2879,10 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "local_javascriptWithScope_rand_explicit_altname": { "kms": "local", @@ -2261,7 +2891,10 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "local_javascriptWithScope_det_explicit_id": { "kms": "local", @@ -2270,7 +2903,10 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "local_javascriptWithScope_det_explicit_altname": { "kms": "local", @@ -2279,7 +2915,10 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$code": "x=1", "$scope": {} } + "value": { + "$code": "x=1", + "$scope": {} + } }, "local_int_rand_auto_id": { "kms": "local", @@ -2288,7 +2927,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "local_int_rand_auto_altname": { "kms": "local", @@ -2297,7 +2938,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "local_int_rand_explicit_id": { "kms": "local", @@ -2306,7 +2949,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "local_int_rand_explicit_altname": { "kms": "local", @@ -2315,7 +2960,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "local_int_det_auto_id": { "kms": "local", @@ -2324,7 +2971,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "local_int_det_explicit_id": { "kms": "local", @@ -2333,7 +2982,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "local_int_det_explicit_altname": { "kms": "local", @@ -2342,7 +2993,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberInt": "123" } + "value": { + "$numberInt": "123" + } }, "local_timestamp_rand_auto_id": { "kms": "local", @@ -2351,7 +3004,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "local_timestamp_rand_auto_altname": { "kms": "local", @@ -2360,7 +3018,12 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "local_timestamp_rand_explicit_id": { "kms": "local", @@ -2369,7 +3032,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "local_timestamp_rand_explicit_altname": { "kms": "local", @@ -2378,7 +3046,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "local_timestamp_det_auto_id": { "kms": "local", @@ -2387,7 +3060,12 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "local_timestamp_det_explicit_id": { "kms": "local", @@ -2396,7 +3074,12 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "local_timestamp_det_explicit_altname": { "kms": "local", @@ -2405,7 +3088,12 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$timestamp": { "t": 0, "i": 12345 } } + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } }, "local_long_rand_auto_id": { "kms": "local", @@ -2414,7 +3102,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "local_long_rand_auto_altname": { "kms": "local", @@ -2423,7 +3113,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "local_long_rand_explicit_id": { "kms": "local", @@ -2432,7 +3124,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "local_long_rand_explicit_altname": { "kms": "local", @@ -2441,7 +3135,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "local_long_det_auto_id": { "kms": "local", @@ -2450,7 +3146,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "local_long_det_explicit_id": { "kms": "local", @@ -2459,7 +3157,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "local_long_det_explicit_altname": { "kms": "local", @@ -2468,7 +3168,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberLong": "456" } + "value": { + "$numberLong": "456" + } }, "local_decimal_rand_auto_id": { "kms": "local", @@ -2477,7 +3179,9 @@ "method": "auto", "identifier": "id", "allowed": true, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "local_decimal_rand_auto_altname": { "kms": "local", @@ -2486,7 +3190,9 @@ "method": "auto", "identifier": "altname", "allowed": true, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "local_decimal_rand_explicit_id": { "kms": "local", @@ -2495,7 +3201,9 @@ "method": "explicit", "identifier": "id", "allowed": true, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "local_decimal_rand_explicit_altname": { "kms": "local", @@ -2504,7 +3212,9 @@ "method": "explicit", "identifier": "altname", "allowed": true, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "local_decimal_det_explicit_id": { "kms": "local", @@ -2513,7 +3223,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "local_decimal_det_explicit_altname": { "kms": "local", @@ -2522,7 +3234,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$numberDecimal": "1.234" } + "value": { + "$numberDecimal": "1.234" + } }, "local_minKey_rand_explicit_id": { "kms": "local", @@ -2531,7 +3245,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$minKey": 1 } + "value": { + "$minKey": 1 + } }, "local_minKey_rand_explicit_altname": { "kms": "local", @@ -2540,7 +3256,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$minKey": 1 } + "value": { + "$minKey": 1 + } }, "local_minKey_det_explicit_id": { "kms": "local", @@ -2549,7 +3267,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$minKey": 1 } + "value": { + "$minKey": 1 + } }, "local_minKey_det_explicit_altname": { "kms": "local", @@ -2558,7 +3278,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$minKey": 1 } + "value": { + "$minKey": 1 + } }, "local_maxKey_rand_explicit_id": { "kms": "local", @@ -2567,7 +3289,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$maxKey": 1 } + "value": { + "$maxKey": 1 + } }, "local_maxKey_rand_explicit_altname": { "kms": "local", @@ -2576,7 +3300,9 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$maxKey": 1 } + "value": { + "$maxKey": 1 + } }, "local_maxKey_det_explicit_id": { "kms": "local", @@ -2585,7 +3311,9 @@ "method": "explicit", "identifier": "id", "allowed": false, - "value": { "$maxKey": 1 } + "value": { + "$maxKey": 1 + } }, "local_maxKey_det_explicit_altname": { "kms": "local", @@ -2594,7 +3322,3331 @@ "method": "explicit", "identifier": "altname", "allowed": false, - "value": { "$maxKey": 1 } + "value": { + "$maxKey": 1 + } + }, + "azure_double_rand_auto_id": { + "kms": "azure", + "type": "double", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberDouble": "1.234" + } + }, + "azure_double_rand_auto_altname": { + "kms": "azure", + "type": "double", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$numberDouble": "1.234" + } + }, + "azure_double_rand_explicit_id": { + "kms": "azure", + "type": "double", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberDouble": "1.234" + } + }, + "azure_double_rand_explicit_altname": { + "kms": "azure", + "type": "double", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberDouble": "1.234" + } + }, + "azure_double_det_explicit_id": { + "kms": "azure", + "type": "double", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$numberDouble": "1.234" + } + }, + "azure_double_det_explicit_altname": { + "kms": "azure", + "type": "double", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$numberDouble": "1.234" + } + }, + "azure_string_rand_auto_id": { + "kms": "azure", + "type": "string", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": "mongodb" + }, + "azure_string_rand_auto_altname": { + "kms": "azure", + "type": "string", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": "mongodb" + }, + "azure_string_rand_explicit_id": { + "kms": "azure", + "type": "string", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": "mongodb" + }, + "azure_string_rand_explicit_altname": { + "kms": "azure", + "type": "string", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": "mongodb" + }, + "azure_string_det_auto_id": { + "kms": "azure", + "type": "string", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": "mongodb" + }, + "azure_string_det_explicit_id": { + "kms": "azure", + "type": "string", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": "mongodb" + }, + "azure_string_det_explicit_altname": { + "kms": "azure", + "type": "string", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": "mongodb" + }, + "azure_object_rand_auto_id": { + "kms": "azure", + "type": "object", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "azure_object_rand_auto_altname": { + "kms": "azure", + "type": "object", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "azure_object_rand_explicit_id": { + "kms": "azure", + "type": "object", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "azure_object_rand_explicit_altname": { + "kms": "azure", + "type": "object", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "azure_object_det_explicit_id": { + "kms": "azure", + "type": "object", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "azure_object_det_explicit_altname": { + "kms": "azure", + "type": "object", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "azure_array_rand_auto_id": { + "kms": "azure", + "type": "array", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "azure_array_rand_auto_altname": { + "kms": "azure", + "type": "array", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "azure_array_rand_explicit_id": { + "kms": "azure", + "type": "array", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "azure_array_rand_explicit_altname": { + "kms": "azure", + "type": "array", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "azure_array_det_explicit_id": { + "kms": "azure", + "type": "array", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "azure_array_det_explicit_altname": { + "kms": "azure", + "type": "array", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "azure_binData=00_rand_auto_id": { + "kms": "azure", + "type": "binData=00", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "azure_binData=00_rand_auto_altname": { + "kms": "azure", + "type": "binData=00", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "azure_binData=00_rand_explicit_id": { + "kms": "azure", + "type": "binData=00", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "azure_binData=00_rand_explicit_altname": { + "kms": "azure", + "type": "binData=00", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "azure_binData=00_det_auto_id": { + "kms": "azure", + "type": "binData=00", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "azure_binData=00_det_explicit_id": { + "kms": "azure", + "type": "binData=00", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "azure_binData=00_det_explicit_altname": { + "kms": "azure", + "type": "binData=00", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "azure_binData=04_rand_auto_id": { + "kms": "azure", + "type": "binData=04", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "azure_binData=04_rand_auto_altname": { + "kms": "azure", + "type": "binData=04", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "azure_binData=04_rand_explicit_id": { + "kms": "azure", + "type": "binData=04", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "azure_binData=04_rand_explicit_altname": { + "kms": "azure", + "type": "binData=04", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "azure_binData=04_det_auto_id": { + "kms": "azure", + "type": "binData=04", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "azure_binData=04_det_explicit_id": { + "kms": "azure", + "type": "binData=04", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "azure_binData=04_det_explicit_altname": { + "kms": "azure", + "type": "binData=04", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "azure_undefined_rand_explicit_id": { + "kms": "azure", + "type": "undefined", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$undefined": true + } + }, + "azure_undefined_rand_explicit_altname": { + "kms": "azure", + "type": "undefined", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$undefined": true + } + }, + "azure_undefined_det_explicit_id": { + "kms": "azure", + "type": "undefined", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$undefined": true + } + }, + "azure_undefined_det_explicit_altname": { + "kms": "azure", + "type": "undefined", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$undefined": true + } + }, + "azure_objectId_rand_auto_id": { + "kms": "azure", + "type": "objectId", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "azure_objectId_rand_auto_altname": { + "kms": "azure", + "type": "objectId", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "azure_objectId_rand_explicit_id": { + "kms": "azure", + "type": "objectId", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "azure_objectId_rand_explicit_altname": { + "kms": "azure", + "type": "objectId", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "azure_objectId_det_auto_id": { + "kms": "azure", + "type": "objectId", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "azure_objectId_det_explicit_id": { + "kms": "azure", + "type": "objectId", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "azure_objectId_det_explicit_altname": { + "kms": "azure", + "type": "objectId", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "azure_bool_rand_auto_id": { + "kms": "azure", + "type": "bool", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": true + }, + "azure_bool_rand_auto_altname": { + "kms": "azure", + "type": "bool", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": true + }, + "azure_bool_rand_explicit_id": { + "kms": "azure", + "type": "bool", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": true + }, + "azure_bool_rand_explicit_altname": { + "kms": "azure", + "type": "bool", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": true + }, + "azure_bool_det_explicit_id": { + "kms": "azure", + "type": "bool", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": true + }, + "azure_bool_det_explicit_altname": { + "kms": "azure", + "type": "bool", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": true + }, + "azure_date_rand_auto_id": { + "kms": "azure", + "type": "date", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "azure_date_rand_auto_altname": { + "kms": "azure", + "type": "date", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "azure_date_rand_explicit_id": { + "kms": "azure", + "type": "date", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "azure_date_rand_explicit_altname": { + "kms": "azure", + "type": "date", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "azure_date_det_auto_id": { + "kms": "azure", + "type": "date", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "azure_date_det_explicit_id": { + "kms": "azure", + "type": "date", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "azure_date_det_explicit_altname": { + "kms": "azure", + "type": "date", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "azure_null_rand_explicit_id": { + "kms": "azure", + "type": "null", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": null + }, + "azure_null_rand_explicit_altname": { + "kms": "azure", + "type": "null", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": null + }, + "azure_null_det_explicit_id": { + "kms": "azure", + "type": "null", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": null + }, + "azure_null_det_explicit_altname": { + "kms": "azure", + "type": "null", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": null + }, + "azure_regex_rand_auto_id": { + "kms": "azure", + "type": "regex", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "azure_regex_rand_auto_altname": { + "kms": "azure", + "type": "regex", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "azure_regex_rand_explicit_id": { + "kms": "azure", + "type": "regex", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "azure_regex_rand_explicit_altname": { + "kms": "azure", + "type": "regex", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "azure_regex_det_auto_id": { + "kms": "azure", + "type": "regex", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "azure_regex_det_explicit_id": { + "kms": "azure", + "type": "regex", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "azure_regex_det_explicit_altname": { + "kms": "azure", + "type": "regex", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "azure_dbPointer_rand_auto_id": { + "kms": "azure", + "type": "dbPointer", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "azure_dbPointer_rand_auto_altname": { + "kms": "azure", + "type": "dbPointer", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "azure_dbPointer_rand_explicit_id": { + "kms": "azure", + "type": "dbPointer", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "azure_dbPointer_rand_explicit_altname": { + "kms": "azure", + "type": "dbPointer", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "azure_dbPointer_det_auto_id": { + "kms": "azure", + "type": "dbPointer", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "azure_dbPointer_det_explicit_id": { + "kms": "azure", + "type": "dbPointer", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "azure_dbPointer_det_explicit_altname": { + "kms": "azure", + "type": "dbPointer", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "azure_javascript_rand_auto_id": { + "kms": "azure", + "type": "javascript", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "azure_javascript_rand_auto_altname": { + "kms": "azure", + "type": "javascript", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "azure_javascript_rand_explicit_id": { + "kms": "azure", + "type": "javascript", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "azure_javascript_rand_explicit_altname": { + "kms": "azure", + "type": "javascript", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "azure_javascript_det_auto_id": { + "kms": "azure", + "type": "javascript", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "azure_javascript_det_explicit_id": { + "kms": "azure", + "type": "javascript", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "azure_javascript_det_explicit_altname": { + "kms": "azure", + "type": "javascript", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "azure_symbol_rand_auto_id": { + "kms": "azure", + "type": "symbol", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "azure_symbol_rand_auto_altname": { + "kms": "azure", + "type": "symbol", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "azure_symbol_rand_explicit_id": { + "kms": "azure", + "type": "symbol", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "azure_symbol_rand_explicit_altname": { + "kms": "azure", + "type": "symbol", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "azure_symbol_det_auto_id": { + "kms": "azure", + "type": "symbol", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "azure_symbol_det_explicit_id": { + "kms": "azure", + "type": "symbol", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "azure_symbol_det_explicit_altname": { + "kms": "azure", + "type": "symbol", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "azure_javascriptWithScope_rand_auto_id": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "azure_javascriptWithScope_rand_auto_altname": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "azure_javascriptWithScope_rand_explicit_id": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "azure_javascriptWithScope_rand_explicit_altname": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "azure_javascriptWithScope_det_explicit_id": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "azure_javascriptWithScope_det_explicit_altname": { + "kms": "azure", + "type": "javascriptWithScope", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "azure_int_rand_auto_id": { + "kms": "azure", + "type": "int", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "azure_int_rand_auto_altname": { + "kms": "azure", + "type": "int", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "azure_int_rand_explicit_id": { + "kms": "azure", + "type": "int", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "azure_int_rand_explicit_altname": { + "kms": "azure", + "type": "int", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "azure_int_det_auto_id": { + "kms": "azure", + "type": "int", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "azure_int_det_explicit_id": { + "kms": "azure", + "type": "int", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "azure_int_det_explicit_altname": { + "kms": "azure", + "type": "int", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "azure_timestamp_rand_auto_id": { + "kms": "azure", + "type": "timestamp", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "azure_timestamp_rand_auto_altname": { + "kms": "azure", + "type": "timestamp", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "azure_timestamp_rand_explicit_id": { + "kms": "azure", + "type": "timestamp", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "azure_timestamp_rand_explicit_altname": { + "kms": "azure", + "type": "timestamp", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "azure_timestamp_det_auto_id": { + "kms": "azure", + "type": "timestamp", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "azure_timestamp_det_explicit_id": { + "kms": "azure", + "type": "timestamp", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "azure_timestamp_det_explicit_altname": { + "kms": "azure", + "type": "timestamp", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "azure_long_rand_auto_id": { + "kms": "azure", + "type": "long", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "azure_long_rand_auto_altname": { + "kms": "azure", + "type": "long", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "azure_long_rand_explicit_id": { + "kms": "azure", + "type": "long", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "azure_long_rand_explicit_altname": { + "kms": "azure", + "type": "long", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "azure_long_det_auto_id": { + "kms": "azure", + "type": "long", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "azure_long_det_explicit_id": { + "kms": "azure", + "type": "long", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "azure_long_det_explicit_altname": { + "kms": "azure", + "type": "long", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "azure_decimal_rand_auto_id": { + "kms": "azure", + "type": "decimal", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberDecimal": "1.234" + } + }, + "azure_decimal_rand_auto_altname": { + "kms": "azure", + "type": "decimal", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$numberDecimal": "1.234" + } + }, + "azure_decimal_rand_explicit_id": { + "kms": "azure", + "type": "decimal", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberDecimal": "1.234" + } + }, + "azure_decimal_rand_explicit_altname": { + "kms": "azure", + "type": "decimal", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberDecimal": "1.234" + } + }, + "azure_decimal_det_explicit_id": { + "kms": "azure", + "type": "decimal", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$numberDecimal": "1.234" + } + }, + "azure_decimal_det_explicit_altname": { + "kms": "azure", + "type": "decimal", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$numberDecimal": "1.234" + } + }, + "azure_minKey_rand_explicit_id": { + "kms": "azure", + "type": "minKey", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "azure_minKey_rand_explicit_altname": { + "kms": "azure", + "type": "minKey", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "azure_minKey_det_explicit_id": { + "kms": "azure", + "type": "minKey", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "azure_minKey_det_explicit_altname": { + "kms": "azure", + "type": "minKey", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "azure_maxKey_rand_explicit_id": { + "kms": "azure", + "type": "maxKey", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "azure_maxKey_rand_explicit_altname": { + "kms": "azure", + "type": "maxKey", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "azure_maxKey_det_explicit_id": { + "kms": "azure", + "type": "maxKey", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "azure_maxKey_det_explicit_altname": { + "kms": "azure", + "type": "maxKey", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "gcp_double_rand_auto_id": { + "kms": "gcp", + "type": "double", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberDouble": "1.234" + } + }, + "gcp_double_rand_auto_altname": { + "kms": "gcp", + "type": "double", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$numberDouble": "1.234" + } + }, + "gcp_double_rand_explicit_id": { + "kms": "gcp", + "type": "double", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberDouble": "1.234" + } + }, + "gcp_double_rand_explicit_altname": { + "kms": "gcp", + "type": "double", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberDouble": "1.234" + } + }, + "gcp_double_det_explicit_id": { + "kms": "gcp", + "type": "double", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$numberDouble": "1.234" + } + }, + "gcp_double_det_explicit_altname": { + "kms": "gcp", + "type": "double", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$numberDouble": "1.234" + } + }, + "gcp_string_rand_auto_id": { + "kms": "gcp", + "type": "string", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": "mongodb" + }, + "gcp_string_rand_auto_altname": { + "kms": "gcp", + "type": "string", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": "mongodb" + }, + "gcp_string_rand_explicit_id": { + "kms": "gcp", + "type": "string", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": "mongodb" + }, + "gcp_string_rand_explicit_altname": { + "kms": "gcp", + "type": "string", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": "mongodb" + }, + "gcp_string_det_auto_id": { + "kms": "gcp", + "type": "string", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": "mongodb" + }, + "gcp_string_det_explicit_id": { + "kms": "gcp", + "type": "string", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": "mongodb" + }, + "gcp_string_det_explicit_altname": { + "kms": "gcp", + "type": "string", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": "mongodb" + }, + "gcp_object_rand_auto_id": { + "kms": "gcp", + "type": "object", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "gcp_object_rand_auto_altname": { + "kms": "gcp", + "type": "object", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "gcp_object_rand_explicit_id": { + "kms": "gcp", + "type": "object", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "gcp_object_rand_explicit_altname": { + "kms": "gcp", + "type": "object", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "gcp_object_det_explicit_id": { + "kms": "gcp", + "type": "object", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "gcp_object_det_explicit_altname": { + "kms": "gcp", + "type": "object", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "x": { + "$numberInt": "1" + } + } + }, + "gcp_array_rand_auto_id": { + "kms": "gcp", + "type": "array", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "gcp_array_rand_auto_altname": { + "kms": "gcp", + "type": "array", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "gcp_array_rand_explicit_id": { + "kms": "gcp", + "type": "array", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "gcp_array_rand_explicit_altname": { + "kms": "gcp", + "type": "array", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "gcp_array_det_explicit_id": { + "kms": "gcp", + "type": "array", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "gcp_array_det_explicit_altname": { + "kms": "gcp", + "type": "array", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": [ + { + "$numberInt": "1" + }, + { + "$numberInt": "2" + }, + { + "$numberInt": "3" + } + ] + }, + "gcp_binData=00_rand_auto_id": { + "kms": "gcp", + "type": "binData=00", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "gcp_binData=00_rand_auto_altname": { + "kms": "gcp", + "type": "binData=00", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "gcp_binData=00_rand_explicit_id": { + "kms": "gcp", + "type": "binData=00", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "gcp_binData=00_rand_explicit_altname": { + "kms": "gcp", + "type": "binData=00", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "gcp_binData=00_det_auto_id": { + "kms": "gcp", + "type": "binData=00", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "gcp_binData=00_det_explicit_id": { + "kms": "gcp", + "type": "binData=00", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "gcp_binData=00_det_explicit_altname": { + "kms": "gcp", + "type": "binData=00", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AQIDBA==", + "subType": "00" + } + } + }, + "gcp_binData=04_rand_auto_id": { + "kms": "gcp", + "type": "binData=04", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "gcp_binData=04_rand_auto_altname": { + "kms": "gcp", + "type": "binData=04", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "gcp_binData=04_rand_explicit_id": { + "kms": "gcp", + "type": "binData=04", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "gcp_binData=04_rand_explicit_altname": { + "kms": "gcp", + "type": "binData=04", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "gcp_binData=04_det_auto_id": { + "kms": "gcp", + "type": "binData=04", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "gcp_binData=04_det_explicit_id": { + "kms": "gcp", + "type": "binData=04", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "gcp_binData=04_det_explicit_altname": { + "kms": "gcp", + "type": "binData=04", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$binary": { + "base64": "AAECAwQFBgcICQoLDA0ODw==", + "subType": "04" + } + } + }, + "gcp_undefined_rand_explicit_id": { + "kms": "gcp", + "type": "undefined", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$undefined": true + } + }, + "gcp_undefined_rand_explicit_altname": { + "kms": "gcp", + "type": "undefined", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$undefined": true + } + }, + "gcp_undefined_det_explicit_id": { + "kms": "gcp", + "type": "undefined", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$undefined": true + } + }, + "gcp_undefined_det_explicit_altname": { + "kms": "gcp", + "type": "undefined", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$undefined": true + } + }, + "gcp_objectId_rand_auto_id": { + "kms": "gcp", + "type": "objectId", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "gcp_objectId_rand_auto_altname": { + "kms": "gcp", + "type": "objectId", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "gcp_objectId_rand_explicit_id": { + "kms": "gcp", + "type": "objectId", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "gcp_objectId_rand_explicit_altname": { + "kms": "gcp", + "type": "objectId", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "gcp_objectId_det_auto_id": { + "kms": "gcp", + "type": "objectId", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "gcp_objectId_det_explicit_id": { + "kms": "gcp", + "type": "objectId", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "gcp_objectId_det_explicit_altname": { + "kms": "gcp", + "type": "objectId", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$oid": "01234567890abcdef0123456" + } + }, + "gcp_bool_rand_auto_id": { + "kms": "gcp", + "type": "bool", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": true + }, + "gcp_bool_rand_auto_altname": { + "kms": "gcp", + "type": "bool", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": true + }, + "gcp_bool_rand_explicit_id": { + "kms": "gcp", + "type": "bool", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": true + }, + "gcp_bool_rand_explicit_altname": { + "kms": "gcp", + "type": "bool", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": true + }, + "gcp_bool_det_explicit_id": { + "kms": "gcp", + "type": "bool", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": true + }, + "gcp_bool_det_explicit_altname": { + "kms": "gcp", + "type": "bool", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": true + }, + "gcp_date_rand_auto_id": { + "kms": "gcp", + "type": "date", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "gcp_date_rand_auto_altname": { + "kms": "gcp", + "type": "date", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "gcp_date_rand_explicit_id": { + "kms": "gcp", + "type": "date", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "gcp_date_rand_explicit_altname": { + "kms": "gcp", + "type": "date", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "gcp_date_det_auto_id": { + "kms": "gcp", + "type": "date", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "gcp_date_det_explicit_id": { + "kms": "gcp", + "type": "date", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "gcp_date_det_explicit_altname": { + "kms": "gcp", + "type": "date", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$date": { + "$numberLong": "12345" + } + } + }, + "gcp_null_rand_explicit_id": { + "kms": "gcp", + "type": "null", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": null + }, + "gcp_null_rand_explicit_altname": { + "kms": "gcp", + "type": "null", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": null + }, + "gcp_null_det_explicit_id": { + "kms": "gcp", + "type": "null", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": null + }, + "gcp_null_det_explicit_altname": { + "kms": "gcp", + "type": "null", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": null + }, + "gcp_regex_rand_auto_id": { + "kms": "gcp", + "type": "regex", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "gcp_regex_rand_auto_altname": { + "kms": "gcp", + "type": "regex", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "gcp_regex_rand_explicit_id": { + "kms": "gcp", + "type": "regex", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "gcp_regex_rand_explicit_altname": { + "kms": "gcp", + "type": "regex", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "gcp_regex_det_auto_id": { + "kms": "gcp", + "type": "regex", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "gcp_regex_det_explicit_id": { + "kms": "gcp", + "type": "regex", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "gcp_regex_det_explicit_altname": { + "kms": "gcp", + "type": "regex", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$regularExpression": { + "pattern": ".*", + "options": "" + } + } + }, + "gcp_dbPointer_rand_auto_id": { + "kms": "gcp", + "type": "dbPointer", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "gcp_dbPointer_rand_auto_altname": { + "kms": "gcp", + "type": "dbPointer", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "gcp_dbPointer_rand_explicit_id": { + "kms": "gcp", + "type": "dbPointer", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "gcp_dbPointer_rand_explicit_altname": { + "kms": "gcp", + "type": "dbPointer", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "gcp_dbPointer_det_auto_id": { + "kms": "gcp", + "type": "dbPointer", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "gcp_dbPointer_det_explicit_id": { + "kms": "gcp", + "type": "dbPointer", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "gcp_dbPointer_det_explicit_altname": { + "kms": "gcp", + "type": "dbPointer", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$dbPointer": { + "$ref": "db.example", + "$id": { + "$oid": "01234567890abcdef0123456" + } + } + } + }, + "gcp_javascript_rand_auto_id": { + "kms": "gcp", + "type": "javascript", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "gcp_javascript_rand_auto_altname": { + "kms": "gcp", + "type": "javascript", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "gcp_javascript_rand_explicit_id": { + "kms": "gcp", + "type": "javascript", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "gcp_javascript_rand_explicit_altname": { + "kms": "gcp", + "type": "javascript", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "gcp_javascript_det_auto_id": { + "kms": "gcp", + "type": "javascript", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "gcp_javascript_det_explicit_id": { + "kms": "gcp", + "type": "javascript", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "gcp_javascript_det_explicit_altname": { + "kms": "gcp", + "type": "javascript", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$code": "x=1" + } + }, + "gcp_symbol_rand_auto_id": { + "kms": "gcp", + "type": "symbol", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "gcp_symbol_rand_auto_altname": { + "kms": "gcp", + "type": "symbol", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "gcp_symbol_rand_explicit_id": { + "kms": "gcp", + "type": "symbol", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "gcp_symbol_rand_explicit_altname": { + "kms": "gcp", + "type": "symbol", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "gcp_symbol_det_auto_id": { + "kms": "gcp", + "type": "symbol", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "gcp_symbol_det_explicit_id": { + "kms": "gcp", + "type": "symbol", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "gcp_symbol_det_explicit_altname": { + "kms": "gcp", + "type": "symbol", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$symbol": "mongodb-symbol" + } + }, + "gcp_javascriptWithScope_rand_auto_id": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "gcp_javascriptWithScope_rand_auto_altname": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "gcp_javascriptWithScope_rand_explicit_id": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "gcp_javascriptWithScope_rand_explicit_altname": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "gcp_javascriptWithScope_det_explicit_id": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "gcp_javascriptWithScope_det_explicit_altname": { + "kms": "gcp", + "type": "javascriptWithScope", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$code": "x=1", + "$scope": {} + } + }, + "gcp_int_rand_auto_id": { + "kms": "gcp", + "type": "int", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "gcp_int_rand_auto_altname": { + "kms": "gcp", + "type": "int", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "gcp_int_rand_explicit_id": { + "kms": "gcp", + "type": "int", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "gcp_int_rand_explicit_altname": { + "kms": "gcp", + "type": "int", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "gcp_int_det_auto_id": { + "kms": "gcp", + "type": "int", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "gcp_int_det_explicit_id": { + "kms": "gcp", + "type": "int", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "gcp_int_det_explicit_altname": { + "kms": "gcp", + "type": "int", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberInt": "123" + } + }, + "gcp_timestamp_rand_auto_id": { + "kms": "gcp", + "type": "timestamp", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "gcp_timestamp_rand_auto_altname": { + "kms": "gcp", + "type": "timestamp", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "gcp_timestamp_rand_explicit_id": { + "kms": "gcp", + "type": "timestamp", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "gcp_timestamp_rand_explicit_altname": { + "kms": "gcp", + "type": "timestamp", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "gcp_timestamp_det_auto_id": { + "kms": "gcp", + "type": "timestamp", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "gcp_timestamp_det_explicit_id": { + "kms": "gcp", + "type": "timestamp", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "gcp_timestamp_det_explicit_altname": { + "kms": "gcp", + "type": "timestamp", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$timestamp": { + "t": 0, + "i": 12345 + } + } + }, + "gcp_long_rand_auto_id": { + "kms": "gcp", + "type": "long", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "gcp_long_rand_auto_altname": { + "kms": "gcp", + "type": "long", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "gcp_long_rand_explicit_id": { + "kms": "gcp", + "type": "long", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "gcp_long_rand_explicit_altname": { + "kms": "gcp", + "type": "long", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "gcp_long_det_auto_id": { + "kms": "gcp", + "type": "long", + "algo": "det", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "gcp_long_det_explicit_id": { + "kms": "gcp", + "type": "long", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "gcp_long_det_explicit_altname": { + "kms": "gcp", + "type": "long", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberLong": "456" + } + }, + "gcp_decimal_rand_auto_id": { + "kms": "gcp", + "type": "decimal", + "algo": "rand", + "method": "auto", + "identifier": "id", + "allowed": true, + "value": { + "$numberDecimal": "1.234" + } + }, + "gcp_decimal_rand_auto_altname": { + "kms": "gcp", + "type": "decimal", + "algo": "rand", + "method": "auto", + "identifier": "altname", + "allowed": true, + "value": { + "$numberDecimal": "1.234" + } + }, + "gcp_decimal_rand_explicit_id": { + "kms": "gcp", + "type": "decimal", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": true, + "value": { + "$numberDecimal": "1.234" + } + }, + "gcp_decimal_rand_explicit_altname": { + "kms": "gcp", + "type": "decimal", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": true, + "value": { + "$numberDecimal": "1.234" + } + }, + "gcp_decimal_det_explicit_id": { + "kms": "gcp", + "type": "decimal", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$numberDecimal": "1.234" + } + }, + "gcp_decimal_det_explicit_altname": { + "kms": "gcp", + "type": "decimal", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$numberDecimal": "1.234" + } + }, + "gcp_minKey_rand_explicit_id": { + "kms": "gcp", + "type": "minKey", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "gcp_minKey_rand_explicit_altname": { + "kms": "gcp", + "type": "minKey", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "gcp_minKey_det_explicit_id": { + "kms": "gcp", + "type": "minKey", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "gcp_minKey_det_explicit_altname": { + "kms": "gcp", + "type": "minKey", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$minKey": 1 + } + }, + "gcp_maxKey_rand_explicit_id": { + "kms": "gcp", + "type": "maxKey", + "algo": "rand", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "gcp_maxKey_rand_explicit_altname": { + "kms": "gcp", + "type": "maxKey", + "algo": "rand", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "gcp_maxKey_det_explicit_id": { + "kms": "gcp", + "type": "maxKey", + "algo": "det", + "method": "explicit", + "identifier": "id", + "allowed": false, + "value": { + "$maxKey": 1 + } + }, + "gcp_maxKey_det_explicit_altname": { + "kms": "gcp", + "type": "maxKey", + "algo": "det", + "method": "explicit", + "identifier": "altname", + "allowed": false, + "value": { + "$maxKey": 1 + } }, "payload=0,algo=rand": { "kms": "local", @@ -2902,4 +6954,4 @@ "allowed": true, "value": "aaaaaaaaaaaaaaaa" } -} +} \ No newline at end of file diff --git a/test/spec/client-side-encryption/count.yml.template b/test/spec/client-side-encryption/count.yml.template deleted file mode 100644 index e4be281a81..0000000000 --- a/test/spec/client-side-encryption/count.yml.template +++ /dev/null @@ -1,62 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "Count with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: count - arguments: - filter: { encrypted_string: "string0" } - result: 2 - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - count: *collection_name - query: { encrypted_string: { $eq: {{ciphertext("string0", field="encrypted_string")}} } } - command_name: count - - description: "Count fails when filtering on a random encrypted field" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment - operations: - - name: count - arguments: - filter: { random: "abc" } - result: - errorContains: "Cannot query on fields encrypted with the randomized encryption" \ No newline at end of file diff --git a/test/spec/client-side-encryption/countDocuments.yml.template b/test/spec/client-side-encryption/countDocuments.yml.template deleted file mode 100644 index 44c0308969..0000000000 --- a/test/spec/client-side-encryption/countDocuments.yml.template +++ /dev/null @@ -1,60 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "countDocuments with deterministic encryption" - skipReason: "waiting on SERVER-39395" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: countDocuments - arguments: - filter: { encrypted_string: "string0" } - result: 1 - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - aggregate: *collection_name - pipeline: - - { $match: { encrypted_string: {{ciphertext("string0", field="encrypted_string")}} }} - - { $group: { _id: 1, n: { $sum: 1 }}} - command_name: aggregate - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - *doc1_encrypted \ No newline at end of file diff --git a/test/spec/client-side-encryption/delete.yml.template b/test/spec/client-side-encryption/delete.yml.template deleted file mode 100644 index 10084a0e25..0000000000 --- a/test/spec/client-side-encryption/delete.yml.template +++ /dev/null @@ -1,107 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "deleteOne with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: deleteOne - arguments: - filter: { encrypted_string: "string0" } - result: - deletedCount: 1 - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - delete: *collection_name - deletes: - - q: { encrypted_string: { $eq: {{ciphertext("string0", field="encrypted_string")}} } } - limit: 1 - ordered: true - command_name: delete - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc1_encrypted - - description: "deleteMany with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: deleteMany - arguments: - filter: { encrypted_string: { $in: [ "string0", "string1" ] } } - result: - deletedCount: 2 - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - delete: *collection_name - deletes: - - q: { encrypted_string: { $in : [ {{ciphertext("string0", field="encrypted_string")}}, {{ciphertext("string1", field="encrypted_string")}} ] } } - limit: 0 - ordered: true - command_name: delete - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: [] \ No newline at end of file diff --git a/test/spec/client-side-encryption/distinct.yml.template b/test/spec/client-side-encryption/distinct.yml.template deleted file mode 100644 index ea1e0b13a1..0000000000 --- a/test/spec/client-side-encryption/distinct.yml.template +++ /dev/null @@ -1,74 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc2_encrypted { _id: 3, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "distinct with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: distinct - arguments: - filter: { encrypted_string: "string0" } - fieldName: "encrypted_string" - result: - - "string0" - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - distinct: *collection_name - key: encrypted_string - query: { encrypted_string: {$eq: {{ciphertext("string0", field="encrypted_string")}} } } - command_name: distinct - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - *doc1_encrypted - - *doc2_encrypted - - description: "Distinct fails when filtering on a random encrypted field" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment - operations: - - name: distinct - arguments: - filter: { random: "abc" } - fieldName: "encrypted_string" - result: - errorContains: "Cannot query on fields encrypted with the randomized encryption" \ No newline at end of file diff --git a/test/spec/client-side-encryption/explain.yml.template b/test/spec/client-side-encryption/explain.yml.template deleted file mode 100644 index 731a4a7e0c..0000000000 --- a/test/spec/client-side-encryption/explain.yml.template +++ /dev/null @@ -1,65 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "Explain a find with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: runCommand - object: database - command_name: explain - arguments: - command: - explain: - find: *collection_name - filter: { encrypted_string : "string1" } - - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - explain: - find: *collection_name - filter: - { encrypted_string: { $eq: {{ciphertext("string1", field="encrypted_string")}} } } - verbosity: "allPlansExecution" - command_name: explain - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - *doc1_encrypted \ No newline at end of file diff --git a/test/spec/client-side-encryption/find.yml.template b/test/spec/client-side-encryption/find.yml.template deleted file mode 100644 index c2ba1b0084..0000000000 --- a/test/spec/client-side-encryption/find.yml.template +++ /dev/null @@ -1,121 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} , random: {{ciphertext("abc", field="random")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "Find with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: - { encrypted_string: "string0" } - result: - - &doc0 { _id: 1, encrypted_string: "string0" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - find: *collection_name - filter: - { encrypted_string: { $eq: {{ciphertext("string0", field="encrypted_string")}} } } - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - *doc1_encrypted - - description: "Find with $in with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: - { encrypted_string: { $in: [ "string0", "string1" ] } } - result: - - { _id: 1, encrypted_string: "string0" } - - &doc1 { _id: 2, encrypted_string: "string1", random: "abc" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - find: *collection_name - filter: - # Note, the values are re-ordered, but this is logically equivalent. - { encrypted_string: { $in: [ {{ciphertext("string0", field="encrypted_string")}}, {{ciphertext("string1", field="encrypted_string")}} ] } } - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - *doc1_encrypted - - description: "Find fails when filtering on a random encrypted field" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment - operations: - - name: find - arguments: - filter: { random: "abc" } - result: - errorContains: "Cannot query on fields encrypted with the randomized encryption" \ No newline at end of file diff --git a/test/spec/client-side-encryption/findOneAndDelete.yml.template b/test/spec/client-side-encryption/findOneAndDelete.yml.template deleted file mode 100644 index b2c8ee604b..0000000000 --- a/test/spec/client-side-encryption/findOneAndDelete.yml.template +++ /dev/null @@ -1,58 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "findOneAndDelete with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: findOneAndDelete - arguments: - filter: - { encrypted_string: "string0" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - findAndModify: *collection_name - query: - { encrypted_string: { $eq: {{ciphertext("string0", field="encrypted_string")}} } } - remove: true - command_name: findAndModify - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc1_encrypted \ No newline at end of file diff --git a/test/spec/client-side-encryption/findOneAndReplace.yml.template b/test/spec/client-side-encryption/findOneAndReplace.yml.template deleted file mode 100644 index dc8d185d14..0000000000 --- a/test/spec/client-side-encryption/findOneAndReplace.yml.template +++ /dev/null @@ -1,58 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "findOneAndReplace with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: findOneAndReplace - arguments: - filter: { encrypted_string: "string0" } - replacement: { encrypted_string: "string1" } - returnDocument: Before - result: { _id: 1, encrypted_string: "string0" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - findAndModify: *collection_name - query: { encrypted_string: { $eq: {{ciphertext("string0", field="encrypted_string")}} } } - update: { encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } - command_name: findAndModify - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } \ No newline at end of file diff --git a/test/spec/client-side-encryption/findOneAndUpdate.yml.template b/test/spec/client-side-encryption/findOneAndUpdate.yml.template deleted file mode 100644 index f70a83aeee..0000000000 --- a/test/spec/client-side-encryption/findOneAndUpdate.yml.template +++ /dev/null @@ -1,58 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "findOneAndUpdate with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: findOneAndUpdate - arguments: - filter: { encrypted_string: "string0" } - update: { $set: { encrypted_string: "string1" } } - returnDocument: Before - result: { _id: 1, encrypted_string: "string0" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - findAndModify: *collection_name - query: { encrypted_string: { $eq: {{ciphertext("string0", field="encrypted_string")}} } } - update: { $set: { encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } } - command_name: findAndModify - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } \ No newline at end of file diff --git a/test/spec/client-side-encryption/generate.py b/test/spec/client-side-encryption/generate.py deleted file mode 100644 index 39951ee3e2..0000000000 --- a/test/spec/client-side-encryption/generate.py +++ /dev/null @@ -1,470 +0,0 @@ -from bson import json_util -import bson -import os -import sys -import json -import yaml -from jinja2 import Template -description = """Generates YAML/JSON tests from a template file. - -This keeps key documents, JSONSchemas, and ciphertexts out of the -handwritten test files to make them more readable and easier -to change. -""" - - -if sys.version_info < (3, 0): - print("Use Python 3") - sys.exit(1) - -if len(sys.argv) != 2: - print(description) - print("usage: python generate.py /path/to/.yml.template") - sys.exit(1) - -filepath = sys.argv[1] -filedir = os.path.dirname(filepath) -(filename, ext) = os.path.splitext(os.path.basename(filepath)) -if ext != ".template": - print("Input file must end with .yml.template") - sys.exit(1) -(filename, ext) = os.path.splitext(filename) -if ext != ".yml": - print("Input file must end with .yml.template") - sys.exit(1) - -master_keys = { - "aws": { - "provider": "aws", - "key": "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0", - "region": "us-east-1" - }, - "local": {} -} - -keys = { - "basic": { - "status": 1, - "_id": { - "$binary": { - "base64": "AAAAAAAAAAAAAAAAAAAAAA==", - "subType": "04" - } - }, - "masterKey": master_keys["aws"], - "updateDate": { - "$date": { - "$numberLong": "1552949630483" - } - }, - "keyMaterial": { - "$binary": { - "base64": "AQICAHhQNmWG2CzOm1dq3kWLM+iDUZhEqnhJwH9wZVpuZ94A8gEqnsxXlR51T5EbEVezUqqKAAAAwjCBvwYJKoZIhvcNAQcGoIGxMIGuAgEAMIGoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDHa4jo6yp0Z18KgbUgIBEIB74sKxWtV8/YHje5lv5THTl0HIbhSwM6EqRlmBiFFatmEWaeMk4tO4xBX65eq670I5TWPSLMzpp8ncGHMmvHqRajNBnmFtbYxN3E3/WjxmdbOOe+OXpnGJPcGsftc7cB2shRfA4lICPnE26+oVNXT6p0Lo20nY5XC7jyCO", - "subType": "00" - } - }, - "creationDate": { - "$date": { - "$numberLong": "1552949630483" - } - }, - "keyAltNames": ["altname", "another_altname"] - }, - "different_id": { - "status": 1, - "_id": { - "$binary": { - "base64": "BBBBBBBBBBBBBBBBBBBBBB==", - "subType": "04" - } - }, - "masterKey": master_keys["aws"], - "updateDate": { - "$date": { - "$numberLong": "1552949630483" - } - }, - "keyMaterial": { - "$binary": { - "base64": "AQICAHhQNmWG2CzOm1dq3kWLM+iDUZhEqnhJwH9wZVpuZ94A8gF9FSYZL9Ze8TvTA3WBd3nmAAAAwjCBvwYJKoZIhvcNAQcGoIGxMIGuAgEAMIGoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDLV3GHktEO8AlpsYBwIBEIB7ho0DQF7hEQPRz/8b61AHm2czX53Y9BNu5z+oyGYsoP643M58aTGsaHQzkTaAmGKlZTAEOjJkRJ4gZoabVuv4g6aJqf4k4w8pK7iIgHwMNy4nbUAqOWmqtnKpHZgy6jcFN2DzZzHIi4SNFsCkFc6Aw30ixtvqIDQPAXMW", - "subType": "00" - } - }, - "creationDate": { - "$date": { - "$numberLong": "1552949630483" - } - }, - "keyAltNames": [] - }, - "local": { - "_id": { - "$binary": { - "base64": "AAAAAAAAAAAAAAAAAAAAAA==", - "subType": "04" - } - }, - "keyMaterial": { - "$binary": { - "base64": r"Ce9HSz/HKKGkIt4uyy+jDuKGA+rLC2cycykMo6vc8jXxqa1UVDYHWq1r+vZKbnnSRBfB981akzRKZCFpC05CTyFqDhXv6OnMjpG97OZEREGIsHEYiJkBW0jJJvfLLgeLsEpBzsro9FztGGXASxyxFRZFhXvHxyiLOKrdWfs7X1O/iK3pEoHMx6uSNSfUOgbebLfIqW7TO++iQS5g1xovXA==", - "subType": "00" - } - }, - "creationDate": {"$date": {"$numberLong": "1232739599082000"}}, - "updateDate": {"$date": {"$numberLong": "1232739599082000"}}, - "status": {"$numberInt": "0"}, - "masterKey": {"provider": "local"} - } -} - -schemas = { - "basic": { - "properties": { - "encrypted_w_altname": { - "encrypt": { - "keyId": "/altname", - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random" - } - }, - "encrypted_string": { - "encrypt": { - "keyId": [keys["basic"]["_id"]], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" - } - }, - "random": { - "encrypt": { - "keyId": [keys["basic"]["_id"]], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", - } - }, - # Same exact as fields as "encrypted_string" - "encrypted_string_equivalent": { - "encrypt": { - "keyId": [keys["basic"]["_id"]], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" - } - } - }, - "bsonType": "object" - }, - "encrypted_id": { - "properties": { - "_id": { - "encrypt": { - "keyId": [keys["basic"]["_id"]], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" - } - } - } - }, - "local": { - "properties": { - "encrypted_string": { - "encrypt": { - "keyId": [keys["local"]["_id"]], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" - } - }, - "random": { - "encrypt": { - "keyId": [keys["local"]["_id"]], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random", - } - } - }, - "bsonType": "object" - }, - "invalid_array": { - "properties": { - "encrypted_string": { - "encrypt": { - "keyId": [keys["basic"]["_id"]], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random" - } - } - }, - "bsonType": "array" - }, - "invalid_omitted_type": { - "properties": { - "foo": { - "properties": { - "bar": { - "encrypt": { - "keyId": [keys["basic"]["_id"]], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random" - } - } - } - } - } - }, - "invalid_siblings": { - "properties": { - "encrypted_string": { - "encrypt": { - "keyId": [keys["basic"]["_id"]], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random" - }, - "bsonType": "object" - } - } - }, - "logical_keywords": { - "anyOf": [ - { - "properties": { - "encrypted_string": { - "encrypt": { - "keyId": [keys["basic"]["_id"]], - "bsonType": "string", - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Random" - } - } - } - } - ] - }, - "noencryption": { - "properties": { - "test": { - "bsonType": "string" - } - }, - "bsonType": "object", - "required": ["test"] - }, -} - -ciphertexts = [ - { - "schema": "basic", - "field": "encrypted_string", - "plaintext": "string0", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAACwj+3zkv2VM+aTfk60RqhXq6a/77WlLwu/BxXFkL7EppGsju/m8f0x5kBDD3EZTtGALGXlym5jnpZAoSIkswHoA==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_string", - "plaintext": "string1", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAACDdw4KFz3ZLquhsbt7RmDjD0N67n0uSXx7IGnQNCLeIKvot6s/ouI21Eo84IOtb6lhwUNPlSEBNY0/hbszWAKJg==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_string", - "plaintext": "string2", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAACQ76HWOut3DZtQuV90hp1aaCpZn95vZIaWmn+wrBehcEtcFwyJlBdlyzDzZTWPZCPgiFq72Wvh6Y7VbpU9NAp3A==", - "subType": "06" - } - } - }, - { - "schema": "local", - "field": "encrypted_string", - "plaintext": "string0", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAACV/+zJmpqMU47yxS/xIVAviGi7wHDuFwaULAixEAoIh0xHz73UYOM3D8D44gcJn67EROjbz4ITpYzzlCJovDL0Q==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_objectId", - "plaintext": "test", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAAHmkTPqvzfHMWpvS1mEsrjOxVQ2dyihEgIFWD5E0eNEsiMBQsC0GuvjdqYRL5DHLFI1vKuGek7EYYp0Qyii/tHqA==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_symbol", - "plaintext": "test", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAAOOmvDmWjcuKsSCO7U/7t9HJ8eI73B6wduyMbdkvn7n7V4uTJes/j+BTtneSdyG2JHKHGkevWAJSIU2XoO66BSXw==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_int32", - "plaintext": "test", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAAQPNXJVXMEjGZnftMuf2INKufXCtQIRHdw5wTgn6QYt3ejcoAXyiwI4XIUizkpsob494qpt2in4tWeiO7b9zkA8Q==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_int64", - "plaintext": "test", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAACKWM29kOcLsfSLfJJ3SSmLr+wgrTtpu1lads1NzDz80AjMyrstw/GMdCuzX+AS+JS84Si2cT1WPMemTkBdVdGAw==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_binData", - "plaintext": "test", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAAFB/KHZQHaHHo8fctcl7v6kR+sLkJoTRx2cPSSck9ya+nbGROSeFhdhDRHaCzhV78fDEqnMDSVPNi+ZkbaIh46GQ==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_javascript", - "plaintext": "test", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAANrvMgJkTKWGMc9wt3E2RBR2Hu5gL9p+vIIdHe9FcOm99t1W480/oX1Gnd87ON3B399DuFaxi/aaIiQSo7gTX6Lw==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_timestamp", - "plaintext": "test", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAARJHaM4Gq3MpDTdBasBsEolQaOmxJQU1wsZVaSFAOLpEh1QihDglXI95xemePFMKhg+KNpFg7lw1ChCs2Wn/c26Q==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_regex", - "plaintext": "test", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAALVnxM4UqGhqf5eXw6nsS08am3YJrTf1EvjKitT8tyyMAbHsICIU3GUjuC7EBofCHbusvgo7pDyaClGostFz44nA==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_dbPointer", - "plaintext": "test", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAACKWM29kOcLsfSLfJJ3SSmLr+wgrTtpu1lads1NzDz80AjMyrstw/GMdCuzX+AS+JS84Si2cT1WPMemTkBdVdGAw==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "encrypted_date", - "plaintext": "test", - "data": { - "$binary": { - "base64": "AQAAAAAAAAAAAAAAAAAAAAAJ5sN7u6l97+DswfKTqZAijSTSOo5htinGKQKUD7pHNJYlLXGOkB4glrCu7ibu0g3344RHQ5yUp4YxMEa8GD+Snw==", - "subType": "06" - } - } - }, - { - "schema": "basic", - "field": "random", - "plaintext": "abc", - "data": { - "$binary": { - "base64": "AgAAAAAAAAAAAAAAAAAAAAACyfp+lXvKOi7f5vh6ZsCijLEaXFKq1X06RmyS98ZvmMQGixTw8HM1f/bGxZjGwvYwjXOkIEb7Exgb8p2KCDI5TQ==", - "subType": "06" - } - } - }, -] - - -def schema(name="basic"): - return schemas[name] - - -def schema_w_type(type): - schema = { - "properties": {}, - "bsonType": "object" - } - schema["properties"]["encrypted_" + type] = {"encrypt": { - "keyId": [keys["basic"]["_id"]], - "bsonType": type, - "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" - } - } - return schema - - -def key(name="basic"): - return keys[name] - - -def ciphertext(plaintext, field, schema="basic"): - for ciphertext in ciphertexts: - if schema == ciphertext["schema"] and field == ciphertext["field"] and plaintext == ciphertext["plaintext"]: - return ciphertext["data"] - raise Exception("Ciphertext needs to be pre-generated") - - -def local_provider(): - return { - "key": {"$binary": {"base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk", "subType": "00"}} - } - - -template = Template(open(filepath, "r").read()) -injections = { - "schema": schema, - "ciphertext": ciphertext, - "key": key, - "local_provider": local_provider, - "schema_w_type": schema_w_type -} - -rendered = template.render(**injections) -# check for valid YAML. -parsed = yaml.load(rendered) -# print as JSON. -as_json = json.dumps(parsed, indent=4) -open(f"{os.path.join(filedir,filename + '.yml')}", "w").write(rendered) -open(f"{os.path.join(filedir,filename + '.json')}", "w").write(as_json) -print(f"Generated {os.path.join(filedir,filename)}.yml|json") diff --git a/test/spec/client-side-encryption/getMore.yml.template b/test/spec/client-side-encryption/getMore.yml.template deleted file mode 100644 index 476ec6fdbd..0000000000 --- a/test/spec/client-side-encryption/getMore.yml.template +++ /dev/null @@ -1,69 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } - - &doc2_encrypted { _id: 3, encrypted_string: {{ciphertext("string2", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "getMore with encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - batchSize: 2 - filter: {} - results: - - { _id: 1, encrypted_string: "string0" } - - { _id: 2, encrypted_string: "string1" } - - { _id: 3, encrypted_string: "string2" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - find: *collection_name - batchSize: 2 - command_name: find - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - getMore: { $$type: "long" } - collection: *collection_name - batchSize: 2 - command_name: getMore - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - *doc1_encrypted - - *doc2_encrypted \ No newline at end of file diff --git a/test/spec/client-side-encryption/insert.yml.template b/test/spec/client-side-encryption/insert.yml.template deleted file mode 100644 index abc50e42e4..0000000000 --- a/test/spec/client-side-encryption/insert.yml.template +++ /dev/null @@ -1,104 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "insertOne with encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc0 { _id: 1, encrypted_string: "string0", random: "abc" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}}, random: { $$type: "binData" } } - ordered: true - command_name: insert - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - description: "insertMany with encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertMany - arguments: - documents: - - *doc0 - - &doc1 { _id: 2, encrypted_string: "string1" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - *doc0_encrypted - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } - ordered: true - command_name: insert - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - *doc1_encrypted \ No newline at end of file diff --git a/test/spec/client-side-encryption/keyAltName.yml.template b/test/spec/client-side-encryption/keyAltName.yml.template deleted file mode 100644 index 71bc5a976c..0000000000 --- a/test/spec/client-side-encryption/keyAltName.yml.template +++ /dev/null @@ -1,72 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "Insert with encryption using key alt name" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc0 { _id: 1, encrypted_w_altname: "string0", altname: "altname" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {$or: [ { _id: { $in: [] } }, { keyAltNames: { $in: [ "altname" ] } } ] } - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc0_encrypted { _id: 1, encrypted_w_altname: { $$type: "binData" }, altname: "altname" } - ordered: true - command_name: insert - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - description: "Replace with key alt name fails" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: {} - update: { $set: { encrypted_w_altname: "string0" } } - upsert: true - result: - errorContains: "A non-static (JSONPointer) keyId is not supported" - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: [] \ No newline at end of file diff --git a/test/spec/client-side-encryption/localKMS.yml.template b/test/spec/client-side-encryption/localKMS.yml.template deleted file mode 100644 index 1ff8acd25b..0000000000 --- a/test/spec/client-side-encryption/localKMS.yml.template +++ /dev/null @@ -1,56 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -json_schema: {{schema("local")}} -key_vault_data: [{{key("local")}}] - -tests: - - description: "Insert a document with auto encryption using local KMS provider" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - local: {{local_provider()}} - operations: - - name: insertOne - arguments: - document: &doc0 { _id: 1, encrypted_string: "string0", random: "abc" } - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: { $or: [ { _id: { $in: [ {{key("local")["_id"]}} ] } }, { keyAltNames: { $in: [] } } ] } - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string", schema="local")}}, random: { $$type: "binData" } } - ordered: true - command_name: insert - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted \ No newline at end of file diff --git a/test/spec/client-side-encryption/localSchema.yml.template b/test/spec/client-side-encryption/localSchema.yml.template deleted file mode 100644 index 09674d9269..0000000000 --- a/test/spec/client-side-encryption/localSchema.yml.template +++ /dev/null @@ -1,72 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -# configure an empty schema -json_schema: {} -key_vault_data: [{{key()}}] - -tests: - - description: "A local schema should override" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema('basic')}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc0 { _id: 1, encrypted_string: "string0" } - - name: find - arguments: - filter: { _id: 1 } - result: [*doc0] - expectations: - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: { _id: 1 } - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - description: "A local schema with no encryption is an error" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema('noencryption')}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: { _id: 1, encrypted_string: "string0" } - result: - errorContains: "JSON schema keyword 'required' is only allowed with a remote schema" \ No newline at end of file diff --git a/test/spec/client-side-encryption/malformedCiphertext.yml.template b/test/spec/client-side-encryption/malformedCiphertext.yml.template deleted file mode 100644 index 801c71806d..0000000000 --- a/test/spec/client-side-encryption/malformedCiphertext.yml.template +++ /dev/null @@ -1,69 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0 - _id: 1 - encrypted_string: - $binary: - base64: {{ ciphertext("string1", field="encrypted_string")["$binary"]["base64"] }} - subType: "00" - - _id: 2 - encrypted_string: - $binary: - base64: "AQ==" - subType: "06" - - _id: 3 - encrypted_string: - $binary: - base64: "AQAAa2V2aW4gYWxiZXJ0c29uCg==" - subType: "06" - -# Since test requires invalid data to be inserted, use a local schema. -key_vault_data: [{{key()}}] - -tests: - - description: "Wrong subtype" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{ schema() }} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: { _id: 1 } - result: - # gets returned without decryption - - *doc0 - - description: "Empty data" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{ schema() }} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: { _id: 2 } - result: - errorContains: "malformed ciphertext" - - description: "Malformed data" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{ schema() }} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: find - arguments: - filter: { _id: 3 } - result: - # ciphertext can only validate subtype (which is correct) - # but takes the 16 byte UUID to look up key. Fails to find. - errorContains: "did not provide all keys" \ No newline at end of file diff --git a/test/spec/client-side-encryption/maxWireVersion.yml.template b/test/spec/client-side-encryption/maxWireVersion.yml.template deleted file mode 100644 index 59ecddea42..0000000000 --- a/test/spec/client-side-encryption/maxWireVersion.yml.template +++ /dev/null @@ -1,20 +0,0 @@ -runOn: - - maxServerVersion: "4.0" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -key_vault_data: [{{key()}}] - -tests: - - description: "operation fails with maxWireVersion < 8" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: { encrypted_string: "string0" } - result: - errorContains: "Auto-encryption requires a minimum MongoDB version of 4.2" \ No newline at end of file diff --git a/test/spec/client-side-encryption/missingKey.yml.template b/test/spec/client-side-encryption/missingKey.yml.template deleted file mode 100644 index 128b95fc7a..0000000000 --- a/test/spec/client-side-encryption/missingKey.yml.template +++ /dev/null @@ -1,50 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "Insert with encryption on a missing key" - clientOptions: - autoEncryptOpts: - keyVaultNamespace: "admin.different" - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc0 { _id: 1, encrypted_string: "string0", random: "abc" } - result: - errorContains: "did not provide all keys" - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: [] - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "different" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: different - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find \ No newline at end of file diff --git a/test/spec/client-side-encryption/replaceOne.yml.template b/test/spec/client-side-encryption/replaceOne.yml.template deleted file mode 100644 index b6f2152cc3..0000000000 --- a/test/spec/client-side-encryption/replaceOne.yml.template +++ /dev/null @@ -1,64 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "replaceOne with encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: replaceOne - arguments: - filter: { encrypted_string: "string0" } - replacement: { encrypted_string: "string1", random: "abc" } - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - update: *collection_name - updates: - - q: { encrypted_string: { $eq: {{ciphertext("string0", field="encrypted_string")}} } } - u: { encrypted_string: {{ciphertext("string1", field="encrypted_string")}}, random: { $$type: "binData" } } - multi: false - upsert: false - ordered: true - command_name: update - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1, encrypted_string: {{ciphertext("string1", field="encrypted_string")}}, random: { $$type: "binData" } } \ No newline at end of file diff --git a/test/spec/client-side-encryption/README.rst b/test/spec/client-side-encryption/tests/README.rst similarity index 78% rename from test/spec/client-side-encryption/README.rst rename to test/spec/client-side-encryption/tests/README.rst index 00d6cf45c1..c22585325c 100644 --- a/test/spec/client-side-encryption/README.rst +++ b/test/spec/client-side-encryption/tests/README.rst @@ -75,7 +75,11 @@ Each YAML file has the following keys: - ``kmsProviders`` A dictionary of KMS providers to set on the key vault ("aws" or "local") - - ``aws`` The AWS KMS provider. An empty object. Drivers MUST fill in AWS credentials from the environment. + - ``aws`` The AWS KMS provider. An empty object. Drivers MUST fill in AWS credentials (`accessKeyId`, `secretAccessKey`) from the environment. + + - ``azure`` The Azure KMS provider credentials. An empty object. Drivers MUST fill in Azure credentials (`tenantId`, `clientId`, and `clientSecret`) from the environment. + + - ``gcp`` The GCP KMS provider credentials. An empty object. Drivers MUST fill in GCP credentials (`email`, `privateKey`) from the environment. - ``local`` The local KMS provider. @@ -143,7 +147,7 @@ Then for each element in ``tests``: #. Create a **new** MongoClient using ``clientOptions``. - #. If ``autoEncryptOpts`` includes ``aws`` as a KMS provider, pass in AWS credentials from the environment. + #. If ``autoEncryptOpts`` includes ``aws``, ``azure``, and/or ``gcp`` as a KMS provider, pass in credentials from the environment. #. If ``autoEncryptOpts`` does not include ``keyVaultNamespace``, default it to ``keyvault.datakeys``. #. For each element in ``operations``: @@ -224,13 +228,25 @@ First, perform the setup. - A MongoClient configured with auto encryption (referred to as ``client_encrypted``) - A ``ClientEncryption`` object (referred to as ``client_encryption``) - Configure both objects with ``aws`` and the ``local`` KMS providers as follows: + Configure both objects with the following KMS providers: .. code:: javascript { - "aws": { }, - "local": { "key": } + "aws": { + "accessKeyId": , + "secretAccessKey": + }, + "azure": { + "tenantId": , + "clientId": , + "clientSecret": , + }, + "gcp": { + "email": , + "privateKey": , + } + "local": { "key": } } Configure both objects with ``keyVaultNamespace`` set to ``keyvault.datakeys``. @@ -256,58 +272,61 @@ First, perform the setup. Configure ``client_encryption`` with the ``keyVaultClient`` of the previously created ``client``. -Then, test creating and using data keys from a ``local`` KMS provider: +For each KMS provider (``aws``, ``azure``, ``gcp``, and ``local``), referred to as ``provider_name``, run the following test. -#. Call ``client_encryption.createDataKey()`` with the ``local`` KMS provider and keyAltNames set to ``["local_altname"]``. +#. Call ``client_encryption.createDataKey()``. - - Expect a BSON binary with subtype 4 to be returned, referred to as ``local_datakey_id``. - - Use ``client`` to run a ``find`` on ``keyvault.datakeys`` by querying with the ``_id`` set to the ``local_datakey_id``. - - Expect that exactly one document is returned with the "masterKey.provider" equal to "local". - - Check that ``client`` captured a command_started event for the ``insert`` command containing a majority writeConcern. + - Set keyAltNames to ``["_altname"]``. + - Set the masterKey document based on ``provider_name``. -#. Call ``client_encryption.encrypt()`` with the value "hello local", the algorithm ``AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic``, and the ``key_id`` of ``local_datakey_id``. + For "aws": - - Expect the return value to be a BSON binary subtype 6, referred to as ``local_encrypted``. - - Use ``client_encrypted`` to insert ``{ _id: "local", "value": }`` into ``db.coll``. - - Use ``client_encrypted`` to run a find querying with ``_id`` of "local" and expect ``value`` to be "hello local". + .. code:: javascript -#. Call ``client_encryption.encrypt()`` with the value "hello local", the algorithm ``AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic``, and the ``key_alt_name`` of ``local_altname``. + { + region: "us-east-1", + key: "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0" + } - - Expect the return value to be a BSON binary subtype 6. Expect the value to exactly match the value of ``local_encrypted``. + For "azure": -Then, repeat the above tests with the ``aws`` KMS provider: + .. code:: javascript -#. Call ``client_encryption.createDataKey()`` with the ``aws`` KMS provider, keyAltNames set to ``["aws_altname"]``, and ``masterKey`` as follows: + { + "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", + "keyName": "key-name-csfle" + } - .. code:: javascript + For "gcp": - { - region: "us-east-1", - key: "arn:aws:kms:us-east-1:579766882180:key/89fcc2c4-08b0-4bd9-9f25-e30687b580d0" - } + .. code:: javascript + { + "projectId": "devprod-drivers", + "location": "global", + "keyRing": "key-ring-csfle", + "keyName": "key-name-csfle" + } - - Expect a BSON binary with subtype 4 to be returned, referred to as ``aws_datakey_id``. - - Use ``client`` to run a ``find`` on ``keyvault.datakeys`` by querying with the ``_id`` set to the ``aws_datakey_id``. - - Expect that exactly one document is returned with the "masterKey.provider" equal to "aws". + For "local", do not set a masterKey document. + - Expect a BSON binary with subtype 4 to be returned, referred to as ``datakey_id``. + - Use ``client`` to run a ``find`` on ``keyvault.datakeys`` by querying with the ``_id`` set to the ``datakey_id``. + - Expect that exactly one document is returned with the "masterKey.provider" equal to ``provider_name``. - Check that ``client`` captured a command_started event for the ``insert`` command containing a majority writeConcern. -#. Call ``client_encryption.encrypt()`` with the value "hello aws", the algorithm ``AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic``, and the ``key_id`` of ``aws_datakey_id``. - - - Expect the return value to be a BSON binary subtype 6, referred to as ``aws_encrypted``. - - Use ``client_encrypted`` to insert ``{ _id: "aws", "value": }`` into ``db.coll``. - - Use ``client_encrypted`` to run a find querying with ``_id`` of "aws" and expect ``value`` to be "hello aws". - -#. Call ``client_encryption.encrypt()`` with the value "hello aws", the algorithm ``AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic``, and the ``key_alt_name`` of ``aws_altname``. +#. Call ``client_encryption.encrypt()`` with the value "hello ", the algorithm ``AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic``, and the ``key_id`` of ``datakey_id``. - - Expect the return value to be a BSON binary subtype 6. Expect the value to exactly match the value of ``aws_encrypted``. + - Expect the return value to be a BSON binary subtype 6, referred to as ``encrypted``. + - Use ``client_encrypted`` to insert ``{ _id: "", "value": }`` into ``db.coll``. + - Use ``client_encrypted`` to run a find querying with ``_id`` of "" and expect ``value`` to be "hello ". +#. Call ``client_encryption.encrypt()`` with the value "hello ", the algorithm ``AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic``, and the ``key_alt_name`` of ``_altname``. -Then, run the following final tests: + - Expect the return value to be a BSON binary subtype 6. Expect the value to exactly match the value of ``encrypted``. #. Test explicit encrypting an auto encrypted field. - - Use ``client_encrypted`` to attempt to insert ``{ "encrypted_placeholder": (local_encrypted) }`` + - Use ``client_encrypted`` to attempt to insert ``{ "encrypted_placeholder": }`` - Expect an exception to be thrown, since this is an attempt to auto encrypt an already encrypted value. @@ -436,19 +455,21 @@ The corpus test exhaustively enumerates all ways to encrypt all BSON value types 2. Using ``client``, drop and create the collection ``db.coll`` configured with the included JSON schema `corpus/corpus-schema.json <../corpus/corpus-schema.json>`_. -3. Using ``client``, drop the collection ``keyvault.datakeys``. Insert the documents `corpus/corpus-key-local.json <../corpus/corpus-key-local.json>`_ and `corpus/corpus-key-aws.json <../corpus/corpus-key-aws.json>`_. +3. Using ``client``, drop the collection ``keyvault.datakeys``. Insert the documents `corpus/corpus-key-local.json <../corpus/corpus-key-local.json>`_, `corpus/corpus-key-aws.json <../corpus/corpus-key-aws.json>`_, `corpus/corpus-key-azure.json <../corpus/corpus-key-azure.json>`_, and `corpus/corpus-key-gcp.json <../corpus/corpus-key-gcp.json>`_. 4. Create the following: - A MongoClient configured with auto encryption (referred to as ``client_encrypted``) - A ``ClientEncryption`` object (referred to as ``client_encryption``) - Configure both objects with ``aws`` and the ``local`` KMS providers as follows: + Configure both objects with ``aws``, ``azure``, ``gcp``, and ``local`` KMS providers as follows: .. code:: javascript { "aws": { }, + "azure": { }, + "gcp": { }, "local": { "key": } } @@ -462,7 +483,7 @@ The corpus test exhaustively enumerates all ways to encrypt all BSON value types 5. Load `corpus/corpus.json <../corpus/corpus.json>`_ to a variable named ``corpus``. The corpus contains subdocuments with the following fields: - - ``kms`` is either ``aws`` or ``local`` + - ``kms`` is either ``aws``, ``azure``, ``gcp``, or ``local`` - ``type`` is a BSON type string `names coming from here `_) - ``algo`` is either ``rand`` or ``det`` for random or deterministic encryption - ``method`` is either ``auto``, for automatic encryption or ``explicit`` for explicit encryption @@ -473,7 +494,7 @@ The corpus test exhaustively enumerates all ways to encrypt all BSON value types Create a new BSON document, named ``corpus_copied``. Iterate over each field of ``corpus``. - - If the field name is ``_id``, ``altname_aws`` and ``altname_local``, copy the field to ``corpus_copied``. + - If the field name is ``_id``, ``altname_aws``, ``altname_local``, ``altname_azure``, or ``altname_gcp``, copy the field to ``corpus_copied``. - If ``method`` is ``auto``, copy the field to ``corpus_copied``. - If ``method`` is ``explicit``, use ``client_encryption`` to explicitly encrypt the value. @@ -482,11 +503,15 @@ The corpus test exhaustively enumerates all ways to encrypt all BSON value types - If ``kms`` is ``local`` set the key_id to the UUID with base64 value ``LOCALAAAAAAAAAAAAAAAAA==``. - If ``kms`` is ``aws`` set the key_id to the UUID with base64 value ``AWSAAAAAAAAAAAAAAAAAAA==``. + - If ``kms`` is ``azure`` set the key_id to the UUID with base64 value ``AZUREAAAAAAAAAAAAAAAAA==``. + - If ``kms`` is ``gcp`` set the key_id to the UUID with base64 value ``GCPAAAAAAAAAAAAAAAAAAA==``. - If ``identifier`` is ``altname`` - If ``kms`` is ``local`` set the key_alt_name to "local". - If ``kms`` is ``aws`` set the key_alt_name to "aws". + - If ``kms`` is ``azure`` set the key_alt_name to "azure". + - If ``kms`` is ``gcp`` set the key_alt_name to "gcp". If ``allowed`` is true, copy the field and encrypted value to ``corpus_copied``. If ``allowed`` is false. verify that an exception is thrown. Copy the unencrypted value to to ``corpus_copied``. @@ -511,21 +536,63 @@ The corpus test exhaustively enumerates all ways to encrypt all BSON value types Custom Endpoint Test ~~~~~~~~~~~~~~~~~~~~ -Data keys created with AWS KMS may specify a custom endpoint to contact (instead of the default endpoint derived from the AWS region). +Setup +````` -1. Create a ``ClientEncryption`` object (referred to as ``client_encryption``) +For each test cases, start by creating two ``ClientEncryption`` objects. Recreate the ``ClientEncryption`` objects for each test case. - Configure with ``aws`` KMS providers as follows: +Create a ``ClientEncryption`` object (referred to as ``client_encryption``) - .. code:: javascript +Configure with ``keyVaultNamespace`` set to ``keyvault.datakeys``, and a default MongoClient as the ``keyVaultClient``. - { - "aws": { } - } +Configure with KMS providers as follows: - Configure with ``keyVaultNamespace`` set to ``keyvault.datakeys``, and a default MongoClient as the ``keyVaultClient``. +.. code:: javascript -2. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: + { + "aws": { + "accessKeyId": , + "secretAccessKey": + }, + "azure": { + "tenantId": , + "clientId": , + "clientSecret": , + "identityPlatformEndpoint": "login.microsoftonline.com:443" + }, + "gcp": { + "email": , + "privateKey": , + "endpoint": "oauth2.googleapis.com:443" + } + } + +Create a ``ClientEncryption`` object (referred to as ``client_encryption_invalid``) + +Configure with ``keyVaultNamespace`` set to ``keyvault.datakeys``, and a default MongoClient as the ``keyVaultClient``. + +Configure with KMS providers as follows: + +.. code:: javascript + + { + "azure": { + "tenantId": , + "clientId": , + "clientSecret": , + "identityPlatformEndpoint": "example.com:443" + }, + "gcp": { + "email": , + "privateKey": , + "endpoint": "example.com:443" + } + } + +Test cases +`````````` + +1. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: .. code:: javascript @@ -536,7 +603,7 @@ Data keys created with AWS KMS may specify a custom endpoint to contact (instead Expect this to succeed. Use the returned UUID of the key to explicitly encrypt and decrypt the string "test" to validate it works. -3. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: +2. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: .. code:: javascript @@ -548,7 +615,7 @@ Data keys created with AWS KMS may specify a custom endpoint to contact (instead Expect this to succeed. Use the returned UUID of the key to explicitly encrypt and decrypt the string "test" to validate it works. -4. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: +3. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: .. code:: javascript @@ -560,7 +627,7 @@ Data keys created with AWS KMS may specify a custom endpoint to contact (instead Expect this to succeed. Use the returned UUID of the key to explicitly encrypt and decrypt the string "test" to validate it works. -5. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: +4. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: .. code:: javascript @@ -572,7 +639,7 @@ Data keys created with AWS KMS may specify a custom endpoint to contact (instead Expect this to fail with a socket connection error. -6. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: +5. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: .. code:: javascript @@ -584,7 +651,7 @@ Data keys created with AWS KMS may specify a custom endpoint to contact (instead Expect this to fail with an exception with a message containing the string: "us-east-1" -7. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: +6. Call `client_encryption.createDataKey()` with "aws" as the provider and the following masterKey: .. code:: javascript @@ -596,6 +663,49 @@ Data keys created with AWS KMS may specify a custom endpoint to contact (instead Expect this to fail with an exception with a message containing the string: "parse error" +7. Call `client_encryption.createDataKey()` with "azure" as the provider and the following masterKey: + + .. code:: javascript + + { + "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", + "keyName": "key-name-csfle" + } + + Expect this to succeed. Use the returned UUID of the key to explicitly encrypt and decrypt the string "test" to validate it works. + + Call ``client_encryption_invalid.createDataKey()`` with the same masterKey. Expect this to fail with an exception with a message containing the string: "parse error". + +8. Call `client_encryption.createDataKey()` with "gcp" as the provider and the following masterKey: + + .. code:: javascript + + { + "projectId": "devprod-drivers", + "location": "global", + "keyRing": "key-ring-csfle", + "keyName": "key-name-csfle", + "endpoint": "cloudkms.googleapis.com:443" + } + + Expect this to succeed. Use the returned UUID of the key to explicitly encrypt and decrypt the string "test" to validate it works. + + Call ``client_encryption_invalid.createDataKey()`` with the same masterKey. Expect this to fail with an exception with a message containing the string: "parse error". + +9. Call `client_encryption.createDataKey()` with "gcp" as the provider and the following masterKey: + + .. code:: javascript + + { + "projectId": "devprod-drivers", + "location": "global", + "keyRing": "key-ring-csfle", + "keyName": "key-name-csfle", + "endpoint": "example.com:443" + } + + Expect this to fail with an exception with a message containing the string: "Invalid KMS response". + Bypass spawning mongocryptd ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/test/spec/client-side-encryption/aggregate.json b/test/spec/client-side-encryption/tests/aggregate.json similarity index 100% rename from test/spec/client-side-encryption/aggregate.json rename to test/spec/client-side-encryption/tests/aggregate.json diff --git a/test/spec/client-side-encryption/aggregate.yml b/test/spec/client-side-encryption/tests/aggregate.yml similarity index 100% rename from test/spec/client-side-encryption/aggregate.yml rename to test/spec/client-side-encryption/tests/aggregate.yml diff --git a/test/spec/client-side-encryption/tests/azureKMS.json b/test/spec/client-side-encryption/tests/azureKMS.json new file mode 100644 index 0000000000..97af4c8ecf --- /dev/null +++ b/test/spec/client-side-encryption/tests/azureKMS.json @@ -0,0 +1,222 @@ +{ + "runOn": [ + { + "minServerVersion": "4.1.10" + } + ], + "database_name": "default", + "collection_name": "default", + "data": [], + "json_schema": { + "properties": { + "encrypted_string_aws": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AAAAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } + }, + "encrypted_string_azure": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZURE+AAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } + }, + "encrypted_string_gcp": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCP+AAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } + }, + "encrypted_string_local": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AAAAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } + } + }, + "bsonType": "object" + }, + "key_vault_data": [ + { + "_id": { + "$binary": { + "base64": "AZURE+AAAAAAAAAAAAAAAA==", + "subType": "04" + } + }, + "keyMaterial": { + "$binary": { + "base64": "n+HWZ0ZSVOYA3cvQgP7inN4JSXfOH85IngmeQxRpQHjCCcqT3IFqEWNlrsVHiz3AELimHhX4HKqOLWMUeSIT6emUDDoQX9BAv8DR1+E1w4nGs/NyEneac78EYFkK3JysrFDOgl2ypCCTKAypkn9CkAx1if4cfgQE93LW4kczcyHdGiH36CIxrCDGv1UzAvERN5Qa47DVwsM6a+hWsF2AAAJVnF0wYLLJU07TuRHdMrrphPWXZsFgyV+lRqJ7DDpReKNO8nMPLV/mHqHBHGPGQiRdb9NoJo8CvokGz4+KE8oLwzKf6V24dtwZmRkrsDV4iOhvROAzz+Euo1ypSkL3mw==", + "subType": "00" + } + }, + "creationDate": { + "$date": { + "$numberLong": "1601573901680" + } + }, + "updateDate": { + "$date": { + "$numberLong": "1601573901680" + } + }, + "status": { + "$numberInt": "0" + }, + "masterKey": { + "provider": "azure", + "keyVaultEndpoint": "key-vault-csfle.vault.azure.net", + "keyName": "key-name-csfle" + }, + "keyAltNames": [ + "altname", + "azure_altname" + ] + } + ], + "tests": [ + { + "description": "Insert a document with auto encryption using Azure KMS provider", + "clientOptions": { + "autoEncryptOpts": { + "kmsProviders": { + "azure": {} + } + } + }, + "operations": [ + { + "name": "insertOne", + "arguments": { + "document": { + "_id": 1, + "encrypted_string_azure": "string0" + } + } + } + ], + "expectations": [ + { + "command_started_event": { + "command": { + "listCollections": 1, + "filter": { + "name": "default" + } + }, + "command_name": "listCollections" + } + }, + { + "command_started_event": { + "command": { + "listCollections": 1, + "filter": { + "name": "datakeys" + }, + "$db": "keyvault" + }, + "command_name": "listCollections" + } + }, + { + "command_started_event": { + "command": { + "find": "datakeys", + "filter": { + "$or": [ + { + "_id": { + "$in": [ + { + "$binary": { + "base64": "AZURE+AAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ] + } + }, + { + "keyAltNames": { + "$in": [] + } + } + ] + }, + "$db": "keyvault" + }, + "command_name": "find" + } + }, + { + "command_started_event": { + "command": { + "insert": "default", + "documents": [ + { + "_id": 1, + "encrypted_string_azure": { + "$binary": { + "base64": "AQGVERPgAAAAAAAAAAAAAAAC5DbBSwPwfSlBrDtRuglvNvCXD1KzDuCKY2P+4bRFtHDjpTOE2XuytPAUaAbXf1orsPq59PVZmsbTZbt2CB8qaQ==", + "subType": "06" + } + } + } + ], + "ordered": true + }, + "command_name": "insert" + } + } + ], + "outcome": { + "collection": { + "data": [ + { + "_id": 1, + "encrypted_string_azure": { + "$binary": { + "base64": "AQGVERPgAAAAAAAAAAAAAAAC5DbBSwPwfSlBrDtRuglvNvCXD1KzDuCKY2P+4bRFtHDjpTOE2XuytPAUaAbXf1orsPq59PVZmsbTZbt2CB8qaQ==", + "subType": "06" + } + } + } + ] + } + } + } + ] +} diff --git a/test/spec/client-side-encryption/tests/azureKMS.yml b/test/spec/client-side-encryption/tests/azureKMS.yml new file mode 100644 index 0000000000..a2fbb7111a --- /dev/null +++ b/test/spec/client-side-encryption/tests/azureKMS.yml @@ -0,0 +1,53 @@ +runOn: + - minServerVersion: "4.1.10" +database_name: &database_name "default" +collection_name: &collection_name "default" + +data: [] +json_schema: {'properties': {'encrypted_string_aws': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'encrypted_string_azure': {'encrypt': {'keyId': [{'$binary': {'base64': 'AZURE+AAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'encrypted_string_gcp': {'encrypt': {'keyId': [{'$binary': {'base64': 'GCP+AAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'encrypted_string_local': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}}, 'bsonType': 'object'} +key_vault_data: [{'_id': {'$binary': {'base64': 'AZURE+AAAAAAAAAAAAAAAA==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'n+HWZ0ZSVOYA3cvQgP7inN4JSXfOH85IngmeQxRpQHjCCcqT3IFqEWNlrsVHiz3AELimHhX4HKqOLWMUeSIT6emUDDoQX9BAv8DR1+E1w4nGs/NyEneac78EYFkK3JysrFDOgl2ypCCTKAypkn9CkAx1if4cfgQE93LW4kczcyHdGiH36CIxrCDGv1UzAvERN5Qa47DVwsM6a+hWsF2AAAJVnF0wYLLJU07TuRHdMrrphPWXZsFgyV+lRqJ7DDpReKNO8nMPLV/mHqHBHGPGQiRdb9NoJo8CvokGz4+KE8oLwzKf6V24dtwZmRkrsDV4iOhvROAzz+Euo1ypSkL3mw==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1601573901680'}}, 'updateDate': {'$date': {'$numberLong': '1601573901680'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'azure', 'keyVaultEndpoint': 'key-vault-csfle.vault.azure.net', 'keyName': 'key-name-csfle'}, 'keyAltNames': ['altname', 'azure_altname']}] + +tests: + - description: "Insert a document with auto encryption using Azure KMS provider" + clientOptions: + autoEncryptOpts: + kmsProviders: + azure: {} + operations: + - name: insertOne + arguments: + document: &doc0 { _id: 1, encrypted_string_azure: "string0" } + expectations: + # Auto encryption will request the collection info. + - command_started_event: + command: + listCollections: 1 + filter: + name: *collection_name + command_name: listCollections + - command_started_event: + command: + listCollections: 1 + filter: + name: "datakeys" + $db: keyvault + command_name: listCollections + # Then key is fetched from the key vault. + - command_started_event: + command: + find: datakeys + filter: { $or: [ { _id: { $in: [ {'$binary': {'base64': 'AZURE+AAAAAAAAAAAAAAAA==', 'subType': '04'}} ] } }, { keyAltNames: { $in: [] } } ] } + $db: keyvault + command_name: find + - command_started_event: + command: + insert: *collection_name + documents: + - &doc0_encrypted { _id: 1, encrypted_string_azure: {'$binary': {'base64': 'AQGVERPgAAAAAAAAAAAAAAAC5DbBSwPwfSlBrDtRuglvNvCXD1KzDuCKY2P+4bRFtHDjpTOE2XuytPAUaAbXf1orsPq59PVZmsbTZbt2CB8qaQ==', 'subType': '06'}} } + ordered: true + command_name: insert + outcome: + collection: + # Outcome is checked using a separate MongoClient without auto encryption. + data: + - *doc0_encrypted \ No newline at end of file diff --git a/test/spec/client-side-encryption/badQueries.json b/test/spec/client-side-encryption/tests/badQueries.json similarity index 100% rename from test/spec/client-side-encryption/badQueries.json rename to test/spec/client-side-encryption/tests/badQueries.json diff --git a/test/spec/client-side-encryption/badQueries.yml b/test/spec/client-side-encryption/tests/badQueries.yml similarity index 100% rename from test/spec/client-side-encryption/badQueries.yml rename to test/spec/client-side-encryption/tests/badQueries.yml diff --git a/test/spec/client-side-encryption/badSchema.json b/test/spec/client-side-encryption/tests/badSchema.json similarity index 100% rename from test/spec/client-side-encryption/badSchema.json rename to test/spec/client-side-encryption/tests/badSchema.json diff --git a/test/spec/client-side-encryption/badSchema.yml b/test/spec/client-side-encryption/tests/badSchema.yml similarity index 100% rename from test/spec/client-side-encryption/badSchema.yml rename to test/spec/client-side-encryption/tests/badSchema.yml diff --git a/test/spec/client-side-encryption/basic.json b/test/spec/client-side-encryption/tests/basic.json similarity index 100% rename from test/spec/client-side-encryption/basic.json rename to test/spec/client-side-encryption/tests/basic.json diff --git a/test/spec/client-side-encryption/basic.yml b/test/spec/client-side-encryption/tests/basic.yml similarity index 100% rename from test/spec/client-side-encryption/basic.yml rename to test/spec/client-side-encryption/tests/basic.yml diff --git a/test/spec/client-side-encryption/bulk.json b/test/spec/client-side-encryption/tests/bulk.json similarity index 100% rename from test/spec/client-side-encryption/bulk.json rename to test/spec/client-side-encryption/tests/bulk.json diff --git a/test/spec/client-side-encryption/bulk.yml b/test/spec/client-side-encryption/tests/bulk.yml similarity index 100% rename from test/spec/client-side-encryption/bulk.yml rename to test/spec/client-side-encryption/tests/bulk.yml diff --git a/test/spec/client-side-encryption/bypassAutoEncryption.json b/test/spec/client-side-encryption/tests/bypassAutoEncryption.json similarity index 100% rename from test/spec/client-side-encryption/bypassAutoEncryption.json rename to test/spec/client-side-encryption/tests/bypassAutoEncryption.json diff --git a/test/spec/client-side-encryption/bypassAutoEncryption.yml b/test/spec/client-side-encryption/tests/bypassAutoEncryption.yml similarity index 100% rename from test/spec/client-side-encryption/bypassAutoEncryption.yml rename to test/spec/client-side-encryption/tests/bypassAutoEncryption.yml diff --git a/test/spec/client-side-encryption/bypassedCommand.json b/test/spec/client-side-encryption/tests/bypassedCommand.json similarity index 100% rename from test/spec/client-side-encryption/bypassedCommand.json rename to test/spec/client-side-encryption/tests/bypassedCommand.json diff --git a/test/spec/client-side-encryption/bypassedCommand.yml b/test/spec/client-side-encryption/tests/bypassedCommand.yml similarity index 100% rename from test/spec/client-side-encryption/bypassedCommand.yml rename to test/spec/client-side-encryption/tests/bypassedCommand.yml diff --git a/test/spec/client-side-encryption/count.json b/test/spec/client-side-encryption/tests/count.json similarity index 100% rename from test/spec/client-side-encryption/count.json rename to test/spec/client-side-encryption/tests/count.json diff --git a/test/spec/client-side-encryption/count.yml b/test/spec/client-side-encryption/tests/count.yml similarity index 100% rename from test/spec/client-side-encryption/count.yml rename to test/spec/client-side-encryption/tests/count.yml diff --git a/test/spec/client-side-encryption/countDocuments.json b/test/spec/client-side-encryption/tests/countDocuments.json similarity index 100% rename from test/spec/client-side-encryption/countDocuments.json rename to test/spec/client-side-encryption/tests/countDocuments.json diff --git a/test/spec/client-side-encryption/countDocuments.yml b/test/spec/client-side-encryption/tests/countDocuments.yml similarity index 100% rename from test/spec/client-side-encryption/countDocuments.yml rename to test/spec/client-side-encryption/tests/countDocuments.yml diff --git a/test/spec/client-side-encryption/delete.json b/test/spec/client-side-encryption/tests/delete.json similarity index 100% rename from test/spec/client-side-encryption/delete.json rename to test/spec/client-side-encryption/tests/delete.json diff --git a/test/spec/client-side-encryption/delete.yml b/test/spec/client-side-encryption/tests/delete.yml similarity index 100% rename from test/spec/client-side-encryption/delete.yml rename to test/spec/client-side-encryption/tests/delete.yml diff --git a/test/spec/client-side-encryption/distinct.json b/test/spec/client-side-encryption/tests/distinct.json similarity index 100% rename from test/spec/client-side-encryption/distinct.json rename to test/spec/client-side-encryption/tests/distinct.json diff --git a/test/spec/client-side-encryption/distinct.yml b/test/spec/client-side-encryption/tests/distinct.yml similarity index 100% rename from test/spec/client-side-encryption/distinct.yml rename to test/spec/client-side-encryption/tests/distinct.yml diff --git a/test/spec/client-side-encryption/explain.json b/test/spec/client-side-encryption/tests/explain.json similarity index 100% rename from test/spec/client-side-encryption/explain.json rename to test/spec/client-side-encryption/tests/explain.json diff --git a/test/spec/client-side-encryption/explain.yml b/test/spec/client-side-encryption/tests/explain.yml similarity index 100% rename from test/spec/client-side-encryption/explain.yml rename to test/spec/client-side-encryption/tests/explain.yml diff --git a/test/spec/client-side-encryption/find.json b/test/spec/client-side-encryption/tests/find.json similarity index 100% rename from test/spec/client-side-encryption/find.json rename to test/spec/client-side-encryption/tests/find.json diff --git a/test/spec/client-side-encryption/find.yml b/test/spec/client-side-encryption/tests/find.yml similarity index 100% rename from test/spec/client-side-encryption/find.yml rename to test/spec/client-side-encryption/tests/find.yml diff --git a/test/spec/client-side-encryption/findOneAndDelete.json b/test/spec/client-side-encryption/tests/findOneAndDelete.json similarity index 100% rename from test/spec/client-side-encryption/findOneAndDelete.json rename to test/spec/client-side-encryption/tests/findOneAndDelete.json diff --git a/test/spec/client-side-encryption/findOneAndDelete.yml b/test/spec/client-side-encryption/tests/findOneAndDelete.yml similarity index 100% rename from test/spec/client-side-encryption/findOneAndDelete.yml rename to test/spec/client-side-encryption/tests/findOneAndDelete.yml diff --git a/test/spec/client-side-encryption/findOneAndReplace.json b/test/spec/client-side-encryption/tests/findOneAndReplace.json similarity index 100% rename from test/spec/client-side-encryption/findOneAndReplace.json rename to test/spec/client-side-encryption/tests/findOneAndReplace.json diff --git a/test/spec/client-side-encryption/findOneAndReplace.yml b/test/spec/client-side-encryption/tests/findOneAndReplace.yml similarity index 100% rename from test/spec/client-side-encryption/findOneAndReplace.yml rename to test/spec/client-side-encryption/tests/findOneAndReplace.yml diff --git a/test/spec/client-side-encryption/findOneAndUpdate.json b/test/spec/client-side-encryption/tests/findOneAndUpdate.json similarity index 100% rename from test/spec/client-side-encryption/findOneAndUpdate.json rename to test/spec/client-side-encryption/tests/findOneAndUpdate.json diff --git a/test/spec/client-side-encryption/findOneAndUpdate.yml b/test/spec/client-side-encryption/tests/findOneAndUpdate.yml similarity index 100% rename from test/spec/client-side-encryption/findOneAndUpdate.yml rename to test/spec/client-side-encryption/tests/findOneAndUpdate.yml diff --git a/test/spec/client-side-encryption/tests/gcpKMS.json b/test/spec/client-side-encryption/tests/gcpKMS.json new file mode 100644 index 0000000000..a715a7d152 --- /dev/null +++ b/test/spec/client-side-encryption/tests/gcpKMS.json @@ -0,0 +1,224 @@ +{ + "runOn": [ + { + "minServerVersion": "4.1.10" + } + ], + "database_name": "default", + "collection_name": "default", + "data": [], + "json_schema": { + "properties": { + "encrypted_string_aws": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AAAAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } + }, + "encrypted_string_azure": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AZURE+AAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } + }, + "encrypted_string_gcp": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "GCP+AAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } + }, + "encrypted_string_local": { + "encrypt": { + "keyId": [ + { + "$binary": { + "base64": "AAAAAAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ], + "bsonType": "string", + "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic" + } + } + }, + "bsonType": "object" + }, + "key_vault_data": [ + { + "_id": { + "$binary": { + "base64": "GCP+AAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + }, + "keyMaterial": { + "$binary": { + "base64": "CiQAIgLj0WyktnB4dfYHo5SLZ41K4ASQrjJUaSzl5vvVH0G12G0SiQEAjlV8XPlbnHDEDFbdTO4QIe8ER2/172U1ouLazG0ysDtFFIlSvWX5ZnZUrRMmp/R2aJkzLXEt/zf8Mn4Lfm+itnjgo5R9K4pmPNvvPKNZX5C16lrPT+aA+rd+zXFSmlMg3i5jnxvTdLHhg3G7Q/Uv1ZIJskKt95bzLoe0tUVzRWMYXLIEcohnQg==", + "subType": "00" + } + }, + "creationDate": { + "$date": { + "$numberLong": "1601574333107" + } + }, + "updateDate": { + "$date": { + "$numberLong": "1601574333107" + } + }, + "status": { + "$numberInt": "0" + }, + "masterKey": { + "provider": "gcp", + "projectId": "devprod-drivers", + "location": "global", + "keyRing": "key-ring-csfle", + "keyName": "key-name-csfle" + }, + "keyAltNames": [ + "altname", + "gcp_altname" + ] + } + ], + "tests": [ + { + "description": "Insert a document with auto encryption using GCP KMS provider", + "clientOptions": { + "autoEncryptOpts": { + "kmsProviders": { + "gcp": {} + } + } + }, + "operations": [ + { + "name": "insertOne", + "arguments": { + "document": { + "_id": 1, + "encrypted_string_gcp": "string0" + } + } + } + ], + "expectations": [ + { + "command_started_event": { + "command": { + "listCollections": 1, + "filter": { + "name": "default" + } + }, + "command_name": "listCollections" + } + }, + { + "command_started_event": { + "command": { + "listCollections": 1, + "filter": { + "name": "datakeys" + }, + "$db": "keyvault" + }, + "command_name": "listCollections" + } + }, + { + "command_started_event": { + "command": { + "find": "datakeys", + "filter": { + "$or": [ + { + "_id": { + "$in": [ + { + "$binary": { + "base64": "GCP+AAAAAAAAAAAAAAAAAA==", + "subType": "04" + } + } + ] + } + }, + { + "keyAltNames": { + "$in": [] + } + } + ] + }, + "$db": "keyvault" + }, + "command_name": "find" + } + }, + { + "command_started_event": { + "command": { + "insert": "default", + "documents": [ + { + "_id": 1, + "encrypted_string_gcp": { + "$binary": { + "base64": "ARgj/gAAAAAAAAAAAAAAAAACwFd+Y5Ojw45GUXNvbcIpN9YkRdoHDHkR4kssdn0tIMKlDQOLFkWFY9X07IRlXsxPD8DcTiKnl6XINK28vhcGlg==", + "subType": "06" + } + } + } + ], + "ordered": true + }, + "command_name": "insert" + } + } + ], + "outcome": { + "collection": { + "data": [ + { + "_id": 1, + "encrypted_string_gcp": { + "$binary": { + "base64": "ARgj/gAAAAAAAAAAAAAAAAACwFd+Y5Ojw45GUXNvbcIpN9YkRdoHDHkR4kssdn0tIMKlDQOLFkWFY9X07IRlXsxPD8DcTiKnl6XINK28vhcGlg==", + "subType": "06" + } + } + } + ] + } + } + } + ] +} diff --git a/test/spec/client-side-encryption/tests/gcpKMS.yml b/test/spec/client-side-encryption/tests/gcpKMS.yml new file mode 100644 index 0000000000..e07a8809cc --- /dev/null +++ b/test/spec/client-side-encryption/tests/gcpKMS.yml @@ -0,0 +1,53 @@ +runOn: + - minServerVersion: "4.1.10" +database_name: &database_name "default" +collection_name: &collection_name "default" + +data: [] +json_schema: {'properties': {'encrypted_string_aws': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'encrypted_string_azure': {'encrypt': {'keyId': [{'$binary': {'base64': 'AZURE+AAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'encrypted_string_gcp': {'encrypt': {'keyId': [{'$binary': {'base64': 'GCP+AAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}, 'encrypted_string_local': {'encrypt': {'keyId': [{'$binary': {'base64': 'AAAAAAAAAAAAAAAAAAAAAA==', 'subType': '04'}}], 'bsonType': 'string', 'algorithm': 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'}}}, 'bsonType': 'object'} +key_vault_data: [{'_id': {'$binary': {'base64': 'GCP+AAAAAAAAAAAAAAAAAA==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'CiQAIgLj0WyktnB4dfYHo5SLZ41K4ASQrjJUaSzl5vvVH0G12G0SiQEAjlV8XPlbnHDEDFbdTO4QIe8ER2/172U1ouLazG0ysDtFFIlSvWX5ZnZUrRMmp/R2aJkzLXEt/zf8Mn4Lfm+itnjgo5R9K4pmPNvvPKNZX5C16lrPT+aA+rd+zXFSmlMg3i5jnxvTdLHhg3G7Q/Uv1ZIJskKt95bzLoe0tUVzRWMYXLIEcohnQg==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1601574333107'}}, 'updateDate': {'$date': {'$numberLong': '1601574333107'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'gcp', 'projectId': 'devprod-drivers', 'location': 'global', 'keyRing': 'key-ring-csfle', 'keyName': 'key-name-csfle'}, 'keyAltNames': ['altname', 'gcp_altname']}] + +tests: + - description: "Insert a document with auto encryption using GCP KMS provider" + clientOptions: + autoEncryptOpts: + kmsProviders: + gcp: {} + operations: + - name: insertOne + arguments: + document: &doc0 { _id: 1, encrypted_string_gcp: "string0" } + expectations: + # Auto encryption will request the collection info. + - command_started_event: + command: + listCollections: 1 + filter: + name: *collection_name + command_name: listCollections + - command_started_event: + command: + listCollections: 1 + filter: + name: "datakeys" + $db: keyvault + command_name: listCollections + # Then key is fetched from the key vault. + - command_started_event: + command: + find: datakeys + filter: { $or: [ { _id: { $in: [ {'$binary': {'base64': 'GCP+AAAAAAAAAAAAAAAAAA==', 'subType': '04'}} ] } }, { keyAltNames: { $in: [] } } ] } + $db: keyvault + command_name: find + - command_started_event: + command: + insert: *collection_name + documents: + - &doc0_encrypted { _id: 1, encrypted_string_gcp: {'$binary': {'base64': 'ARgj/gAAAAAAAAAAAAAAAAACwFd+Y5Ojw45GUXNvbcIpN9YkRdoHDHkR4kssdn0tIMKlDQOLFkWFY9X07IRlXsxPD8DcTiKnl6XINK28vhcGlg==', 'subType': '06'}} } + ordered: true + command_name: insert + outcome: + collection: + # Outcome is checked using a separate MongoClient without auto encryption. + data: + - *doc0_encrypted \ No newline at end of file diff --git a/test/spec/client-side-encryption/getMore.json b/test/spec/client-side-encryption/tests/getMore.json similarity index 100% rename from test/spec/client-side-encryption/getMore.json rename to test/spec/client-side-encryption/tests/getMore.json diff --git a/test/spec/client-side-encryption/getMore.yml b/test/spec/client-side-encryption/tests/getMore.yml similarity index 100% rename from test/spec/client-side-encryption/getMore.yml rename to test/spec/client-side-encryption/tests/getMore.yml diff --git a/test/spec/client-side-encryption/insert.json b/test/spec/client-side-encryption/tests/insert.json similarity index 100% rename from test/spec/client-side-encryption/insert.json rename to test/spec/client-side-encryption/tests/insert.json diff --git a/test/spec/client-side-encryption/insert.yml b/test/spec/client-side-encryption/tests/insert.yml similarity index 100% rename from test/spec/client-side-encryption/insert.yml rename to test/spec/client-side-encryption/tests/insert.yml diff --git a/test/spec/client-side-encryption/keyAltName.json b/test/spec/client-side-encryption/tests/keyAltName.json similarity index 100% rename from test/spec/client-side-encryption/keyAltName.json rename to test/spec/client-side-encryption/tests/keyAltName.json diff --git a/test/spec/client-side-encryption/keyAltName.yml b/test/spec/client-side-encryption/tests/keyAltName.yml similarity index 100% rename from test/spec/client-side-encryption/keyAltName.yml rename to test/spec/client-side-encryption/tests/keyAltName.yml diff --git a/test/spec/client-side-encryption/localKMS.json b/test/spec/client-side-encryption/tests/localKMS.json similarity index 100% rename from test/spec/client-side-encryption/localKMS.json rename to test/spec/client-side-encryption/tests/localKMS.json diff --git a/test/spec/client-side-encryption/localKMS.yml b/test/spec/client-side-encryption/tests/localKMS.yml similarity index 100% rename from test/spec/client-side-encryption/localKMS.yml rename to test/spec/client-side-encryption/tests/localKMS.yml diff --git a/test/spec/client-side-encryption/localSchema.json b/test/spec/client-side-encryption/tests/localSchema.json similarity index 100% rename from test/spec/client-side-encryption/localSchema.json rename to test/spec/client-side-encryption/tests/localSchema.json diff --git a/test/spec/client-side-encryption/localSchema.yml b/test/spec/client-side-encryption/tests/localSchema.yml similarity index 100% rename from test/spec/client-side-encryption/localSchema.yml rename to test/spec/client-side-encryption/tests/localSchema.yml diff --git a/test/spec/client-side-encryption/malformedCiphertext.json b/test/spec/client-side-encryption/tests/malformedCiphertext.json similarity index 100% rename from test/spec/client-side-encryption/malformedCiphertext.json rename to test/spec/client-side-encryption/tests/malformedCiphertext.json diff --git a/test/spec/client-side-encryption/malformedCiphertext.yml b/test/spec/client-side-encryption/tests/malformedCiphertext.yml similarity index 100% rename from test/spec/client-side-encryption/malformedCiphertext.yml rename to test/spec/client-side-encryption/tests/malformedCiphertext.yml diff --git a/test/spec/client-side-encryption/maxWireVersion.json b/test/spec/client-side-encryption/tests/maxWireVersion.json similarity index 95% rename from test/spec/client-side-encryption/maxWireVersion.json rename to test/spec/client-side-encryption/tests/maxWireVersion.json index 144786290d..c1088a0ecf 100644 --- a/test/spec/client-side-encryption/maxWireVersion.json +++ b/test/spec/client-side-encryption/tests/maxWireVersion.json @@ -50,6 +50,9 @@ "autoEncryptOpts": { "kmsProviders": { "aws": {} + }, + "extraOptions": { + "mongocryptdBypassSpawn": true } } }, diff --git a/test/spec/client-side-encryption/maxWireVersion.yml b/test/spec/client-side-encryption/tests/maxWireVersion.yml similarity index 91% rename from test/spec/client-side-encryption/maxWireVersion.yml rename to test/spec/client-side-encryption/tests/maxWireVersion.yml index bbd181b561..8df590d809 100644 --- a/test/spec/client-side-encryption/maxWireVersion.yml +++ b/test/spec/client-side-encryption/tests/maxWireVersion.yml @@ -12,6 +12,8 @@ tests: autoEncryptOpts: kmsProviders: aws: {} # Credentials filled in from environment. + extraOptions: + mongocryptdBypassSpawn: true # mongocryptd probably won't be on the path operations: - name: insertOne arguments: diff --git a/test/spec/client-side-encryption/missingKey.json b/test/spec/client-side-encryption/tests/missingKey.json similarity index 100% rename from test/spec/client-side-encryption/missingKey.json rename to test/spec/client-side-encryption/tests/missingKey.json diff --git a/test/spec/client-side-encryption/missingKey.yml b/test/spec/client-side-encryption/tests/missingKey.yml similarity index 100% rename from test/spec/client-side-encryption/missingKey.yml rename to test/spec/client-side-encryption/tests/missingKey.yml diff --git a/test/spec/client-side-encryption/replaceOne.json b/test/spec/client-side-encryption/tests/replaceOne.json similarity index 100% rename from test/spec/client-side-encryption/replaceOne.json rename to test/spec/client-side-encryption/tests/replaceOne.json diff --git a/test/spec/client-side-encryption/replaceOne.yml b/test/spec/client-side-encryption/tests/replaceOne.yml similarity index 100% rename from test/spec/client-side-encryption/replaceOne.yml rename to test/spec/client-side-encryption/tests/replaceOne.yml diff --git a/test/spec/client-side-encryption/types.json b/test/spec/client-side-encryption/tests/types.json similarity index 100% rename from test/spec/client-side-encryption/types.json rename to test/spec/client-side-encryption/tests/types.json diff --git a/test/spec/client-side-encryption/types.yml b/test/spec/client-side-encryption/tests/types.yml similarity index 100% rename from test/spec/client-side-encryption/types.yml rename to test/spec/client-side-encryption/tests/types.yml diff --git a/test/spec/client-side-encryption/unsupportedCommand.json b/test/spec/client-side-encryption/tests/unsupportedCommand.json similarity index 100% rename from test/spec/client-side-encryption/unsupportedCommand.json rename to test/spec/client-side-encryption/tests/unsupportedCommand.json diff --git a/test/spec/client-side-encryption/unsupportedCommand.yml b/test/spec/client-side-encryption/tests/unsupportedCommand.yml similarity index 100% rename from test/spec/client-side-encryption/unsupportedCommand.yml rename to test/spec/client-side-encryption/tests/unsupportedCommand.yml diff --git a/test/spec/client-side-encryption/updateMany.json b/test/spec/client-side-encryption/tests/updateMany.json similarity index 100% rename from test/spec/client-side-encryption/updateMany.json rename to test/spec/client-side-encryption/tests/updateMany.json diff --git a/test/spec/client-side-encryption/updateMany.yml b/test/spec/client-side-encryption/tests/updateMany.yml similarity index 100% rename from test/spec/client-side-encryption/updateMany.yml rename to test/spec/client-side-encryption/tests/updateMany.yml diff --git a/test/spec/client-side-encryption/updateOne.json b/test/spec/client-side-encryption/tests/updateOne.json similarity index 100% rename from test/spec/client-side-encryption/updateOne.json rename to test/spec/client-side-encryption/tests/updateOne.json diff --git a/test/spec/client-side-encryption/updateOne.yml b/test/spec/client-side-encryption/tests/updateOne.yml similarity index 100% rename from test/spec/client-side-encryption/updateOne.yml rename to test/spec/client-side-encryption/tests/updateOne.yml diff --git a/test/spec/client-side-encryption/types.yml.template b/test/spec/client-side-encryption/types.yml.template deleted file mode 100644 index 0208de52ea..0000000000 --- a/test/spec/client-side-encryption/types.yml.template +++ /dev/null @@ -1,527 +0,0 @@ -# Attempt to round trip some BSON types. -# Note: db pointer is excluded since it is deprecated and numberlong is excluded due to different driver interpretations of { $numberLong: '123' } in relaxed JSON parsing. - -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: [] -json_schema: {} -key_vault_data: [{{key()}}] - -tests: - - description: "type=objectId" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("objectId")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc0 { _id: 1, encrypted_objectId: {"$oid": "AAAAAAAAAAAAAAAAAAAAAAAA"} } - - name: findOne - arguments: - filter: { _id: 1 } - result: *doc0 - expectations: - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc0_encrypted { _id: 1, encrypted_objectId: {{ciphertext("test", field="encrypted_objectId")}} } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: {_id: 1} - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc0_encrypted - - description: "type=symbol" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("symbol")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc1 { _id: 1, encrypted_symbol: {"$symbol": "test"} } - - name: findOne - arguments: - filter: { _id: 1 } - result: *doc1 - expectations: - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc1_encrypted { _id: 1, encrypted_symbol: {{ciphertext("test", field="encrypted_symbol")}} } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: {_id: 1} - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc1_encrypted - - description: "type=int" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("int")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc2 { _id: 1, encrypted_int: {"$numberInt": "123"} } - - name: findOne - arguments: - filter: { _id: 1 } - result: *doc2 - expectations: - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc2_encrypted { _id: 1, encrypted_int: {{ciphertext("test", field="encrypted_int32")}} } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: {_id: 1} - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc2_encrypted - - description: "type=double" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("double")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc4 { _id: 1, encrypted_double: {"$numberDouble": "1.23"} } - result: - errorContains: "Cannot use deterministic encryption for element of type: double" - - description: "type=decimal" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("decimal")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc5 { _id: 1, encrypted_decimal: {"$numberDecimal": "1.23"} } - result: - errorContains: "Cannot use deterministic encryption for element of type: decimal" - - description: "type=binData" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("binData")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc6 { _id: 1, encrypted_binData: {"$binary": { base64: "AAAA", subType: "00" } } } - - name: findOne - arguments: - filter: { _id: 1 } - result: *doc6 - expectations: - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc6_encrypted { _id: 1, encrypted_binData: {{ciphertext("test", field="encrypted_binData")}} } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: {_id: 1} - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc6_encrypted - - description: "type=javascript" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("javascript")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc7 { _id: 1, encrypted_javascript: {"$code": "var x = 1;" } } - - name: findOne - arguments: - filter: { _id: 1 } - result: *doc7 - expectations: - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc7_encrypted { _id: 1, encrypted_javascript: {{ciphertext("test", field="encrypted_javascript")}} } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: {_id: 1} - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc7_encrypted - - description: "type=javascriptWithScope" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("javascriptWithScope")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc8 { _id: 1, encrypted_javascriptWithScope: {"$code": "var x = 1;", "$scope": {} } } - result: - errorContains: "Cannot use deterministic encryption for element of type: javascriptWithScope" - - description: "type=object" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("object")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc9 { _id: 1, encrypted_object: {} } - result: - errorContains: "Cannot use deterministic encryption for element of type: object" - - description: "type=timestamp" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("timestamp")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc10 { _id: 1, encrypted_timestamp: {$timestamp: {t: 123, i: 456}} } - - name: findOne - arguments: - filter: { _id: 1 } - result: *doc10 - expectations: - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc10_encrypted { _id: 1, encrypted_timestamp: {{ciphertext("test", field="encrypted_timestamp")}} } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: {_id: 1} - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc10_encrypted - - description: "type=regex" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("regex")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc11 { _id: 1, encrypted_regex: {$regularExpression: { pattern: "test", options: ""}} } - - name: findOne - arguments: - filter: { _id: 1 } - result: *doc11 - expectations: - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc11_encrypted { _id: 1, encrypted_regex: {{ciphertext("test", field="encrypted_regex")}} } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: {_id: 1} - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc11_encrypted - - description: "type=date" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("date")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc13 { _id: 1, encrypted_date: {$date: { $numberLong: "123" }} } - - name: findOne - arguments: - filter: { _id: 1 } - result: *doc13 - expectations: - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - insert: *collection_name - documents: - - &doc13_encrypted { _id: 1, encrypted_date: {{ciphertext("test", field="encrypted_date")}} } - ordered: true - command_name: insert - - command_started_event: - command: - find: *collection_name - filter: {_id: 1} - command_name: find - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - *doc13_encrypted - - description: "type=minKey" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("minKey")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc14 { _id: 1, encrypted_minKey: {$minKey: 1} } - result: - errorContains: "Cannot encrypt element of type: minKey" - - description: "type=maxKey" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("maxKey")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc15 { _id: 1, encrypted_maxKey: {$maxKey: 1} } - result: - errorContains: "Cannot encrypt element of type: maxKey" - - description: "type=undefined" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("undefined")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc16 { _id: 1, encrypted_undefined: {$undefined: true} } - result: - errorContains: "Cannot encrypt element of type: undefined" - - description: "type=array" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("array")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc17 { _id: 1, encrypted_array: [] } - result: - errorContains: "Cannot use deterministic encryption for element of type: array" - - description: "type=bool" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("bool")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc18 { _id: 1, encrypted_bool: true } - result: - errorContains: "Cannot use deterministic encryption for element of type: bool" - - description: "type=null" - clientOptions: - autoEncryptOpts: - schemaMap: - "default.default": {{schema_w_type("null")}} - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: insertOne - arguments: - document: &doc19 { _id: 1, encrypted_null: true } - result: - errorContains: "Cannot encrypt element of type: null" \ No newline at end of file diff --git a/test/spec/client-side-encryption/unsupportedCommand.yml.template b/test/spec/client-side-encryption/unsupportedCommand.yml.template deleted file mode 100644 index ca20a0e4d7..0000000000 --- a/test/spec/client-side-encryption/unsupportedCommand.yml.template +++ /dev/null @@ -1,25 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, x: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, x: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "mapReduce deterministic encryption (unsupported)" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: mapReduce - arguments: - map: { $code: "function inc() { return emit(0, this.x + 1) }" } - reduce: { $code: "function sum(key, values) { return values.reduce((acc, x) => acc + x); }" } - out: { inline: 1 } - result: - errorContains: "command not supported for auto encryption: mapreduce" \ No newline at end of file diff --git a/test/spec/client-side-encryption/updateMany.yml.template b/test/spec/client-side-encryption/updateMany.yml.template deleted file mode 100644 index fedc0636b0..0000000000 --- a/test/spec/client-side-encryption/updateMany.yml.template +++ /dev/null @@ -1,78 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } - - &doc1_encrypted { _id: 2, encrypted_string: {{ciphertext("string1", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "updateMany with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateMany - arguments: - filter: { encrypted_string: { $in: [ "string0", "string1" ] } } - update: { $set: { encrypted_string: "string2", random: "abc" } } - result: - matchedCount: 2 - modifiedCount: 2 - upsertedCount: 0 - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - update: *collection_name - updates: - - q: { encrypted_string: { $in: [ {{ciphertext("string0", field="encrypted_string")}}, {{ciphertext("string1", field="encrypted_string")}} ] } } - u: { $set: { encrypted_string: {{ciphertext("string2", field="encrypted_string")}}, random: { $$type: "binData" } } } - multi: true - upsert: false - ordered: true - command_name: update - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1, encrypted_string: {{ciphertext("string2", field="encrypted_string")}}, random: { $$type: "binData" } } - - { _id: 2, encrypted_string: {{ciphertext("string2", field="encrypted_string")}}, random: { $$type: "binData" } } - - description: "updateMany fails when filtering on a random field" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateMany - arguments: - filter: { random: "abc" } - update: { $set: { encrypted_string: "string1" } } - result: - errorContains: "Cannot query on fields encrypted with the randomized encryption" \ No newline at end of file diff --git a/test/spec/client-side-encryption/updateOne.yml.template b/test/spec/client-side-encryption/updateOne.yml.template deleted file mode 100644 index 803e73c809..0000000000 --- a/test/spec/client-side-encryption/updateOne.yml.template +++ /dev/null @@ -1,176 +0,0 @@ -runOn: - - minServerVersion: "4.1.10" -database_name: &database_name "default" -collection_name: &collection_name "default" - -data: - - &doc0_encrypted { _id: 1, encrypted_string: {{ciphertext("string0", field="encrypted_string")}} } -json_schema: {{schema()}} -key_vault_data: [{{key()}}] - -tests: - - description: "updateOne with deterministic encryption" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { encrypted_string: "string0" } - update: { $set: { encrypted_string: "string1", random: "abc" } } - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: "datakeys" - $db: admin - command_name: listCollections - # Then key is fetched from the key vault. - - command_started_event: - command: - find: datakeys - filter: {"$or": [{"_id": {"$in": [ {{key()["_id"]}} ] }}, {"keyAltNames": {"$in": []}}]} - $db: admin - command_name: find - - command_started_event: - command: - update: *collection_name - updates: - - q: { encrypted_string: { $eq: {{ciphertext("string0", field="encrypted_string")}} } } - u: { $set: {encrypted_string: {{ciphertext("string1", field="encrypted_string")}}, random: { $$type: "binData" } } } - multi: false - upsert: false - ordered: true - command_name: update - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1, encrypted_string: {{ciphertext("string1", field="encrypted_string")}}, random: { $$type: "binData"} } - - description: "updateOne fails when filtering on a random field" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { random: "abc" } - update: { $set: { encrypted_string: "string1" } } - result: - errorContains: "Cannot query on fields encrypted with the randomized encryption" - - description: "$unset works with an encrypted field" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $unset: { encrypted_string: "" } } - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - update: *collection_name - updates: - - q: { } - u: { $unset: {encrypted_string: "" } } - multi: false - upsert: false - ordered: true - command_name: update - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1 } - - description: "$rename works if target value has same encryption options" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $rename: { encrypted_string: "encrypted_string_equivalent" } } - result: - matchedCount: 1 - modifiedCount: 1 - upsertedCount: 0 - expectations: - # Auto encryption will request the collection info. - - command_started_event: - command: - listCollections: 1 - cursor: {} - filter: - name: *collection_name - command_name: listCollections - - command_started_event: - command: - update: *collection_name - updates: - - q: { } - u: { $rename: {encrypted_string: "encrypted_string_equivalent" } } - multi: false - upsert: false - ordered: true - command_name: update - outcome: - collection: - # Outcome is checked using a separate MongoClient without auto encryption. - data: - - { _id: 1, encrypted_string_equivalent: {{ciphertext("string0", field="encrypted_string")}} } - - description: "$rename fails if target value has different encryption options" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { $rename: { encrypted_string: "random" } } - result: - errorContains: "$rename between two encrypted fields must have the same metadata or both be unencrypted" - - description: "an invalid update (no $ operators) is validated and errors" - clientOptions: - autoEncryptOpts: - kmsProviders: - aws: {} # Credentials filled in from environment. - operations: - - name: updateOne - arguments: - filter: { } - update: { encrypted_string: "random" } - result: - errorContains: "" # Note, drivers differ in the error message. Just ensure an error is thrown. \ No newline at end of file diff --git a/test/tools/runner/filters/client_encryption_filter.js b/test/tools/runner/filters/client_encryption_filter.js index 8bb7431433..866ba73cc5 100644 --- a/test/tools/runner/filters/client_encryption_filter.js +++ b/test/tools/runner/filters/client_encryption_filter.js @@ -16,8 +16,7 @@ const semver = require('semver'); class ClientSideEncryptionFilter { initializeFilter(client, context, callback) { - const AWS_ACCESS_KEY_ID = process.env.AWS_ACCESS_KEY_ID; - const AWS_SECRET_ACCESS_KEY = process.env.AWS_SECRET_ACCESS_KEY; + const CSFLE_KMS_PROVIDERS = process.env.CSFLE_KMS_PROVIDERS; let mongodbClientEncryption; try { mongodbClientEncryption = require('mongodb-client-encryption').extension(mongodb); @@ -25,14 +24,13 @@ class ClientSideEncryptionFilter { // Do Nothing } - this.enabled = !!(AWS_ACCESS_KEY_ID && AWS_SECRET_ACCESS_KEY && mongodbClientEncryption); + this.enabled = !!(CSFLE_KMS_PROVIDERS && mongodbClientEncryption); // Adds these fields onto the context so that they can be reused by tests context.clientSideEncryption = { enabled: this.enabled, mongodbClientEncryption, - AWS_ACCESS_KEY_ID, - AWS_SECRET_ACCESS_KEY + CSFLE_KMS_PROVIDERS }; callback(); diff --git a/test/unit/core/connect.test.js b/test/unit/core/connect.test.js index 746b0645af..926995df48 100644 --- a/test/unit/core/connect.test.js +++ b/test/unit/core/connect.test.js @@ -100,7 +100,7 @@ describe('Connect Tests', function() { }); }); - it('should allow a cancellaton token', { + it.skip('should allow a cancellaton token', { metadata: { requires: { os: '!win32' // NODE-2941: 240.0.0.1 doesnt work for windows