{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: System :: Systems Administration" ], "description": "# django-sanitized-dump\nSanitize sensitive information from your database dumps \ud83d\udca9\n\nSupports:\n- PostgreSQL\n- MySQL\n\n# Getting started\n\n1. `pip install django-sanitized-dump` or `pip install django-sanitized-dump[MySQL]` if you use MySQL\n2. Add `sanitized_dump` to `INSTALLED_APPS`\n3. Initialize config file: `./manage.py init_sanitizer`\n4. Check your newly created `.sanitizerconfig` file and modify the sanitation strategy to fit your requirements.\n5. Run `./manage.py check_sanitizerconfig` to verify that your `.sanitizerconfig` includes all models and fields\n6. Get sanitized database dump: `./manage.py create_sanitized_dump > dump.sql`\n\n# DB Sanitation\n\nHeavy lifting of the DB sanitation is done by: https://github.com/andersinno/python-database-sanitizer\n\n### Configuration\n\nConfiguration file is used to define a strategy on how to sanitize your data. Strategy defines a sanitation function for each model field.\n\n#### Example config\n```yaml\nconfig:\n addons:\n - \"ai-sanitizers\"\n - \"some-other-lib\"\nstrategy:\n user:\n first_name: \"name.first_name\"\n last_name: \"name.last_name\"\n education:\n created: null\n modified: null\n id: null\n field: \"education.field\"\n school: \"education.school\"\n started: \"datetime.datetime\"\n credits: null\n information: \"string.loremipsum_preserved\"\n file_file: null\n```\n\n#### Example custom sanitizers\n```python\n# /sanitizers/name.py\ndef sanitize_first_name(value):\n return faker.first_name()\n\ndef sanitize_last_name(value):\n return faker.last_name()\n\n# /sanitizers/education.py\ndef sanitize_field(value):\n return \"Some field\"\n\ndef sanitize_schoo(value):\n return \"My school\"\n```\n\n#### Validating sanitizer return value\n\n> Note: This should not be done in the initial implementation of the sanitizer but is up to the sanitizer functions. This is just a nice to have but not of a high priority.\n\nCheck that the returned value is of the same type as the argument value passed to the sanitizer.\nFor instance, if a MySQL DATETIME value is passed to the sanitizer, a MySQL DATETIME value shoud be returned as well.\n\n\n#### Configuration method resolution order\n\n1. Custom sanitizers inside ./sanitizers\n2. Addon sanitizers (`config.addons`)\n3. Core sanitizers\n\n### Django Management Commands\n\n#### Sanitized Dump\n\n`./manage.py create_sanitized_dump > dump.sql`\n\n1. Warn about unhandled fields\n2. Creates a database dump (`mysqldump`/`pgdump`)\n3. Run sanitizer\n\n\n#### Check Sanitized Dump\n\n`./manage.py check_sanitizerconfig`\n\n1. Returns an error code if there are unhandled database fields\n\nCheck can be used in CI environments for detecting changes in models, that are not present in\nsanitizer configuration.\n\n\n#### Init Sanitizer\n\n`./manage.py init_sanitizer`\n\n1. Create configuration from current database state\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/andersinno/django-sanitized-dump", "keywords": "django,database,sanitization,anonymization", "license": "MIT", "maintainer": "Anders Innovations", "maintainer_email": "support@anders.fi", "name": "django-sanitized-dump", "package_url": "https://pypi.org/project/django-sanitized-dump/", "platform": "any", "project_url": "https://pypi.org/project/django-sanitized-dump/", "project_urls": { "Homepage": "https://github.com/andersinno/django-sanitized-dump" }, "release_url": "https://pypi.org/project/django-sanitized-dump/1.2.0/", "requires_dist": [ "pyyaml", "six", "database-sanitizer", "PyMySQL ; extra == 'mysql'" ], "requires_python": "", "summary": "Sanitized sensitive information from your database dumps", "version": "1.2.0" }, "last_serial": 5512135, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "4aaf2b77a18b51ffb2ff9d14588dbd52", "sha256": "f08ac376f326be17057425812af46161071165ddea175779e7a3922985610e99" }, "downloads": -1, "filename": "django_sanitized_dump-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4aaf2b77a18b51ffb2ff9d14588dbd52", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11134, "upload_time": "2018-05-15T11:56:54", "url": "https://files.pythonhosted.org/packages/94/42/0aadcccee72a29948852ac2b21b7a64505c716e47b2ba87854bfddf956da/django_sanitized_dump-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56762b2912d0bff9773f10e43ccdc3de", "sha256": "697203066c98652922d50a70653cbcc5e0f6f0076881d8f50cdb5a479d67988c" }, "downloads": -1, "filename": "django-sanitized-dump-0.1.1.tar.gz", "has_sig": false, "md5_digest": "56762b2912d0bff9773f10e43ccdc3de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6838, "upload_time": "2018-05-15T11:56:55", "url": "https://files.pythonhosted.org/packages/d0/92/091e881139e283081182d31a766d0796b43306d90374811ff1a688cfe56e/django-sanitized-dump-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "eba021df9c9357d38963aac90f65240f", "sha256": "1a55a58922173dfa74f9c4f5a3928047608e2ded052003e4ab606e5f8d7c6479" }, "downloads": -1, "filename": "django_sanitized_dump-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eba021df9c9357d38963aac90f65240f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9250, "upload_time": "2018-05-15T12:06:42", "url": "https://files.pythonhosted.org/packages/b3/e4/71bbcc4427b090f82c23a3024a9d223ae331a0c825980013094023ab000a/django_sanitized_dump-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70e6884e0bd2cf76c176889df48e4125", "sha256": "7e1ac4658b0767ccfc718c735afba054172a09661988fd5bb7ffa6cc7feb56c0" }, "downloads": -1, "filename": "django-sanitized-dump-0.1.2.tar.gz", "has_sig": false, "md5_digest": "70e6884e0bd2cf76c176889df48e4125", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6838, "upload_time": "2018-05-15T12:06:43", "url": "https://files.pythonhosted.org/packages/d4/01/f786a87912582ba34b6f79b8b2262a62c1aaea891f865382bf21d2da193b/django-sanitized-dump-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b5294dc0d4eca7e624b0b3fc9b44c7a7", "sha256": "87fb8dd8d58b8768fced83fb54059fca83810d23975f53a25aef8fe225193c6a" }, "downloads": -1, "filename": "django_sanitized_dump-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b5294dc0d4eca7e624b0b3fc9b44c7a7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10931, "upload_time": "2018-05-24T12:08:06", "url": "https://files.pythonhosted.org/packages/f0/9a/7f22750f8b46890528cc6e98948298363a6a360bc24f553f5d780130a4f1/django_sanitized_dump-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e2650f79f0cee4d50d29dcec7e0ed142", "sha256": "8368e7b9299f089446978e53c0863a2e3d7c0e52bb8fed13e1e8b95505c58c2c" }, "downloads": -1, "filename": "django-sanitized-dump-0.2.0.tar.gz", "has_sig": false, "md5_digest": "e2650f79f0cee4d50d29dcec7e0ed142", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6687, "upload_time": "2018-05-24T12:08:08", "url": "https://files.pythonhosted.org/packages/3e/1f/e7cd0bfc72c644946cb0c45ef6558440de6c18aed0ba11cca3790b347012/django-sanitized-dump-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "c846b2ad1a5844a613c937b906a2a46f", "sha256": "58b2d9d5db52966d9e469adf4b3ff10c598e983e388634ddeca3637bc14b2bee" }, "downloads": -1, "filename": "django_sanitized_dump-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c846b2ad1a5844a613c937b906a2a46f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9052, "upload_time": "2018-05-24T12:12:57", "url": "https://files.pythonhosted.org/packages/46/8e/2b959853341e64bafa21a25af00be692178239cd49450ccd1bfc7e1603e0/django_sanitized_dump-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab982f7e1c4643d792cf2c4013eb3d10", "sha256": "dc93f7b12c916ff5c9e3826af0eb44947cf853654b88a5dba8faeaaa1bf9eb95" }, "downloads": -1, "filename": "django-sanitized-dump-0.2.1.tar.gz", "has_sig": false, "md5_digest": "ab982f7e1c4643d792cf2c4013eb3d10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6687, "upload_time": "2018-05-24T12:12:58", "url": "https://files.pythonhosted.org/packages/f4/1b/3ba7b04d9c2daa8ba306f76a022ca16212c6488f8af4b177a9613c62aca5/django-sanitized-dump-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "b3ad08a4deed538500764f464cf8050d", "sha256": "b4d6d6c8801a80e426afc973a3fbd6a4c7948cc9a9c9b0ca8ac3c65dbf06f0dd" }, "downloads": -1, "filename": "django_sanitized_dump-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b3ad08a4deed538500764f464cf8050d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9632, "upload_time": "2018-09-25T20:45:00", "url": "https://files.pythonhosted.org/packages/d6/aa/9b6aeba015fe59b33019729818e8a74d6b691d1f517dcbaac574438e70e5/django_sanitized_dump-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "801ae5c94defd5731883cfb7c67e3a07", "sha256": "513b4b51ca4dff247adb9d2420ecb2c93a3b6fee14777774982f20f41c349420" }, "downloads": -1, "filename": "django-sanitized-dump-0.2.2.tar.gz", "has_sig": false, "md5_digest": "801ae5c94defd5731883cfb7c67e3a07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7875, "upload_time": "2018-09-25T20:45:02", "url": "https://files.pythonhosted.org/packages/e8/5d/f42f7ddaf13eb17a3c534ef448f4540cc8aef5d84bd5ee94314d60451934/django-sanitized-dump-0.2.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "c5e977412432eed603a7a50b97614688", "sha256": "acf87598ccf4f415ea6967ed965be771738327fa4231eb4f312afea565f7b730" }, "downloads": -1, "filename": "django_sanitized_dump-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c5e977412432eed603a7a50b97614688", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9703, "upload_time": "2019-06-05T13:13:45", "url": "https://files.pythonhosted.org/packages/d5/74/66b805a287fffaccdaf7fd59b452a674fe63643c9d83aa5de77df9db64fd/django_sanitized_dump-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a526fbda4f9e69bf13454df2fbe4bdcd", "sha256": "d43b6d104f45cf3b542b53143d28abffead5b854b3da0f086809cedef74bc714" }, "downloads": -1, "filename": "django-sanitized-dump-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a526fbda4f9e69bf13454df2fbe4bdcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7363, "upload_time": "2019-06-05T13:13:47", "url": "https://files.pythonhosted.org/packages/72/16/826c2508362b218ba12d1743048f0a6931ce891565d434d824ddc25043f0/django-sanitized-dump-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "4ee603eab35bd556079d04a02d6e084b", "sha256": "26379aeccdc59b16cc2746225bd2daa18eadc91f8a0ec45118a0fada47d1dc10" }, "downloads": -1, "filename": "django_sanitized_dump-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ee603eab35bd556079d04a02d6e084b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10207, "upload_time": "2019-06-06T10:03:54", "url": "https://files.pythonhosted.org/packages/16/30/a8e6e4d4357aafdae0a644ae2182eee1b1e6a478e9e6477b53b009bc947f/django_sanitized_dump-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e70cef870fc3ae7aab674ce9e7f0a4a5", "sha256": "d9316ea58af5932e8884b1cadae7db02b7f9f2aee56d3dcd1748f52ac51d95a4" }, "downloads": -1, "filename": "django-sanitized-dump-1.1.0.tar.gz", "has_sig": false, "md5_digest": "e70cef870fc3ae7aab674ce9e7f0a4a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7879, "upload_time": "2019-06-06T10:03:55", "url": "https://files.pythonhosted.org/packages/75/d4/949e62063241c404761947fc24f897fab7d82164adca80247421dd99fd07/django-sanitized-dump-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "ca61b1b8211904279eb69feef7956657", "sha256": "b834f8e35d8f34429a20ad973d52091a764c016788263554641687e453ada1b9" }, "downloads": -1, "filename": "django_sanitized_dump-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ca61b1b8211904279eb69feef7956657", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10255, "upload_time": "2019-07-10T13:24:45", "url": "https://files.pythonhosted.org/packages/f1/89/86a247f484189bd8cff25ab20197e16ccb87c8b45dcfbabb08891b5eca3c/django_sanitized_dump-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "faa8695b1b59fa09c9e37289233ddf48", "sha256": "f72781139cf3a19481ce45b5d8a43f9d572979303e1c9be1af9cabbcf50d12e4" }, "downloads": -1, "filename": "django-sanitized-dump-1.2.0.tar.gz", "has_sig": false, "md5_digest": "faa8695b1b59fa09c9e37289233ddf48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9260, "upload_time": "2019-07-10T13:24:47", "url": "https://files.pythonhosted.org/packages/ce/f2/15a9776212d27eaacb5d701d11f80202bad59b6997c6ed6443b93087a406/django-sanitized-dump-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ca61b1b8211904279eb69feef7956657", "sha256": "b834f8e35d8f34429a20ad973d52091a764c016788263554641687e453ada1b9" }, "downloads": -1, "filename": "django_sanitized_dump-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ca61b1b8211904279eb69feef7956657", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10255, "upload_time": "2019-07-10T13:24:45", "url": "https://files.pythonhosted.org/packages/f1/89/86a247f484189bd8cff25ab20197e16ccb87c8b45dcfbabb08891b5eca3c/django_sanitized_dump-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "faa8695b1b59fa09c9e37289233ddf48", "sha256": "f72781139cf3a19481ce45b5d8a43f9d572979303e1c9be1af9cabbcf50d12e4" }, "downloads": -1, "filename": "django-sanitized-dump-1.2.0.tar.gz", "has_sig": false, "md5_digest": "faa8695b1b59fa09c9e37289233ddf48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9260, "upload_time": "2019-07-10T13:24:47", "url": "https://files.pythonhosted.org/packages/ce/f2/15a9776212d27eaacb5d701d11f80202bad59b6997c6ed6443b93087a406/django-sanitized-dump-1.2.0.tar.gz" } ] }