env

UsersDotEnv

class msdss_users_api.env.UsersDotEnv(jwt_secret='MSDSS_USERS_JWT_SECRET', cookie_secret='MSDSS_USERS_COOKIE_SECRET', reset_password_token_secret='MSDSS_USERS_RESET_PASSWORD_TOKEN_SECRET', verification_token_secret='MSDSS_USERS_VERIFICATION_TOKEN_SECRET', defaults={}, env_file='./.env', key_path=None)[source]

Class to manage user environment variables.

  • Extends msdss_base_dotenv:msdss_base_dotenv.core.DotEnv

Parameters
  • cookie_secret (str) – The environmental variable name for cookie_secret.

  • jwt_secret (str) – The environmental variable name for jwt_secret.

  • reset_password_token_secret (str) – The environmental variable name for reset_password_token_secret.

  • verification_token_secret (str) – The environmental variable name for verification_token_secret.

  • defaults (dict) – Default values for above parameters if they are not set.

  • env_file (str) – The path of the file with environmental variables.

  • key_path (str) – The path of the key file for the env_file.

Author

Richard Wen <rrwen.dev@gmail.com>

Example

from msdss_users_api.env import UsersDotEnv

# Get default env vars
env = UsersDotEnv()
env.save() # save to .env file
env.load() # load the same file

# Print defaults
print('default_env:\n')
for k, name in env.mappings.items():
    value = str(env.get(k))
    print(f'{name}: {value}')

# Remove saved .env file
env.clear()

# Create users env with diff var names for secrets
alt_env = UsersDotEnv(
    cookie_secret='MSDSS_USERS_SECRET_B',
    reset_password_token_secret='MSDSS_USERS_RESET_PASSWORD_TOKEN_SECRET_B',
    verification_token_secret='MSDSS_USERS_VERIFICATION_TOKEN_SECRET_B'
)

# Set secret
alt_env.set('cookie_secret', 'some-secret-phrase')

# Set verification token secret and delete
alt_env.set('verification_token_secret', 'to-be-deleted')
alt_env.delete('verification_token_secret')

# Check if reset password token is set
reset_password_is_set = alt_env.is_set('reset_password_token_secret')

# Print custom env
# See new env
print('\nalt_env:\n')
for k, name in alt_env.mappings.items():
    value = str(alt_env.get(k))
    print(f'{name}: {value}')
print('reset_password_is_set: ' + str(reset_password_is_set))

# Clear alt env files
alt_env.clear()
default_env:

MSDSS_USERS_JWT_SECRET: jwt-secret
MSDSS_USERS_COOKIE_SECRET: cookie-secret
MSDSS_USERS_RESET_PASSWORD_TOKEN_SECRET: reset-phrase
MSDSS_USERS_VERIFICATION_TOKEN_SECRET: verification-phrase

alt_env:

MSDSS_USERS_JWT_SECRET: jwt-secret
MSDSS_USERS_SECRET_B: some-secret-phrase
MSDSS_USERS_RESET_PASSWORD_TOKEN_SECRET_B: None
MSDSS_USERS_VERIFICATION_TOKEN_SECRET_B: None
reset_password_is_set: False