Skip to main content

DJANGO OUTBOX ENCRYPTION

Project description

DJANGO OUTBOX ENCRYPTION

Sometimes, when you ready to publish your project to server.

There is a slight change between the application settings on the local and the server. Such as database name, password, etc. The second thing, is you need to encrypt information like password or other. The last one, you need to automatically select setting local when you work on local computer, and auto select server when application running on server.

You are on the right path...

Install package to your environment

> pip install outbox-encryption

How to use

Encrypt to environment

This code for create ".env.client" or ".env.server" file    
> python manage.py shell

> from encryption import OutboxEncryption
> lib = OutboxEncryption()
> mplaint_text = {
        'DB_PASSWORD': '',
        'SECRET_KEY': 'xxg_7me8rl2m#a_h2oresgt2#ni=3_4*!ai*=rtsq)yi!g7_5-51xx'
    }
> lib.encrypt_environ('.env.local', mplaint_text)
# file .env.local is created (maybe file is hidden, CTRL+H to show it)

# Open file .env.local
    You have to write other setting that no encrypt apply, such as:
    DEBUG=True
    UNDER_CONSTRUCTION=False
    DB_ENGINE=django.db.backends.mysql
    DB_NAME=db_name
    DB_USER=root
    DB_HOST=127.0.0.1
    DB_PORT=3306

Note:

File .env.local must be :
    .env.local or
    .env.server (nothing else)

Decrypt from environment

Run inside settings.py (django project settings)            
> from encryption import OutboxEncryption
> lib = OutboxEncryption()

Setting unique variable that only exists in local environment, and not exist in server 
We choose env_outbox_encrypt
> lib.set_keyword_local('env_outbox_encrypt')

List of key variable that must be encrypt or decrypt before set or get data
> mplaint_key = ['DB_PASSWORD', 'SECRET_KEY']

Variable that must be cast as list from environmnet to settings.py
> mplaint_list = ['ALLOWED_HOSTS']

Variable that must be cast as tuple from environment to settings.py
> mplaint_tuple = ['SECURE_PROXY_SSL_HEADER']

Get encryption data
> dict1 = lib.decrypt_environ(mplaint_key, mplaint_list, mplaint_tuple)

Setting variable :
> DEBUG = dict1['DEBUG']
> UNDER_CONSTRUCTION = dict1['UNDER_CONSTRUCTION']
> DEBUG = dict1['DEBUG']
> SECRET_KEY = dict1['SECRET_KEY']
> ALLOWED_HOSTS = dict1['ALLOWED_HOSTS']
> DATABASES = {
    'default': {
        'ENGINE'    : dict1['DB_ENGINE'],
        'NAME'      : dict1['DB_NAME'],
        'USER'      : dict1['DB_USER'],
        'PASSWORD'  : dict1['DB_PASSWORD'],
        'HOST'      : dict1['DB_HOST'],
        'PORT'      : dict1['DB_PORT'],
    }
> SECURE_PROXY_SSL_HEADER = dict1['SECURE_PROXY_SSL_HEADER']

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

outbox-encryption-1.0.12.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

outbox_encryption-1.0.12-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file outbox-encryption-1.0.12.tar.gz.

File metadata

  • Download URL: outbox-encryption-1.0.12.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for outbox-encryption-1.0.12.tar.gz
Algorithm Hash digest
SHA256 d34e0c3719d1132bd44cd1f763ac0597b6c982f1cb22602f25ba71c64abd8ebd
MD5 438e01365a739056fd2d604d88acac56
BLAKE2b-256 a3b575dd5edd73c2a09e1a2594945b9fe747047bdfc0b813c6edee14b74ae441

See more details on using hashes here.

Provenance

File details

Details for the file outbox_encryption-1.0.12-py3-none-any.whl.

File metadata

File hashes

Hashes for outbox_encryption-1.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 51d7bda03be56eb7a1532c49eef5652e085f7b6b4d45e93ba6210dd4b671b2f8
MD5 a5ec268c966250dd3fa5f650e62ffa2f
BLAKE2b-256 8adde462552195000cfee4ec3b3a3e8fb48d6c59af1e123eb4f7db2fc660aea0

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page