552 lines
16 KiB
JSON
552 lines
16 KiB
JSON
{
|
|
"description": "QE-Text-substringPreview",
|
|
"schemaVersion": "1.25",
|
|
"runOnRequirements": [
|
|
{
|
|
"minServerVersion": "8.2.0",
|
|
"topologies": [
|
|
"replicaset",
|
|
"sharded",
|
|
"load-balanced"
|
|
],
|
|
"csfle": {
|
|
"minLibmongocryptVersion": "1.15.0"
|
|
}
|
|
}
|
|
],
|
|
"createEntities": [
|
|
{
|
|
"client": {
|
|
"id": "client",
|
|
"autoEncryptOpts": {
|
|
"keyVaultNamespace": "keyvault.datakeys",
|
|
"kmsProviders": {
|
|
"local": {
|
|
"key": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk"
|
|
}
|
|
}
|
|
},
|
|
"observeEvents": [
|
|
"commandStartedEvent"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"database": {
|
|
"id": "db",
|
|
"client": "client",
|
|
"databaseName": "db"
|
|
}
|
|
},
|
|
{
|
|
"collection": {
|
|
"id": "coll",
|
|
"database": "db",
|
|
"collectionName": "coll"
|
|
}
|
|
}
|
|
],
|
|
"initialData": [
|
|
{
|
|
"databaseName": "keyvault",
|
|
"collectionName": "datakeys",
|
|
"documents": [
|
|
{
|
|
"_id": {
|
|
"$binary": {
|
|
"base64": "q83vqxI0mHYSNBI0VniQEg==",
|
|
"subType": "04"
|
|
}
|
|
},
|
|
"keyMaterial": {
|
|
"$binary": {
|
|
"base64": "HBk9BWihXExNDvTp1lUxOuxuZK2Pe2ZdVdlsxPEBkiO1bS4mG5NNDsQ7zVxJAH8BtdOYp72Ku4Y3nwc0BUpIKsvAKX4eYXtlhv5zUQxWdeNFhg9qK7qb8nqhnnLeT0f25jFSqzWJoT379hfwDeu0bebJHr35QrJ8myZdPMTEDYF08QYQ48ShRBli0S+QzBHHAQiM2iJNr4svg2WR8JSeWQ==",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
"creationDate": {
|
|
"$date": {
|
|
"$numberLong": "1648914851981"
|
|
}
|
|
},
|
|
"updateDate": {
|
|
"$date": {
|
|
"$numberLong": "1648914851981"
|
|
}
|
|
},
|
|
"status": {
|
|
"$numberInt": "0"
|
|
},
|
|
"masterKey": {
|
|
"provider": "local"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"databaseName": "db",
|
|
"collectionName": "coll",
|
|
"documents": [],
|
|
"createOptions": {
|
|
"encryptedFields": {
|
|
"fields": [
|
|
{
|
|
"keyId": {
|
|
"$binary": {
|
|
"base64": "q83vqxI0mHYSNBI0VniQEg==",
|
|
"subType": "04"
|
|
}
|
|
},
|
|
"path": "encryptedText",
|
|
"bsonType": "string",
|
|
"queries": [
|
|
{
|
|
"queryType": "substringPreview",
|
|
"contention": {
|
|
"$numberLong": "0"
|
|
},
|
|
"strMinQueryLength": {
|
|
"$numberLong": "3"
|
|
},
|
|
"strMaxQueryLength": {
|
|
"$numberLong": "10"
|
|
},
|
|
"strMaxLength": {
|
|
"$numberLong": "20"
|
|
},
|
|
"caseSensitive": true,
|
|
"diacriticSensitive": true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"tests": [
|
|
{
|
|
"description": "Insert QE substringPreview",
|
|
"operations": [
|
|
{
|
|
"name": "insertOne",
|
|
"arguments": {
|
|
"document": {
|
|
"_id": 1,
|
|
"encryptedText": "foobar"
|
|
}
|
|
},
|
|
"object": "coll"
|
|
}
|
|
],
|
|
"expectEvents": [
|
|
{
|
|
"client": "client",
|
|
"events": [
|
|
{
|
|
"commandStartedEvent": {
|
|
"command": {
|
|
"listCollections": 1,
|
|
"filter": {
|
|
"name": "coll"
|
|
}
|
|
},
|
|
"commandName": "listCollections"
|
|
}
|
|
},
|
|
{
|
|
"commandStartedEvent": {
|
|
"command": {
|
|
"find": "datakeys",
|
|
"filter": {
|
|
"$or": [
|
|
{
|
|
"_id": {
|
|
"$in": [
|
|
{
|
|
"$binary": {
|
|
"base64": "q83vqxI0mHYSNBI0VniQEg==",
|
|
"subType": "04"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"keyAltNames": {
|
|
"$in": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"$db": "keyvault",
|
|
"readConcern": {
|
|
"level": "majority"
|
|
}
|
|
},
|
|
"commandName": "find"
|
|
}
|
|
},
|
|
{
|
|
"commandStartedEvent": {
|
|
"command": {
|
|
"insert": "coll",
|
|
"documents": [
|
|
{
|
|
"_id": 1,
|
|
"encryptedText": {
|
|
"$$type": "binData"
|
|
}
|
|
}
|
|
],
|
|
"ordered": true
|
|
},
|
|
"commandName": "insert"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Query with matching $encStrContains",
|
|
"operations": [
|
|
{
|
|
"name": "insertOne",
|
|
"arguments": {
|
|
"document": {
|
|
"_id": 1,
|
|
"encryptedText": "foobar"
|
|
}
|
|
},
|
|
"object": "coll"
|
|
},
|
|
{
|
|
"name": "find",
|
|
"arguments": {
|
|
"filter": {
|
|
"$expr": {
|
|
"$encStrContains": {
|
|
"input": "$encryptedText",
|
|
"substring": "oba"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"object": "coll",
|
|
"expectResult": [
|
|
{
|
|
"_id": {
|
|
"$numberInt": "1"
|
|
},
|
|
"encryptedText": "foobar",
|
|
"__safeContent__": [
|
|
{
|
|
"$binary": {
|
|
"base64": "wpaMBVDjL4bHf9EtSP52PJFzyNn1R19+iNI/hWtvzdk=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "IpY3x/jjm8j/74jAdUhgxdM5hk68zR0zv/lTKm/72Vg=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "G+ky260C6QiOfIxKz14FmaMbAxvui1BKJO/TnLOHlGk=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "7dv3gAKe9vwJMZmpB40pRCwRTmc7ds9UkGhxH8j084E=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "o0V+Efn6x8XQdE80F1tztNaT3qxHjcsd9DOQ47BtmQk=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "sJvrCjyVot7PIZFsdRehWFANKAj6fmBaj3FLbz/dZLE=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "e98auxFmu02h5MfBIARk29MI7hSmvN3F9DaQ0xjqoEM=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "US83krGNov/ezL6IhsY5eEOCxv1xUPDIEL/nmY0IKi0=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "P2Aq5+OHZPG0CWIdmZvWq9c/18ZKVYW3vbxd+WU/TXU=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "8AdPRPnSzcd5uhq4TZfNvNeF0XjLNVwAsJJMTtktw84=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "9O6u/G51I4ZHFLhL4ZLuudbr0s202A2QnPfThmOXPhI=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "N7AjYVyVlv6+lVSTM+cIxRL3SMgs3G5LgxSs+jrgDkI=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "RbGF7dQbPGYQFd9DDO1hPz1UlLOJ77FAC6NsjGwJeos=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "m7srHMgKm6kZwsNx8rc45pmw0/9Qro6xuQ8lZS3+RYk=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "K75CNU3JyKFqZWPiIsVi4+n7DhYmcPl/nEhQ3d88mVI=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "c7bwGpUZc/7JzEnMS7qQ/TPuXZyrmMihFaAV6zIqbZc=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "rDvEdUgEk8u4Srt3ETokWs2FXcnyJaRGQ+NbkFwi2rQ=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "VcdZj9zfveRBRlpCR2OYWau2+GokOFb73TE3gpElNiU=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "eOa9o2xfA6OgkbYUxd6wQJicaeN6guhy2V66W3ALsaA=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "1xGkJh+um70XiRd8lKLDtyHgDqrf7/59Mg7X0+KZh8k=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "OSvllqHxycbcZN4phR6NDujY3ttA59o7nQJ6V9eJpX0=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "ZTX1pyk8Vdw0BSbJx7GeJNcQf3tGKxbrrNSTqBqUWkg=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "cn7V05zb5iXwYrePGMHztC+GRq+Tj8IMpRDraauPhSE=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "E9bV9KyrZxHJSUmMg0HrDK4gGN+75ruelAnrM6hXQgY=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "WrssTNmdgXoTGpbaF0JLRCGH6cDQuz1XEFNTy98nrb0=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "jZmyOJP35dsxQ/OY5U4ISpVRIYr8iedNfcwZiKt29Qc=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "d2mocORMbX9MX+/itAW8r1kxVw2/uii4vzXtc+2CIRQ=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "JBnJy58eRPhDo3DuZvsHbvQDiHXxdtAx1Eif66k5SfA=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "OjbDulC8s62v0pgweBSsQqtJjJBwH5JinfJpj7nVr+A=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "85i7KT2GP9nSda3Gsil5LKubhq0LDtc22pxBxHpR+nE=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "u9Fvsclwrs9lwIcMPV/fMZD7L3d5anSfJQVjQb9mgLg=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "LZ32ttmLJGOIw9oFaUCn3Sx5uHPTYJPSFpeGRWNqlUc=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "mMsZvGEePTqtl0FJAL/jAdyWNQIlpwN61YIlZsSIZ6s=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "XZcu1a/ZGsIzAl3j4MXQlLo4v2p7kvIqRHtIQYFmL6k=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "Zse27LinlYCEnX6iTmJceI33mEJxFb0LdPxp0RiMOaQ=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "vOv2Hgb2/sBpnX9XwFbIN6yDxhjchwlmczUf82W2tp4=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "oQxZ9A6j3x5j6x1Jqw/N9tpP4rfWMjcV3y+a3PkrL7c=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "/D7ew3EijyUnmT22awVFspcuyo3JChJcDeCPwpljzVM=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "BEmmwqyamt9X3bcWDld61P01zquy8fBHAXq3SHAPP0M=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "wygD9/kAo1KsRvtr1v+9/lvqoWdKwgh6gDHvAQfXPPk=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "pRTKgF/uksrF1c1AcfSTY6ZhqBKVud1vIztQ4/36SLs=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "C4iUo8oNJsjJ37BqnBgIgSQpf99X2Bb4W5MZEAmakHU=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "icoE53jIq6Fu/YGKUiSUTYyZ8xdiTQY9jJiGxVJObpw=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "oubCwk0V6G2RFWtcOnYDU4uUBoXBrhBRi4nZgrYj9JY=",
|
|
"subType": "00"
|
|
}
|
|
},
|
|
{
|
|
"$binary": {
|
|
"base64": "IyqhQ9nGhzEi5YW2W6v1kGU5DY2u2qSqbM/qXdLdWVU=",
|
|
"subType": "00"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Query with non-matching $encStrContains",
|
|
"operations": [
|
|
{
|
|
"name": "insertOne",
|
|
"arguments": {
|
|
"document": {
|
|
"_id": 1,
|
|
"encryptedText": "foobar"
|
|
}
|
|
},
|
|
"object": "coll"
|
|
},
|
|
{
|
|
"name": "find",
|
|
"arguments": {
|
|
"filter": {
|
|
"$expr": {
|
|
"$encStrContains": {
|
|
"input": "$encryptedText",
|
|
"substring": "blah"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"object": "coll",
|
|
"expectResult": []
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|