Skip to content

Commit 460626a

Browse files
add support for UUUID
1 parent eab7e49 commit 460626a

File tree

3 files changed

+58
-1
lines changed

3 files changed

+58
-1
lines changed

lib/schema/uuid.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,10 @@ SchemaUUID.prototype.toJSONSchema = function toJSONSchema(options) {
298298
return createJSONSchemaTypeDefinition('string', 'binData', options?.useBsonType, isRequired);
299299
};
300300

301+
SchemaUUID.prototype.autoEncryptionType = function autoEncryptionType() {
302+
return 'binData';
303+
};
304+
301305
/*!
302306
* Module exports.
303307
*/

test/encryptedSchema.test.js

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ describe('encrypted schema declaration', function() {
265265
});
266266
});
267267

268-
describe.only('When a schema is instantiated with a custom schema type plugin that does have a encryption type', function() {
268+
describe('When a schema is instantiated with a custom schema type plugin that does have a encryption type', function() {
269269
class Int8 extends mongoose.SchemaType {
270270
constructor(key, options) {
271271
super(key, options, 'Int8');
@@ -772,6 +772,58 @@ function primitiveSchemaMapTests() {
772772
]
773773
}
774774
},
775+
{
776+
name: 'uuid',
777+
encryptionType: 'csfle',
778+
type: Schema.Types.UUID,
779+
schemaMap: {
780+
bsonType: 'object',
781+
properties: {
782+
field: {
783+
encrypt: {
784+
keyId: '9fbdace3-4e48-412d-88df-3807e8009522',
785+
algorithm: 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic',
786+
bsonType: 'binData'
787+
}
788+
}
789+
}
790+
},
791+
encryptedFields: {
792+
fields: [
793+
{
794+
path: 'field',
795+
bsonType: 'binData',
796+
keyId: '9fbdace3-4e48-412d-88df-3807e8009522',
797+
algorithm: 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'
798+
}
799+
]
800+
}
801+
},
802+
{
803+
name: 'uuid',
804+
encryptionType: 'queryableEncryption',
805+
type: Schema.Types.UUID,
806+
schemaMap: {
807+
bsonType: 'object',
808+
properties: {
809+
field: {
810+
encrypt: {
811+
keyId: '9fbdace3-4e48-412d-88df-3807e8009522',
812+
bsonType: 'binData'
813+
}
814+
}
815+
}
816+
},
817+
encryptedFields: {
818+
fields: [
819+
{
820+
path: 'field',
821+
bsonType: 'binData',
822+
keyId: '9fbdace3-4e48-412d-88df-3807e8009522'
823+
}
824+
]
825+
}
826+
},
775827
{
776828
name: 'buffer',
777829
encryptionType: 'csfle',

test/encryption/encryption.test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ describe('encryption integration tests', () => {
129129
{ type: String, name: 'string', input: 3, expected: 3 },
130130
{ type: Schema.Types.Boolean, name: 'boolean', input: true, expected: true },
131131
{ type: Schema.Types.Buffer, name: 'buffer', input: Buffer.from([1, 2, 3]) },
132+
{ type: Schema.Types.UUID, name: 'uuid', input: new UUID('53ca5a3e-19cd-405d-8ef7-5d88823939d9'), expected: '53ca5a3e-19cd-405d-8ef7-5d88823939d9' },
132133
{ type: Date, name: 'date', input: new Date(12, 12, 2012), expected: new Date(12, 12, 2012) },
133134
{ type: ObjectId, name: 'objectid', input: new ObjectId() },
134135
{ type: BigInt, name: 'bigint', input: 3n },

0 commit comments

Comments
 (0)