1.7.17 • Published 4 months ago

dbzar v1.7.17

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

npm npm-beta Commitizen friendly XO code style semantic-release License: MIT GitHub Repo stars npm

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 or API and Docker
  • Configuration options

📃 Full Documentation

Available here: Documentation.

💻 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)

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 command

Commands:
  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": "****" }
  1. 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 string

Options:
  -h, --help  display help for command
  1. Create Configuration file (see Configuration)

Example:

// .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
  1. 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

Docker

Docker Image: nitzano/dbzar

Usage:

// pull the image
docker pull nitzano/dbzar

// run command
docker run nitzano/dbzar anon-col ...

✅ Supported Databases

  1. MongoDB
  2. PostgresSQL
  3. MariaDB
  4. MySQL

Future support:

  • Neo4J
  • SQLite
  • CSV
  • DynamoDB
  • Parquet
  • JSON
  • XML
  • XLSX
1.7.17

4 months ago

1.7.15

8 months ago

1.7.16

7 months ago

1.7.14

1 year ago

1.7.11

1 year ago

1.7.12

1 year ago

1.7.13

1 year ago

1.7.12-beta.1

1 year ago

1.7.8-beta.5

1 year ago

1.7.8-beta.4

2 years ago

1.7.10

2 years ago

1.7.8-beta.2

2 years ago

1.7.8-beta.3

2 years ago

1.7.9

2 years ago

1.7.6-beta.2

2 years ago

1.7.8-beta.1

2 years ago

1.7.8

2 years ago

1.7.6-beta.1

2 years ago

1.7.7

2 years ago

1.7.6

2 years ago

1.7.5

2 years ago

1.7.4

2 years ago

1.7.3-beta.2

2 years ago

1.7.3-beta.1

2 years ago

1.7.3

2 years ago

1.7.2

2 years ago

1.7.1

2 years ago

1.7.0

2 years ago

1.6.7-beta.1

2 years ago

1.6.9

2 years ago

1.6.8

2 years ago

1.6.10

2 years ago

1.6.7

2 years ago

1.6.6

2 years ago

1.6.5

2 years ago

1.6.4

2 years ago

1.6.3-beta.2

2 years ago

1.6.3

2 years ago

1.6.3-beta.1

2 years ago

1.6.2

2 years ago

1.6.1

2 years ago

1.6.1-beta.1

2 years ago

1.6.0

2 years ago

1.6.0-beta.5

2 years ago

1.6.0-beta.4

2 years ago

1.6.0-beta.3

2 years ago

1.6.0-beta.2

2 years ago

1.6.0-beta.1

2 years ago

1.5.0

2 years ago

1.4.2

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8-beta.4

2 years ago

1.0.8

2 years ago

1.0.8-beta.3

2 years ago

1.0.8-beta.2

2 years ago

1.0.8-beta.1

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.2-beta.1

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago