django-safe-settings


Namedjango-safe-settings JSON
Version 0.1.4 PyPI version JSON
download
home_page
SummaryDjango application let you write your database password settings in an encrypted way.
upload_time2023-09-14 12:41:22
maintainerZhao ShiXiao
docs_urlNone
authorZhao ShiXiao
requires_python
licenseMIT
keywords django-extensions
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # django-safe-settings

Django application let you write your database password settings in an encrypted way.


## Install

```
pip install django-safe-settings
```


## Usage

**pro/settings.py**

```
INSTALLED_APPS = [
    ...
    'django_safe_settings',
    ...
]


DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "HOST": "127.0.0.1",
        "PORT": 3306,
        "NAME": "project_database_name",
        "USER": "project_database_username",
        "PASSWORD": "enc:e7293477f3fa2a72935913624eecdeb5",
        "OPTIONS": {
            "init_command": """SET sql_mode="STRICT_TRANS_TABLES" """,
        },
    },
}

...

## ##################################################################
## this must be at the bottom of settings.py
## ##################################################################
from django_safe_settings.patch import patch_all
patch_all()


```

- Set sensitive configuration items to encrypted values, e.g. `PASSWORD=enc:e7293477f3fa2a72935913624eecdeb5`, the real plain value is `passwordfortest`.
- Use `python manage.py django_safe_settings_encrypt PLAIN_DATA` to get the encrypted value, e.g.
    ```
    C:\git\django-safe-settings>python manage.py django_safe_settings_encrypt passwordfortest
        plain value = passwordfortest
    encrypted value = enc:e7293477f3fa2a72935913624eecdeb5
    ```
- We use fastutils.cipherutils.AesCipher for encryption, and the password is related to Django's SECRET_KEY, so when the SECRET_KEY's value changes, the encrypted value must be regenerated.
- You can use encrypt values anywhere in Django's settings.

## Releases

### v0.1.0

- First release.

### v0.1.1

- Remove unused imports.

### v0.1.2

- Fix problems in django 3.2.x.

### v0.1.3

- Fix decrypt fail silent problem.

### v0.1.4

- Doc update.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "django-safe-settings",
    "maintainer": "Zhao ShiXiao",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "zhaoshixiao@zencore.cn",
    "keywords": "django-extensions",
    "author": "Zhao ShiXiao",
    "author_email": "zhaoshixiao@zencore.cn",
    "download_url": "https://files.pythonhosted.org/packages/a8/ca/f4078e10f39d9c33d591d497c2189647a7031f970bc3ce7b69d25a733cfb/django-safe-settings-0.1.4.tar.gz",
    "platform": null,
    "description": "# django-safe-settings\n\nDjango application let you write your database password settings in an encrypted way.\n\n\n## Install\n\n```\npip install django-safe-settings\n```\n\n\n## Usage\n\n**pro/settings.py**\n\n```\nINSTALLED_APPS = [\n    ...\n    'django_safe_settings',\n    ...\n]\n\n\nDATABASES = {\n    \"default\": {\n        \"ENGINE\": \"django.db.backends.mysql\",\n        \"HOST\": \"127.0.0.1\",\n        \"PORT\": 3306,\n        \"NAME\": \"project_database_name\",\n        \"USER\": \"project_database_username\",\n        \"PASSWORD\": \"enc:e7293477f3fa2a72935913624eecdeb5\",\n        \"OPTIONS\": {\n            \"init_command\": \"\"\"SET sql_mode=\"STRICT_TRANS_TABLES\" \"\"\",\n        },\n    },\n}\n\n...\n\n## ##################################################################\n## this must be at the bottom of settings.py\n## ##################################################################\nfrom django_safe_settings.patch import patch_all\npatch_all()\n\n\n```\n\n- Set sensitive configuration items to encrypted values, e.g. `PASSWORD=enc:e7293477f3fa2a72935913624eecdeb5`, the real plain value is `passwordfortest`.\n- Use `python manage.py django_safe_settings_encrypt PLAIN_DATA` to get the encrypted value, e.g.\n    ```\n    C:\\git\\django-safe-settings>python manage.py django_safe_settings_encrypt passwordfortest\n        plain value = passwordfortest\n    encrypted value = enc:e7293477f3fa2a72935913624eecdeb5\n    ```\n- We use fastutils.cipherutils.AesCipher for encryption, and the password is related to Django's SECRET_KEY, so when the SECRET_KEY's value changes, the encrypted value must be regenerated.\n- You can use encrypt values anywhere in Django's settings.\n\n## Releases\n\n### v0.1.0\n\n- First release.\n\n### v0.1.1\n\n- Remove unused imports.\n\n### v0.1.2\n\n- Fix problems in django 3.2.x.\n\n### v0.1.3\n\n- Fix decrypt fail silent problem.\n\n### v0.1.4\n\n- Doc update.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Django application let you write your database password settings in an encrypted way.",
    "version": "0.1.4",
    "project_urls": null,
    "split_keywords": [
        "django-extensions"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35e367bc90b0964bbd80b5d8b34b5415c032a2fdb23b320c1cc7689aa33fd981",
                "md5": "58cd7db558f6b9993f7b0db4a589b8ca",
                "sha256": "70a968acc89d096d432bacf77d6214de4f537f705d13f005a94a41253139a473"
            },
            "downloads": -1,
            "filename": "django_safe_settings-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "58cd7db558f6b9993f7b0db4a589b8ca",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 5335,
            "upload_time": "2023-09-14T12:41:21",
            "upload_time_iso_8601": "2023-09-14T12:41:21.655222Z",
            "url": "https://files.pythonhosted.org/packages/35/e3/67bc90b0964bbd80b5d8b34b5415c032a2fdb23b320c1cc7689aa33fd981/django_safe_settings-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a8caf4078e10f39d9c33d591d497c2189647a7031f970bc3ce7b69d25a733cfb",
                "md5": "8309a4bfa16e05446431247d92117c81",
                "sha256": "225d11624b1d6ee791ff54c0487893220c0a0b6789c22e29813a829ed3cdc1cd"
            },
            "downloads": -1,
            "filename": "django-safe-settings-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "8309a4bfa16e05446431247d92117c81",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 4369,
            "upload_time": "2023-09-14T12:41:22",
            "upload_time_iso_8601": "2023-09-14T12:41:22.970575Z",
            "url": "https://files.pythonhosted.org/packages/a8/ca/f4078e10f39d9c33d591d497c2189647a7031f970bc3ce7b69d25a733cfb/django-safe-settings-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-14 12:41:22",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "django-safe-settings"
}
        
Elapsed time: 0.53551s