Skip to content

nitzano/datazar-cli

Repository files navigation

DataZar 📊👋

CLI Database & File Anonymizer

npm XO code style GitHub Repo stars GitHub License npm

A command-line tool to anonymize and transform sensitive data in databases, files, and datasets without writing a single line of code. Supports various databases types and file formats.

Usage

# npm
npx datazar-cli <command> [options]

# pnpm
pnpm dlx datazar-cli <command> [options]

# yarn
yarn dlx datazar-cli <command> [options]

Examples

PostgresSQL

Mask firstName column in users table in test db:

npx datazar-cli anon-col postgres \ 
  --uri postgresql:/localhost \
  --database test \
  --table users \
  --column firstName \
  mask

// { "firstName": "John" } => { "firstName": "****" }

MongoDB

Scramble lastName column in users table in test db:

npx datazar-cli anon-col mongo 
  --uri mongodb://localhost \
  --database test \ 
  --table users \ 
  --column lastName \
  scramble

// { "lastName": "Smith" } => { "lastName": "hSmti" }

SQLite

Mask firstName column in users table in dev.db:

npx datazar-cli anon-col sqlite \
   --uri /home/dev.db \
   --table users \
   --column firstName \
    mask

CSV

Fake email column in file.csv with a fake one:

npx datazar-cli anon-col csv \ 
  --file /home/file.csv \ 
  --column email \ 
  fake email

Anonymizers

  1. 🎭 Mask - Masks some or all of the letters of the previous value.
  2. 🔀 Scramble - Scrambles the order of characters inside a string randomly.
  3. 🍀 Fake - Generate fake data instead of the previous value

Coming Soon:

  1. 🧽 Remove - removes the entire data
  2. 🖋️ Constant – Substitutes sensitive words or phrases with placeholders or predefined values.
  3. 🔐 Hash – Replaces the value with a cryptographic hash, making it irrecoverable.
  4. 👓 Blur – Adds random variation to numerical values while keeping them within a reasonable range.

Support

Databases

  1. MongoDB
  2. PostgresSQL
  3. MariaDB
  4. MySQL
  5. MSSQL
  6. SQLite
  7. Neo4J (Coming Soon)
  8. DynamoDB (Coming Soon)
  9. Redis (Coming Soon)
  10. CouchDB (Coming Soon)

Files

  1. CSV
  2. JSON (Coming Soon)
  3. XML (Coming Soon)
  4. XSLX (Coming Soon)
  5. Parquet (Coming Soon)
  6. YAML (Coming Soon)

CLI

anon-col

Anonymize a single column in a table

Usage: anon-col <engine> [engine_options] <anonymizer> [anonymizer_options]

License

DataZar Copyright (C) 2024 Nitzan Ohana

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.