-
Notifications
You must be signed in to change notification settings - Fork 5.6k
/
Copy pathcreate_encrypted_collection.js
84 lines (71 loc) · 2.71 KB
/
create_encrypted_collection.js
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Verify valid and invalid scenarios for create encrypted collection
/**
* @tags: [
* assumes_unsharded_collection,
* requires_fcv_70,
* assumes_balancer_off,
* ]
*/
let dbTest = db.getSiblingDB('create_encrypted_collection_db');
dbTest.dropDatabase();
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.ecocCollection, "enxcol_.basic.ecoc");
assert.commandWorked(dbTest.createCollection("basic_int64_cf", {
encryptedFields: {
"fields": [{
"path": "firstName",
"keyId": UUID("11d58b8a-0c6c-4d69-a0bd-70c6d9befae9"),
"bsonType": "string",
"queries": {"queryType": "equality", contention: NumberLong(123)}
}]
}
}));
assert.commandWorked(dbTest.createCollection("basic_int32_cf", {
encryptedFields: {
"fields": [{
"path": "firstName",
"keyId": UUID("11d58b8a-0c6c-4d69-a0bd-70c6d9befae9"),
"bsonType": "string",
"queries": {"queryType": "equality", contention: NumberInt(123)}
}]
}
}));