Skip to main content

django_postgres_vault

Latest PyPI version

A simple Django database backend that allows rotating PostgreSQL access credentials via HashiCorp Vault

Usage

In your Django settings:

DATABASES = {
    'default': {
        'ENGINE': 'django_postgres_vault',
        'NAME': os.getenv('DB_NAME'),
        'HOST': os.getenv('DB_HOST'),
        'PORT': os.getenv('DB_PORT'),
        'VAULT_ADDR': os.getenv('VAULT_ADDR'),
        'VAULT_TOKEN': os.getenv('VAULT_TOKEN'),
        'VAULT_ROLE_NAME': os.getenv('VAULT_ROLE_NAME'),
        'VAULT_DB_MOUNT_POINT': os.getenv('VAULT_DB_MOUNT_POINT'),
    }
}

Explanation of settings:

  • NAME: The name of the Postgres database to connect to, as per Django standards.
  • HOST: The host location of the Postgres database to connect to, as per Django standards.
  • PORT: The host location port of the Postgres database to connect to, as per Django standards.
  • VAULT_ADDR: The URL of the Vault server that will be providing rotating access credentials for the database. This is the same value as the VAULT_ADDR environment variable used by the Vault CLI command. Example: https://vault-host-name:8200
  • VAULT_DB_MOUNT_POINT: The mount point of the database secrets engine in Vault. Default: database
  • VAULT_ROLE_NAME: The name of a Vault database secrets engine role configured to provide Postgres credentials.
  • VAULT_TOKEN: A Vault authentication token with read access to the database secrets engine role.

There are no USER or PASSWORD settings required because those will be dynamically provided by the Vault server. The settings can be provided, but will be ignored.

Installation

pip install django_postgres_vault

Requirements

  • Django>=3.0
  • psycopg2
  • hvac

Django and hvac should be automatically installed by pip, but psycopg2 will require manual installation. psycopg2 or psycopg2-binary are both acceptable, but explicitly requiring either one in setup.py will make the library less usable for some users, so we defer on that front.

Compatibility

We officially support the most recent version of Django (3.0), as well as its supported Python versions (3.6, 3.7, 3.8). Other versions will most likely work, but there are no guarantees.

Licence

MIT Licensed (see LICENSE)

Testing

Testing is done using Tox and PyTest. A super-simple Dockerfile is provided to allow running Tox in an isolated container.

Authors

django_postgres_vault was written by Joe Ciskey.

Release files for django-postgres-vault 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-postgres-vault 0.1.2
File Size Uploaded
django_postgres_vault-0.1.2.tar.gz 3.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-postgres-vault 0.1.2
File Interpreter ABI Platform
django_postgres_vault-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 8.9 kB

Release files / django_postgres_vault-0.1.2.tar.gz

Download URL django_postgres_vault-0.1.2.tar.gz
Size 3.9 kB
Tags Source
SHA-256 checksum
How to use checksums
baa2ecedd3d6136dd23df8570cc8e707a85907e47e88079d3aadbaee43a0ca04
BLAKE2b-256 checksum
How to use checksums
b204adaace99f215170ffcbafe6d42985b01de51316ee623506306b1d09eb73c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.0

Release files / django_postgres_vault-0.1.2-py3-none-any.whl

Download URL django_postgres_vault-0.1.2-py3-none-any.whl
Size 5.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6eb39228ade38f80b478c1f7b6763c251605f27da8b0444f4db7c3adb1e5a313
BLAKE2b-256 checksum
How to use checksums
8377718e07d22d1d4f551ef560bee96c6e0929b7e769952b37f1b1e967eb7361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.0

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page