Metadata-Version: 2.4
Name: django-settings-enumerate
Version: 0.1.1
Summary: django management command to dump an ordered list of settings
Requires-Python: >=3.9
Requires-Dist: django>=4.2
Description-Content-Type: text/markdown

# django-settings-enumerate

Django management command that dumps all settings in a flattened dot-notation format with automatic sensitive-value hashing.

## Installation

```
pip install django-settings-enumerate
```

Add to `INSTALLED_APPS`:

```python
INSTALLED_APPS = [
    ...,
    "django_settings_enumerate",
]
```

## Usage

```sh
# Dump all settings (flattened text)
./manage.py enumerate_settings

# JSON output (nested, unchanged structure)
./manage.py enumerate_settings --format json

# Filter by prefix
./manage.py enumerate_settings --filter DATABASE

# Show sensitive values instead of sha256 hashes
./manage.py enumerate_settings --show-sensitive

# Diff against a previous dump
./manage.py enumerate_settings > baseline.txt
./manage.py enumerate_settings --diff baseline.txt
```

## Output format

Text output uses flattened dot-notation with JSON-encoded leaf values:

```
ALLOWED_HOSTS[0] = "*"
DATABASES.default.ENGINE = "django.db.backends.postgresql"
DATABASES.default.HOST = "localhost"
DEBUG = true
SECRET_KEY = "d4e5f6..."
```

Sensitive keys matching `API|TOKEN|KEY|SECRET|PASS|SIGNATURE` are replaced with their sha256 hash unless `--show-sensitive` is passed.

## Requirements

- Python >= 3.9
- Django >= 4.2
