diff --git a/.gitignore b/.gitignore index c84489e6a..af6a67fe5 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,5 @@ node_modules bower_components app/templates/govuk_template.html npm-debug.log + +environment.sh diff --git a/README.md b/README.md index a65436155..a10f52496 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,20 @@ in a separate terminal from the app npm run watch ``` +## Create a local environment.sh file containing the following: + +``` +echo " +export NOTIFY_ADMIN_ENVIRONMENT='config.Development' +export ADMIN_CLIENT_SECRET='dev-notify-secret-key' +export ADMIN_CLIENT_USER_NAME='dev-notify-admin' +export API_HOST_NAME='http://localhost:6011' +export DANGEROUS_SALT='dev-notify-salt' +export SECRET_KEY='dev-notify-secret-key' +"> environment.sh +``` + + ## Running the application ```shell diff --git a/app/main/notifications/__init__.py b/app/main/notifications/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/config.py b/config.py index da8d2ae08..471123055 100644 --- a/config.py +++ b/config.py @@ -3,52 +3,38 @@ from datetime import timedelta class Config(object): + DEBUG = False + ADMIN_CLIENT_SECRET = os.environ['ADMIN_CLIENT_SECRET'] + ADMIN_CLIENT_USER_NAME = os.environ['ADMIN_CLIENT_USER_NAME'] + API_HOST_NAME = os.environ['API_HOST_NAME'] ASSETS_DEBUG = False - cache = False - SEND_FILE_MAX_AGE_DEFAULT = 365 * 24 * 60 * 60 # 1 year - manifest = True - - NOTIFY_LOG_LEVEL = 'DEBUG' - NOTIFY_APP_NAME = 'admin' - NOTIFY_LOG_PATH = '/var/log/notify/application.log' - + AWS_REGION = 'eu-west-1' + DANGEROUS_SALT = os.environ['DANGEROUS_SALT'] + DEFAULT_SERVICE_LIMIT = 50 + EMAIL_EXPIRY_SECONDS = 3600 * 24 * 7 # one week + HEADER_COLOUR = '#FFBF47' # $yellow + HTTP_PROTOCOL = 'http' MAX_FAILED_LOGIN_COUNT = 10 - - SESSION_COOKIE_NAME = 'notify_admin_session' - SESSION_COOKIE_PATH = '/admin' - SESSION_COOKIE_HTTPONLY = True - SESSION_COOKIE_SECURE = True + NOTIFY_APP_NAME = 'admin' + NOTIFY_LOG_LEVEL = 'DEBUG' + NOTIFY_LOG_PATH = '/var/log/notify/application.log' PERMANENT_SESSION_LIFETIME = 3600 # seconds - SESSION_REFRESH_EACH_REQUEST = True - REMEMBER_COOKIE_NAME = 'notify_admin_remember_me' - REMEMBER_COOKIE_PATH = '/admin' REMEMBER_COOKIE_DURATION = timedelta(days=1) REMEMBER_COOKIE_HTTPONLY = True + REMEMBER_COOKIE_NAME = 'notify_admin_remember_me' + REMEMBER_COOKIE_PATH = '/admin' REMEMBER_COOKIE_SECURE = True - - API_HOST_NAME = os.getenv('API_HOST_NAME') - - ADMIN_CLIENT_USER_NAME = os.getenv('ADMIN_CLIENT_USER_NAME') - ADMIN_CLIENT_SECRET = os.getenv('ADMIN_CLIENT_SECRET') - - WTF_CSRF_ENABLED = True - HTTP_PROTOCOL = 'http' - SECRET_KEY = os.getenv('SECRET_KEY') - DANGEROUS_SALT = os.getenv('DANGEROUS_SALT') - TOKEN_MAX_AGE_SECONDS = 3600 - EMAIL_EXPIRY_SECONDS = TOKEN_MAX_AGE_SECONDS * 24 * 7 # one week - - DEFAULT_SERVICE_LIMIT = 50 - - MAX_CONTENT_LENGTH = 10 * 1024 * 1024 # 10mb - UPLOAD_FOLDER = '/tmp' - - HEADER_COLOUR = '#FFBF47' # $yellow - - AWS_REGION = 'eu-west-1' - + SECRET_KEY = os.environ['SECRET_KEY'] + SEND_FILE_MAX_AGE_DEFAULT = 365 * 24 * 60 * 60 # 1 year + SESSION_COOKIE_HTTPONLY = True + SESSION_COOKIE_NAME = 'notify_admin_session' + SESSION_COOKIE_PATH = '/admin' + SESSION_COOKIE_SECURE = True + SESSION_REFRESH_EACH_REQUEST = True SHOW_STYLEGUIDE = True + TOKEN_MAX_AGE_SECONDS = 3600 + WTF_CSRF_ENABLED = True EMAIL_DOMAIN_REGEXES = [ "gov.uk", @@ -65,23 +51,16 @@ class Config(object): class Development(Config): DEBUG = True - API_HOST_NAME = 'http://localhost:6011' - ADMIN_CLIENT_USER_NAME = 'dev-notify-admin' - ADMIN_CLIENT_SECRET = 'dev-notify-secret-key' - WTF_CSRF_ENABLED = False REMEMBER_COOKIE_SECURE = False SESSION_COOKIE_SECURE = False - SECRET_KEY = 'dev-notify-secret-key' - DANGEROUS_SALT = 'dev-notify-salt' + WTF_CSRF_ENABLED = False class Test(Development): - DEBUG = True - WTF_CSRF_ENABLED = False + pass class Preview(Config): - DEBUG = False HTTP_PROTOCOL = 'https' HEADER_COLOUR = '#F47738' # $orange diff --git a/config_live.py b/config_live.py index 5a3b64116..2856db0d4 100644 --- a/config_live.py +++ b/config_live.py @@ -6,7 +6,7 @@ class Live(Config): SHOW_STYLEGUIDE = False HEADER_COLOUR = '#B10E1E' # $red HTTP_PROTOCOL = 'https' - API_HOST_NAME = os.getenv('LIVE_API_HOST_NAME') - ADMIN_CLIENT_SECRET = os.getenv('LIVE_ADMIN_CLIENT_SECRET') - SECRET_KEY = os.getenv('LIVE_SECRET_KEY') - DANGEROUS_SALT = os.getenv('LIVE_DANGEROUS_SALT') + API_HOST_NAME = os.environ['LIVE_API_HOST_NAME'] + ADMIN_CLIENT_SECRET = os.environ['LIVE_ADMIN_CLIENT_SECRET'] + SECRET_KEY = os.environ['LIVE_SECRET_KEY'] + DANGEROUS_SALT = os.environ['LIVE_DANGEROUS_SALT'] diff --git a/config_staging.py b/config_staging.py index 5ce68b304..00870c2dd 100644 --- a/config_staging.py +++ b/config_staging.py @@ -5,7 +5,7 @@ from config import Config class Staging(Config): SHOW_STYLEGUIDE = False HTTP_PROTOCOL = 'https' - API_HOST_NAME = os.getenv('STAGING_API_HOST_NAME') - ADMIN_CLIENT_SECRET = os.getenv('STAGING_ADMIN_CLIENT_SECRET') - SECRET_KEY = os.getenv('STAGING_SECRET_KEY') - DANGEROUS_SALT = os.getenv('STAGING_DANGEROUS_SALT') + API_HOST_NAME = os.environ['STAGING_API_HOST_NAME'] + ADMIN_CLIENT_SECRET = os.environ['STAGING_ADMIN_CLIENT_SECRET'] + SECRET_KEY = os.environ['STAGING_SECRET_KEY'] + DANGEROUS_SALT = os.environ['STAGING_DANGEROUS_SALT'] diff --git a/environment_test.sh b/environment_test.sh new file mode 100644 index 000000000..9baca39f1 --- /dev/null +++ b/environment_test.sh @@ -0,0 +1,6 @@ +export NOTIFY_ADMIN_ENVIRONMENT='config.Test' +export ADMIN_CLIENT_SECRET='dev-notify-secret-key' +export ADMIN_CLIENT_USER_NAME='dev-notify-admin' +export API_HOST_NAME='http://localhost:6011' +export DANGEROUS_SALT='dev-notify-salt' +export SECRET_KEY='dev-notify-secret-key' diff --git a/scripts/run_app.sh b/scripts/run_app.sh index 9236e8642..1e3c4bf73 100755 --- a/scripts/run_app.sh +++ b/scripts/run_app.sh @@ -1,4 +1,4 @@ #!/bin/bash -export NOTIFY_ADMIN_ENVIRONMENT='config.Development' +source environment.sh python3 app.py runserver diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index bc80a179e..d2a2f4865 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -9,6 +9,8 @@ set -o pipefail +source environment_test.sh + function display_result { RESULT=$1 EXIT_STATUS=$2