1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
// Verify valid and invalid scenarios for create encrypted collection
/**
* @tags: [
* requires_fcv_60
* ]
*/
load("jstests/fle2/libs/encrypted_client_util.js");
(function() {
'use strict';
let dbTest = db.getSiblingDB('create_encrypted_collection_db');
dbTest.basic.drop();
const sampleEncryptedFields = {
"fields": [
{
"path": "firstName",
"keyId": UUID("11d58b8a-0c6c-4d69-a0bd-70c6d9befae9"),
"bsonType": "string",
"queries": {"queryType": "equality"} // allow single object or array
},
]
};
assert.commandFailedWithCode(
dbTest.createCollection("basic", {viewOn: "foo", encryptedFields: sampleEncryptedFields}),
6346401,
"Create with encryptedFields and viewOn passed");
assert.commandFailedWithCode(
dbTest.createCollection(
"basic", {timeseries: {timeField: 'time'}, encryptedFields: sampleEncryptedFields}),
6346401,
"Create with encryptedFields and timeseries passed");
assert.commandFailedWithCode(
dbTest.createCollection("basic",
{capped: true, size: 100000, encryptedFields: sampleEncryptedFields}),
6367301,
"Create with encryptedFields and capped passed");
assert.commandFailedWithCode(
dbTest.createCollection("basic",
{validationAction: "warn", encryptedFields: sampleEncryptedFields}),
ErrorCodes.BadValue);
assert.commandFailedWithCode(
dbTest.createCollection("basic",
{encryptedFields: sampleEncryptedFields, validationLevel: "off"}),
ErrorCodes.BadValue);
assert.commandFailedWithCode(
dbTest.createCollection("basic",
{encryptedFields: sampleEncryptedFields, validationLevel: "moderate"}),
ErrorCodes.BadValue);
assert.commandWorked(dbTest.createCollection("basic", {encryptedFields: sampleEncryptedFields}));
const result = dbTest.getCollectionInfos({name: "basic"});
const ef = result[0].options.encryptedFields;
assert.eq(ef.escCollection, "enxcol_.basic.esc");
assert.eq(ef.eccCollection, "enxcol_.basic.ecc");
assert.eq(ef.ecocCollection, "enxcol_.basic.ecoc");
}());
|