jsonymize
v1.0.0
Published
Anonymize JSON values, easily.
Downloads
29
Maintainers
Readme
jsonymize
Anonymize JSON values, easily.
Installation
npm install -g jsonymize
Usage
jsonymize reads data from standard input, anonymizes, then writes to standard output. By default all fields are anonymized, however, specific field names can be passed as arguments as shown below.
Anonymize all fields:
$ cat input.json
{"name": "Cameron Hunter", "age": 30, "email": "[email protected]"}
$ cat input.json | jsonymize
{"name":"Andrew Jacobs","age":32,"email":"[email protected]"}
Choose fields to anonymize:
$ cat input.json
{"name": "Cameron Hunter", "age": 30, "email": "[email protected]"}
$ cat input.json | jsonymize email age
{"name":"Cameron Hunter","age":58,"email":"[email protected]"}
Anonymize all fields, except certain ones:
$ cat input.json
{"name": "Cameron Hunter", "age": 30, "email": "[email protected]"}
$ cat input.json | jsonymize -i email -i age
{"name":"Eva Haynes","age":30,"email":"[email protected]"}
Field names can be "fully qualified" using dot-notation:
$ cat input.json
{"user":{"name": "Cameron Hunter", "age": 30, "email": "[email protected]"}}
$ cat input.json | jsonymize user.name user.age
{"user":{"name":"Alejandro Mann","age":35,"email":"[email protected]"}}
Advanced Configuration
A configuration file can be passed to jsonymize, providing advanced control over the data generators, as well as allowing configurations to be shared.
Example configuration file:
{
"fields": ["name", "cell"],
"ignore": ["id", "message.timestamp"],
"generators": {
"cell": "phone",
"text": {
"generator": "sentence",
"params": {
"words": 10
}
}
}
}
$ cat input.json
{"name": "Cameron Hunter", "age": 30, "cell": "(939) 555-0113"}
$ cat input.json | jsonymize -c ~/configuration.json
{"name":"Olive McGee","age":30,"cell":"(636) 555-3226"}
ChanceJS is used to generate all randomized data. A full list of supported generators and their options is available on their website.