Database data anonymizer for Django projects.
Project description
- Version:
- 0.1.0
This project’s main goal is to provide a way to anonymize the data of specific database fields by explicitly configuring said fields with specific anonymization strategies.
The anonymization process provides a “Production-like” copy of your database without sensitive information which can then be used in a development environment.
Requirements
django-db-sanitizer works and has been tested with Python 2.7 and 3.5. It requires Django 1.8+ and fake-factory 0.5.7+.
Installation
Install the library
pip install django-db-sanitizer
Add the library to your INSTALLED_APPS in your Django Settings
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_db_sanitizer', )
Important Notes
DO NOT RUN IN YOUR PRODUCTION ENVIRONMENT!
In its current state, django-db-sanitizer will run its sanitizing command and operations on your default database.
While there are plans to investigate the possibility of allowing the sanitizing process to run on alternate databases, this is not yet implemented.
It is recommended to run django-db-sanitizer on a copy of your application and database running on your local machine.
Please read the Usage section below for more information.
Usage
Creating db_sanitizer.py
Configuration of django-db-sanitizer works similarly to the configuration of the Django admin site.
To use django-db-sanitizer for one of your Django apps, create a db_sanitizer.py file into said Django app just as you would create an admin.py file for the Django admin site.
Model and field declarations
Inside the db_sanitizer.py file of your app, you must explicitly register which fields of which models will be sanitized using an explicitly declared Sanitizer class.
In the following example, the notes text field of the Profile class will be sanitized using the LoremIpsumSanitizer sanitizing strategy, filling the contents of the field with Lorem Ipsum text.
from django_db_sanitizer import sanitizer_registry, LoremIpsumSanitizer from my_app.models import Profile sanitizer_registry.register(Profile, ["notes"], LoremIpsumSanitizer)
Customizing the sanitizing process
django-db-sanitizer is meant to be easy to extend. It is easily possible to override or extend classes from django-db-sanitizer to:
Filter querysets on which the sanitizing process is applied
Modify existing Sanitizer classes to alter their behavior
Add your own new Sanitizer classes
Add your own Updater classes to control how values are saved to the database
And more…
Please refer to the test_app in django-db-sanitizer’s test_project within the repository for a number of examples on how to achieve this.
Running the sanitizing process
Currently, the only way to run the sanitizing process is to use the included Django command, like so:
python manage.py sanitize_my_database
This command does not use or require any arguments for the time being.
Please note that the sanitizing process is irreversible. It is recommended to run django-db-sanitizer on a copy of your application and database running on your local machine.
License
This software is licensed under the New BSD License. See the LICENSE file in the repository for the full license text.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-db-sanitizer-0.1.0.tar.gz
.
File metadata
- Download URL: django-db-sanitizer-0.1.0.tar.gz
- Upload date:
- Size: 13.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f43905a54cd1835a7c27c771999cad93c8d31e5401b31b92b00747c4d3db6640 |
|
MD5 | 3ca4a0117377ea4f0cd53e775eff257f |
|
BLAKE2b-256 | ab91c62a5e8e2aefab97c0c722d887a032d8194b285a98caa67728c701cc1a43 |
File details
Details for the file django_db_sanitizer-0.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: django_db_sanitizer-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 23.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 319414b7456c5386744e25cca4ec12419c7778a329c8bdc8adcaad02ab08949e |
|
MD5 | 50d0d3ea93b2d340cc000b463e29357f |
|
BLAKE2b-256 | 2fd4b3e13c2f9f2d52cc9fc74a649fecdf9e012e051ace20ecaa391edb9b3bce |