Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 3 months 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 (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-05-01T23:34:21.000Z (9 months ago)
- Last Synced: 2024-10-15T15:22:31.626Z (4 months 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: 17
- 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 ![GitHub last commit](https://img.shields.io/github/last-commit/nitzano/dbzar?style=flat-square "GitHub last commit") ![GitHub top language](https://img.shields.io/github/languages/top/nitzano/dbzar?style=flat-square "GitHub top language") (Projects by main language / typescript)
README
DBZar
Agnostic DB Anonymizer
[![npm](https://img.shields.io/npm/v/dbzar)](https://www.npmjs.com/package/dbzar)
[![npm-beta](https://img.shields.io/npm/v/dbzar/beta)](https://www.npmjs.com/package/dbzar)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![GitHub Repo stars](https://img.shields.io/github/stars/nitzano/dbzar?style=flat)](https://github.com/nitzano/dbzar/stargazers)
![npm](https://img.shields.io/npm/dw/dbzar)- [⭐ 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