#Client-Side Field Level Encryption In MongoDB
3 messages · Page 1 of 1 (latest)
getting below error
MongoError: loaded version of mongodb-client-encryption does not have property extension. Please make sure you are loading the correct version of mongodb-client-encryption
below is code snippet
public connectToDb() {
const dbUrl = process.env.MONGO_URL || 'mongodb://localhost:27017/equitas-customer'
const debug = config.get('db.showAllLogs');
const key = Buffer.from("4D35785255626B4
");
const keyVaultNamespace = 'client.encryption';
const kmsProviders = { local: { key } };
const dbOpts = { useNewUrlParser: true, useCreateIndex: true,useUnifiedTopology: true, server:{poolSize:config.get("db.poolSize")},autoEncryption: {
keyVaultNamespace,
kmsProviders
} };
mongoose.set('debug', debug);
const conn = mongoose.connect(dbUrl, dbOpts);
const encryption = new ClientEncryption(conn, {
keyVaultNamespace,
kmsProviders,
});
const _key = encryption.createDataKey('local');
/* Step 2: connect using schema map and new key */
mongoose.connect(dbUrl, {
// Configure auto encryption
autoEncryption: {
keyVaultNamespace,
kmsProviders,
schemaMap: {
'equitas-customer.eq_customers': {
bsonType: 'object',
encryptMetadata: {
keyId: [_key]
},
properties: {
panNumber: {
encrypt: {
bsonType: 'string',
algorithm: 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'
}
}
}
}
}
}
});
return conn;
} ```