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

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.""" 

3 

4import secrets 

5 

6__all__ = ('SECRET_KEY_CHARSET', 'SECRET_KEY_LENGTH', 'generate_secret_key') 

7 

8SECRET_KEY_CHARSET = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*(-_=+)' 

9SECRET_KEY_LENGTH = 50 

10 

11 

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))