#Client-Side Field Level Encryption In MongoDB

3 messages · Page 1 of 1 (latest)

little fossil
#

Need code example for field level encryption in MongoDB by using lib 'mongodb-client-encryption'

thanks in advance

little fossil
#

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;
  } ```