https://github.com/nitzano/dbzar
🔁👻 Agnostic DB Anonymizer
https://github.com/nitzano/dbzar
anonymization anonymizer database database-anonymizer db devops devops-tools fake gdpr mariadb mock mongodb mysql postgressql
Last synced: 5 days ago
JSON representation
🔁👻 Agnostic DB Anonymizer
- Host: GitHub
- URL: https://github.com/nitzano/dbzar
- Owner: nitzano
- License: mit
- Created: 2022-01-06T19:41:46.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-05-01T23:34:21.000Z (12 months ago)
- Last Synced: 2025-04-11T01:13:08.865Z (5 days ago)
- Topics: anonymization, anonymizer, database, database-anonymizer, db, devops, devops-tools, fake, gdpr, mariadb, mock, mongodb, mysql, postgressql
- Language: TypeScript
- Homepage: https://nitzano.github.io/dbzar
- Size: 4.02 MB
- Stars: 18
- Watchers: 1
- Forks: 1
- Open Issues: 43
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Roadmap: docs/ROADMAP.md
Awesome Lists containing this project
- awesome-opensource-israel - DBZar - Agnostic DB Anonymizer   (Projects by main language / typescript)
README
DBZar
![]()
Agnostic DB Anonymizer
[](https://www.npmjs.com/package/dbzar)
[](https://www.npmjs.com/package/dbzar)
[](http://commitizen.github.io/cz-cli/)
[](https://github.com/xojs/xo)
[](https://github.com/semantic-release/semantic-release)
[](https://opensource.org/licenses/MIT)
[](https://github.com/nitzano/dbzar/stargazers)
- [⭐ Highlights](#-highlights)
- [📃 Full Documentation](#-full-documentation)
- [💻 Install](#-install)
- [👻 Usage](#-usage)
- [CLI](#cli)
- [`anon-col`](#anon-col)
- [`anon-db`](#anon-db)
- [API](#api)
- [Docker](#docker)
- [✅ Supported Databases](#-supported-databases)
**DBZar** (Database + "stranger" in Hebrew) let you mask/scramble/fake fields in any given database, just add a connection string and anonymize away!
Great for:
1. Anonymizing production servers for local development.
2. General utility to manipulate existing databases easily.## ⭐ Highlights
- Anonymize single columns (`anon-col`)
- Anonymize entire databases (`anon-db`)
- Manipulate data by masking, scrambling, faking and more
- Built-in support to famous databases
- Use via [CLI](https://nitzano.github.io/dbzar/docs/usage) or [API](https://nitzano.github.io/dbzar/docs/usage/api) and [Docker](https://nitzano.github.io/dbzar/docs/usage/docker)
- [Configuration](https://nitzano.github.io/dbzar/docs/config) options## 📃 Full Documentation
Available here: [Documentation](https://nitzano.github.io/dbzar/).
## 💻 Install
```
npm i --save-dev dbzar// OR
yarn add -D dbzar// OR
npx dbzar
```## 👻 Usage
### CLI
#### `anon-col`
Anonymize a single column
(⚠ Changes whichever db provided so use with caution)
```bash
Usage: dbzar anon-col [options] [command]Anonymize a single column in a table
Options:
-skip --skip-confirm skip confirmation
-u --uri Connection string
-db --database Database name
-t --table Table name
-c --column Column name
-h, --help display help for commandCommands:
scramble [options] scramble a single column
fake [options] fake a single column
mask [options] mask a single column
help [command] display help for command
```Examples:
1. Mask "firstName" in PostgresSQL
```
dbzar anon-col mask -u postgresql:/localhost -db test -t users -c firstName// { "firstName": "John" } => { "firstName": "****" }
```2. Scramble "lastName" in MongoDB
```
dbzar anon-col scramble -u mongodb://localhost -db test -t users -c lastName// { "lastName": "Smith" } => { "lastName": "hSmti" }
```#### `anon-db`
Anonymize entire database
```
Usage: dbzar anon-db [options] [uri]Anonymize an entire database
Arguments:
uri connection stringOptions:
-h, --help display help for command
```1. Create Configuration file (see [Configuration](https://nitzano.github.io/dbzar/docs/config))
Example:
```yaml
// .dbzarrc
dbName: db1
tables:
- name: users
columns:
- name: firstName
provider: mask
- name: lastName
provider:
type: mask
options:
character: "#"
- name: products
columns:
- name: name
provider:
type: fake
options:
fakeValue: animal
```2. Run the anonymizer
```
dbzar anon-db mongodb://example:example@localhost
```Will:
1. `mask` the `firstName` column in `users` table (replacing letters with default `*`).
2. `mask` the `lastName` column in `users` table (replacing letters with `#`).
3. `fake` the `name` column in `products` table (replacing it with a random animal name, for example: "Fish").From:
```
// users table
{ "firstName": "John", "lastName": "Doe" }// products table
{ "name": "Product1", "price": 100 }
```To:
```
// users table
{ "firstName": "****", "lastName": "###" }// products table
{ "name": "Fish", "price": 100 }
```### API
See [usage/API](https://nitzano.github.io/dbzar/docs/usage/api)
### Docker
Docker Image: [nitzano/dbzar](https://hub.docker.com/r/nitzano/dbzar)
Usage:
```
// pull the image
docker pull nitzano/dbzar// run command
docker run nitzano/dbzar anon-col ...
```## ✅ Supported Databases
1. MongoDB
1. PostgresSQL
1. MariaDB
1. MySQLFuture support:
- Neo4J
- SQLite
- CSV
- DynamoDB
- Parquet
- JSON
- XML
- XLSX