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 = Flask(__name__)
|
||||||
|
|
||||||
application.config.from_object(os.environ['NOTIFY_API_ENVIRONMENT'])
|
application.config.from_object(os.environ['NOTIFY_API_ENVIRONMENT'])
|
||||||
|
|
||||||
if app_name:
|
if app_name:
|
||||||
application.config['NOTIFY_APP_NAME'] = app_name
|
application.config['NOTIFY_APP_NAME'] = app_name
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,21 @@
|
|||||||
from app import notify_celery, create_app
|
from app import notify_celery, create_app
|
||||||
from credstash import getAllSecrets
|
from credstash import getAllSecrets
|
||||||
import os
|
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
|
# on aws get secrets and export to env
|
||||||
secrets = getAllSecrets(region="eu-west-1")
|
secrets = getAllSecrets(region="eu-west-1")
|
||||||
for key, val in secrets.items():
|
for key, val in secrets.items():
|
||||||
os.environ[key] = val
|
os.environ[key] = val
|
||||||
|
|
||||||
|
os.environ['NOTIFY_API_ENVIRONMENT'] = configs[environment]
|
||||||
|
|
||||||
application = create_app()
|
application = create_app()
|
||||||
application.app_context().push()
|
application.app_context().push()
|
||||||
|
|||||||
@@ -84,3 +84,9 @@ class Development(Config):
|
|||||||
|
|
||||||
class Test(Development):
|
class Test(Development):
|
||||||
pass
|
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 app import create_app
|
||||||
from credstash import getAllSecrets
|
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
|
# on aws get secrets and export to env
|
||||||
secrets = getAllSecrets(region="eu-west-1")
|
secrets = getAllSecrets(region="eu-west-1")
|
||||||
for key, val in secrets.items():
|
for key, val in secrets.items():
|
||||||
os.environ[key] = val
|
os.environ[key] = val
|
||||||
|
|
||||||
|
os.environ['NOTIFY_API_ENVIRONMENT'] = configs[environment]
|
||||||
|
|
||||||
application = create_app()
|
application = create_app()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
application.run()
|
application.run()
|
||||||
|
|||||||
Reference in New Issue
Block a user