mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-15 01:32:20 -05:00
Allowing overrides on a per environment basis
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -2,11 +2,21 @@
|
||||
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):
|
||||
environment_file = open(default_env_file, 'r')
|
||||
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['NOTIFY_API_ENVIRONMENT'] = configs[environment]
|
||||
|
||||
application = create_app()
|
||||
application.app_context().push()
|
||||
|
||||
@@ -84,3 +84,9 @@ class Development(Config):
|
||||
|
||||
class Test(Development):
|
||||
pass
|
||||
|
||||
configs = {
|
||||
'live': 'config_live.Live',
|
||||
'staging': 'config_staging.Staging',
|
||||
'preview': 'config.Config'
|
||||
}
|
||||
|
||||
16
config_live.py
Normal file
16
config_live.py
Normal file
@@ -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')
|
||||
16
config_staging.py
Normal file
16
config_staging.py
Normal file
@@ -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')
|
||||
13
wsgi.py
13
wsgi.py
@@ -2,13 +2,24 @@ 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):
|
||||
environment_file = open(default_env_file, 'r')
|
||||
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['NOTIFY_API_ENVIRONMENT'] = configs[environment]
|
||||
|
||||
application = create_app()
|
||||
|
||||
if __name__ == "__main__":
|
||||
application.run()
|
||||
application.run()
|
||||
|
||||
Reference in New Issue
Block a user