diff --git a/app/__init__.py b/app/__init__.py index 28508cb1f..f34177786 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -31,6 +31,7 @@ def create_app(app_name=None): application = Flask(__name__) application.config.from_object(os.environ['NOTIFY_API_ENVIRONMENT']) + if app_name: application.config['NOTIFY_APP_NAME'] = app_name diff --git a/aws_run_celery.py b/aws_run_celery.py index 814e07f4b..bbc64d2ad 100644 --- a/aws_run_celery.py +++ b/aws_run_celery.py @@ -2,11 +2,19 @@ from app import notify_celery, create_app from credstash import getAllSecrets import os +from config import configs + +default_env_file = '/home/ubuntu/environment' +environment = 'live' + +if os.path.isfile(default_env_file): + with open(default_env_file, 'r') as environment_file: + environment = environment_file.readline().strip() # on aws get secrets and export to env -secrets = getAllSecrets(region="eu-west-1") -for key, val in secrets.items(): - os.environ[key] = val +os.environ.update(getAllSecrets(region="eu-west-1")) + +os.environ['NOTIFY_API_ENVIRONMENT'] = configs[environment] application = create_app() application.app_context().push() diff --git a/config.py b/config.py index c2b6ce984..0234e9e7b 100644 --- a/config.py +++ b/config.py @@ -84,3 +84,9 @@ class Development(Config): class Test(Development): pass + +configs = { + 'live': 'config_live.Live', + 'staging': 'config_staging.Staging', + 'preview': 'config.Config' +} diff --git a/config_live.py b/config_live.py new file mode 100644 index 000000000..57236f71c --- /dev/null +++ b/config_live.py @@ -0,0 +1,16 @@ +import os +from config import Config + + +class Live(Config): + ADMIN_BASE_URL = os.environ['LIVE_ADMIN_BASE_URL'] + ADMIN_CLIENT_SECRET = os.environ['LIVE_ADMIN_CLIENT_SECRET'] + DANGEROUS_SALT = os.environ['LIVE_DANGEROUS_SALT'] + NOTIFICATION_QUEUE_PREFIX = os.environ['LIVE_NOTIFICATION_QUEUE_PREFIX'] + NOTIFY_JOB_QUEUE = os.environ['LIVE_NOTIFY_JOB_QUEUE'] + SECRET_KEY = os.environ['LIVE_SECRET_KEY'] + SQLALCHEMY_DATABASE_URI = os.environ['LIVE_SQLALCHEMY_DATABASE_URI'] + VERIFY_CODE_FROM_EMAIL_ADDRESS = os.environ['LIVE_VERIFY_CODE_FROM_EMAIL_ADDRESS'] + NOTIFY_EMAIL_DOMAIN = os.environ['LIVE_NOTIFY_EMAIL_DOMAIN'] + FIRETEXT_API_KEY = os.getenv("LIVE_FIRETEXT_API_KEY") + TWILIO_AUTH_TOKEN = os.getenv('LIVE_TWILIO_AUTH_TOKEN') diff --git a/config_staging.py b/config_staging.py new file mode 100644 index 000000000..3c36cc1b7 --- /dev/null +++ b/config_staging.py @@ -0,0 +1,16 @@ +import os +from config import Config + + +class Staging(Config): + ADMIN_BASE_URL = os.environ['STAGING_ADMIN_BASE_URL'] + ADMIN_CLIENT_SECRET = os.environ['STAGING_ADMIN_CLIENT_SECRET'] + DANGEROUS_SALT = os.environ['STAGING_DANGEROUS_SALT'] + NOTIFICATION_QUEUE_PREFIX = os.environ['STAGING_NOTIFICATION_QUEUE_PREFIX'] + NOTIFY_JOB_QUEUE = os.environ['STAGING_NOTIFY_JOB_QUEUE'] + SECRET_KEY = os.environ['STAGING_SECRET_KEY'] + SQLALCHEMY_DATABASE_URI = os.environ['STAGING_SQLALCHEMY_DATABASE_URI'] + VERIFY_CODE_FROM_EMAIL_ADDRESS = os.environ['STAGING_VERIFY_CODE_FROM_EMAIL_ADDRESS'] + NOTIFY_EMAIL_DOMAIN = os.environ['STAGING_NOTIFY_EMAIL_DOMAIN'] + FIRETEXT_API_KEY = os.getenv("STAGING_FIRETEXT_API_KEY") + TWILIO_AUTH_TOKEN = os.getenv('STAGING_TWILIO_AUTH_TOKEN') diff --git a/wsgi.py b/wsgi.py index 3e9e20d2f..4149fb92a 100644 --- a/wsgi.py +++ b/wsgi.py @@ -2,13 +2,21 @@ import os from app import create_app from credstash import getAllSecrets +from config import configs + + +default_env_file = '/home/ubuntu/environment' +environment = 'live' + +if os.path.isfile(default_env_file): + with open(default_env_file, 'r') as environment_file: + environment = environment_file.readline().strip() # on aws get secrets and export to env -secrets = getAllSecrets(region="eu-west-1") -for key, val in secrets.items(): - os.environ[key] = val +os.environ.update(getAllSecrets(region="eu-west-1")) +os.environ['NOTIFY_API_ENVIRONMENT'] = configs[environment] application = create_app() if __name__ == "__main__": - application.run() + application.run()