Coverage for utilities/secret_key.py: 0%
6 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1"""Generate SECRET_KEY values. Import-safe (stdlib only), so it works before Django or a NetBox
2configuration exists: backs `netbox secret-key` and the netbox/generate_secret_key.py script."""
4import secrets
6__all__ = ('SECRET_KEY_CHARSET', 'SECRET_KEY_LENGTH', 'generate_secret_key')
8SECRET_KEY_CHARSET = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*(-_=+)'
9SECRET_KEY_LENGTH = 50
12def generate_secret_key():
13 """Return a random 50-character string suitable for SECRET_KEY or an API token pepper."""
14 return ''.join(secrets.choice(SECRET_KEY_CHARSET) for _ in range(SECRET_KEY_LENGTH))