medhira-mongoose-utils
v0.0.1
Published
Mongoose utilities for field-level encryption - Powered by MEDHIRA
Maintainers
Readme
medhira-mongoose-utils
medhira-mongoose-utils is a lightweight and flexible Mongoose plugin utility that allows you to easily add field-level encryption and decryption to your schemas using your own encrypt and decrypt functions.
Perfect for securing sensitive fields like PAN, Aadhaar, contact numbers, or any personally identifiable information (PII).
Why MEDHIRA?
Data security is critical. MEDHIRA Mongoose Utils provides:
- Field-Level Encryption - Encrypt specific fields in your schema
- Custom Functions - Use your own encrypt/decrypt logic
- Preserved Options - Keeps Mongoose options like
required,default - Getter Support - Works with
toJSONandtoObject - TypeScript Support - Full type definitions
Installation
# NPM
npm install medhira-mongoose-utils
# Yarn
yarn add medhira-mongoose-utilsUsage
1. Your Schema
import { Schema } from 'mongoose';
const CustomerSchema = new Schema({
pan: { type: String, required: true },
aadhaar: { type: String },
contactNumber: { type: String, default: null },
});2. Your Encryption Functions
export const encryptText = (text: string): string => {
return 'encrypted-' + text;
};
export const decryptText = (text: string): string => {
return text.replace('encrypted-', '');
};3. Apply Encrypted Fields
import { applyEncryptedFields } from 'medhira-mongoose-utils';
import { CustomerSchema } from './models';
import { encryptText, decryptText } from './crypto';
applyEncryptedFields({
schema: CustomerSchema,
encryptedFields: ['pan', 'aadhaar', 'contactNumber'],
options: {
encrypt: encryptText,
decrypt: decryptText,
}
});API
applyEncryptedFields
| Option | Type | Description |
|--------|------|-------------|
| schema | Schema | The Mongoose schema |
| encryptedFields | string[] | Fields to encrypt/decrypt |
| encrypt | (value: string) => string | Custom encryption function |
| decrypt | (value: string) => string | Custom decryption function |
Contributing
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch
- Submit a pull request
Sponsor & Support
To keep this library maintained and up-to-date, please consider sponsoring it on GitHub.
Or, if you're looking for private support or help in customizing the experience, reach out to us at [email protected]
About MEDHIRA
MEDHIRA - Engineering Intelligence Across Everything
- Website: https://medhira.readthedocs.io/en/latest/
- GitHub: https://github.com/HELLOMEDHIRA
- Email: [email protected]
License
Apache-2.0
Made with passion by MEDHIRA
