1.0.0
Django encrypted fields with support for multiple backends, currently supports symmetric encryption using Fernet and AWS Secrets Manager. Two fields types are currently supported, SecretTextField and SecretJSONField.
⚙️ Installation
Install django-secrets-fields:
pip install django-secrets-fieldsTo use backend that requires AWS install using:
pip install django-secrets-fields[aws]🤖 Usage
settings.py
DJANGO_SECRET_FIELDS = {
"default": {
"backend": "secrets_fields.backends.encrypted.EncryptedBackend",
"encryption_key": b"<fernet key>",
},
"aws": {
"backend": "secrets_fields.backends.secretsmanager.SecretsManagerBackend",
"prefix": "/path/",
},
}A Fernet can be generated using the following command:
python manage.py generate_fernet_keymodels.py
from django.db import models
from secrets_fields.fields import SecretJSONField, SecretTextField
class MyModel(models.Model):
secret_text = SecretTextField(backend="aws")
secret_json = SecretJSONField()