Creates a pg_dumpish output which masks data without saving changes to the source database.
Project description
Django Mask Postgres Data
Adds a management command to your Django project which allows you to create a (sort of) pg_dump of your data with sensitive data masked.
Installation
Install with pip:
pip install django-maskpostgresdata
And add maskpostgresdata
to your INSTALLED_APPS
:
INSTALLED_APPS = [
...
'maskpostgresdata',
...
]
Usage
By default, django-maskpostgresdata
will replace the password
column for each row in the Django User
model with "password". Just run manage.py dump_masked_data
and you'll get a pg_dump with the password field changed to "password" for all users.
There are 2 ways to customise the behaviour of django-maskpostgresdata
.
To override individual fields of a model with a given value, add a dictionary called MASKER_FIELDS
to your settings using the following format:
MASKER_FIELDS = {
"{ APP_NAME }": {"{ MODEL_NAME }": {"{ FIELD_NAME }": { VALUE },}},
}
Alternatively, you can define exactly how the data is updated by subclassing BasePostgresDataMaskingCommand
in a management command of your own. For example:
from django.contrib.auth.hashers import make_password
from maskpostgresdata import BasePostgresDataMaskingCommand
class Command(BasePostgresDataMaskingCommand):
def update_auth_user(self, queryset):
queryset.update(password=make_password("a_different_password"))
Just create a method called update_{ db_table_name }
taking a queryset
as the parameter. You can then perform update
operations on this queryset. { db_table_name }
is of the format {app_label}_{model_name}
by default, but could technically be different.
You can then run manage.py dump_masked_data
and it will dump your data to stdout
.
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-maskpostgresdata-0.2.1.tar.gz
.
File metadata
- Download URL: django-maskpostgresdata-0.2.1.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fe15dd217207ac9991164aeb74a5d24404b4834df46c253f98f6aee6a864633 |
|
MD5 | cb1af9c03b49ac55e62e2dc8f6c16ebe |
|
BLAKE2b-256 | a4a209e758549cbbfa460e7b32512f43f663ceb2f2c88aa83ce0ab76b6728155 |
File details
Details for the file django_maskpostgresdata-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: django_maskpostgresdata-0.2.1-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e12cbd3b8062bac37759af6d99c10c18ca171deb0b7635736ebc944f10fb3e5 |
|
MD5 | cbb237adc12f552eee15a90dc2bb8531 |
|
BLAKE2b-256 | 12607ef240200c15d7fc6e96f3638af3f32962136624ba30611dfee0311b4564 |