From d87d673b8583d1143322832efe0255f4f06fdee2 Mon Sep 17 00:00:00 2001 From: Ryan Ahearn Date: Tue, 18 Oct 2022 16:16:13 -0400 Subject: [PATCH] Consolidate and simplify environment variables and config.py --- .github/workflows/checks.yml | 13 +- .github/workflows/daily_checks.yml | 14 +- app/config.py | 233 ++++++++++------------------- manifest.yml | 5 +- sample.env | 22 +-- 5 files changed, 79 insertions(+), 208 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 518bee75c..722ff8eb2 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -10,20 +10,9 @@ env: FLASK_APP: application.py FLASK_ENV: development WERKZEUG_DEBUG_PIN: off - REDIS_URL: "redis://you-forgot-to-mock-a-redis-call-to" - REDIS_ENABLED: True - ANTIVIRUS_ENABLED: 0 + REDIS_ENABLED: 0 NODE_VERSION: 16.15.1 - ADMIN_CLIENT_ID: notify-admin - ADMIN_CLIENT_USERNAME: notify-admin - ADMIN_CLIENT_SECRET: dev-notify-secret-key - GOVUK_ALERTS_CLIENT_ID: govuk-alerts - ADMIN_BASE_URL: http://localhost:6012 - API_HOST_NAME: http://localhost:6011 - DEV_API_HOST_NAME: http://localhost:6011 AWS_REGION: us-west-2 - BASIC_AUTH_USERNAME: curiousabout - BASIC_AUTH_PASSWORD: the10xnotifybeta jobs: build: diff --git a/.github/workflows/daily_checks.yml b/.github/workflows/daily_checks.yml index 6cc18b884..0f93d0731 100644 --- a/.github/workflows/daily_checks.yml +++ b/.github/workflows/daily_checks.yml @@ -14,21 +14,9 @@ env: FLASK_APP: application.py FLASK_ENV: development WERKZEUG_DEBUG_PIN: off - REDIS_URL: redis://adminredis:6379/0 - DEV_REDIS_URL: redis://adminredis:6379/0 - REDIS_ENABLED: False - ANTIVIRUS_ENABLED: 0 + REDIS_ENABLED: 0 NODE_VERSION: 16.15.1 - ADMIN_CLIENT_ID: notify-admin - ADMIN_CLIENT_USERNAME: notify-admin - ADMIN_CLIENT_SECRET: dev-notify-secret-key - GOVUK_ALERTS_CLIENT_ID: govuk-alerts - ADMIN_BASE_URL: http://localhost:6012 - API_HOST_NAME: http://localhost:6011 - DEV_API_HOST_NAME: http://localhost:6011 AWS_REGION: us-west-2 - BASIC_AUTH_USERNAME: curiousabout - BASIC_AUTH_PASSWORD: the10xnotifybeta jobs: dependency-audits: diff --git a/app/config.py b/app/config.py index 95521c451..e99a79eaa 100644 --- a/app/config.py +++ b/app/config.py @@ -9,39 +9,43 @@ if os.environ.get('VCAP_SERVICES'): class Config(object): + NOTIFY_APP_NAME = 'admin' + NOTIFY_ENVIRONMENT = os.environ.get('NOTIFY_ENVIRONMENT', 'development') + API_HOST_NAME = os.environ.get('API_HOST_NAME', 'localhost') + ADMIN_BASE_URL = os.environ.get('ADMIN_BASE_URL', 'http://localhost:6012') + HEADER_COLOUR = '#81878b' # mix(govuk-colour("dark-grey"), govuk-colour("mid-grey")) + LOGO_CDN_DOMAIN = 'static-logos.notifications.service.gov.uk' # TODO use our own CDN + ASSETS_DEBUG = False + + # Credentials ADMIN_CLIENT_SECRET = os.environ.get('ADMIN_CLIENT_SECRET') ADMIN_CLIENT_USER_NAME = os.environ.get('ADMIN_CLIENT_USERNAME') - API_HOST_NAME = os.environ.get('API_HOST_NAME', 'localhost') SECRET_KEY = os.environ.get('SECRET_KEY') DANGEROUS_SALT = os.environ.get('DANGEROUS_SALT') - ZENDESK_API_KEY = os.environ.get('ZENDESK_API_KEY') + # ZENDESK_API_KEY = os.environ.get('ZENDESK_API_KEY') + ROUTE_SECRET_KEY_1 = os.environ.get('ROUTE_SECRET_KEY_1', 'dev-route-secret-key-1') + ROUTE_SECRET_KEY_2 = os.environ.get('ROUTE_SECRET_KEY_2', 'dev-route-secret-key-2') + BASIC_AUTH_USERNAME = os.environ.get('BASIC_AUTH_USERNAME') + BASIC_AUTH_PASSWORD = os.environ.get('BASIC_AUTH_PASSWORD') - # if we're not on cloudfoundry, we can get to this app from localhost. but on cloudfoundry its different - ADMIN_BASE_URL = os.environ.get('ADMIN_BASE_URL', 'http://localhost:6012') - - TEMPLATE_PREVIEW_API_HOST = os.environ.get('TEMPLATE_PREVIEW_API_HOST', 'http://localhost:6013') + TEMPLATE_PREVIEW_API_HOST = os.environ.get('TEMPLATE_PREVIEW_API_HOST', 'http://localhost:9999') TEMPLATE_PREVIEW_API_KEY = os.environ.get('TEMPLATE_PREVIEW_API_KEY', 'my-secret-key') + ANTIVIRUS_API_HOST = os.environ.get('ANTIVIRUS_API_HOST', 'http://localhost:6016') + ANTIVIRUS_API_KEY = os.environ.get('ANTIVIRUS_API_KEY', 'test-key') # Logging - DEBUG = False + NOTIFY_LOG_LEVEL = os.environ.get('NOTIFY_LOG_LEVEL', 'INFO') NOTIFY_LOG_PATH = os.environ.get('NOTIFY_LOG_PATH', 'application.log') - ANTIVIRUS_API_HOST = os.environ.get('ANTIVIRUS_API_HOST') - ANTIVIRUS_API_KEY = os.environ.get('ANTIVIRUS_API_KEY') - - ASSETS_DEBUG = False - AWS_REGION = os.environ.get('AWS_REGION') DEFAULT_SERVICE_LIMIT = 50 EMAIL_EXPIRY_SECONDS = 3600 # 1 hour INVITATION_EXPIRY_SECONDS = 3600 * 24 * 2 # 2 days - also set on api EMAIL_2FA_EXPIRY_SECONDS = 1800 # 30 Minutes - HEADER_COLOUR = '#81878b' # mix(govuk-colour("dark-grey"), govuk-colour("mid-grey")) - HTTP_PROTOCOL = 'http' - NOTIFY_APP_NAME = 'admin' - NOTIFY_LOG_LEVEL = os.environ.get('NOTIFY_LOG_LEVEL', 'INFO') PERMANENT_SESSION_LIFETIME = 20 * 60 * 60 # 20 hours SEND_FILE_MAX_AGE_DEFAULT = 365 * 24 * 60 * 60 # 1 year + REPLY_TO_EMAIL_ADDRESS_VALIDATION_TIMEOUT = 45 + ACTIVITY_STATS_LIMIT_DAYS = 7 SESSION_COOKIE_HTTPONLY = True SESSION_COOKIE_NAME = 'notify_admin_session' SESSION_COOKIE_SECURE = True @@ -51,39 +55,13 @@ class Config(object): SESSION_REFRESH_EACH_REQUEST = False WTF_CSRF_ENABLED = True WTF_CSRF_TIME_LIMIT = None - CSV_UPLOAD_BUCKET_NAME = 'local-notifications-csv-upload' - CSV_UPLOAD_ACCESS_KEY = os.environ.get('AWS_ACCESS_KEY_ID') - CSV_UPLOAD_SECRET_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY') - CSV_UPLOAD_REGION = os.environ.get('AWS_REGION') - CONTACT_LIST_UPLOAD_BUCKET_NAME = 'local-contact-list' - CONTACT_LIST_UPLOAD_ACCESS_KEY = os.environ.get('AWS_ACCESS_KEY_ID') - CONTACT_LIST_UPLOAD_SECRET_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY') - CONTACT_LIST_UPLOAD_REGION = os.environ.get('AWS_REGION') - ACTIVITY_STATS_LIMIT_DAYS = 7 - - REPLY_TO_EMAIL_ADDRESS_VALIDATION_TIMEOUT = 45 - - NOTIFY_ENVIRONMENT = 'development' - LOGO_UPLOAD_BUCKET_NAME = 'public-logos-local' - LOGO_UPLOAD_ACCESS_KEY = os.environ.get('AWS_ACCESS_KEY_ID') - LOGO_UPLOAD_SECRET_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY') - LOGO_UPLOAD_REGION = os.environ.get('AWS_REGION') - # MOU_BUCKET_NAME = 'local-mou' - # TRANSIENT_UPLOADED_LETTERS = 'local-transient-uploaded-letters' - ROUTE_SECRET_KEY_1 = os.environ.get('ROUTE_SECRET_KEY_1', 'dev-route-secret-key-1') - ROUTE_SECRET_KEY_2 = os.environ.get('ROUTE_SECRET_KEY_2', 'dev-route-secret-key-2') CHECK_PROXY_HEADER = False - ANTIVIRUS_ENABLED = True + ANTIVIRUS_ENABLED = os.environ.get('ANTIVIRUS_ENABLED') == '1' + + AWS_REGION = os.environ.get('AWS_REGION') REDIS_URL = os.environ.get('REDIS_URL') - REDIS_ENABLED = True - - BASIC_AUTH_USERNAME = os.environ.get('BASIC_AUTH_USERNAME') - BASIC_AUTH_PASSWORD = os.environ.get('BASIC_AUTH_PASSWORD') - BASIC_AUTH_FORCE = True - - ASSET_DOMAIN = '' - ASSET_PATH = '/static/' + REDIS_ENABLED = os.environ.get('REDIS_ENABLED', '1') == '1' # as defined in api db migration 0331_add_broadcast_org.py BROADCAST_ORGANISATION_ID = '38e4bf69-93b0-445d-acee-53ea53fe02df' @@ -106,167 +84,106 @@ class Config(object): class Development(Config): - ADMIN_BASE_URL = 'http://localhost:6012' BASIC_AUTH_FORCE = False - NOTIFY_LOG_PATH = 'application.log' DEBUG = True SESSION_COOKIE_SECURE = False SESSION_PROTECTION = None + HTTP_PROTOCOL = 'http' + ASSET_DOMAIN = '' + ASSET_PATH = '/static/' # Buckets CSV_UPLOAD_BUCKET_NAME = 'local-notifications-csv-upload' # created in gsa sandbox + CSV_UPLOAD_ACCESS_KEY = os.environ.get('AWS_ACCESS_KEY_ID') + CSV_UPLOAD_SECRET_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY') + CSV_UPLOAD_REGION = os.environ.get('AWS_REGION') CONTACT_LIST_UPLOAD_BUCKET_NAME = 'local-contact-list' # created in gsa sandbox + CONTACT_LIST_UPLOAD_ACCESS_KEY = os.environ.get('AWS_ACCESS_KEY_ID') + CONTACT_LIST_UPLOAD_SECRET_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY') + CONTACT_LIST_UPLOAD_REGION = os.environ.get('AWS_REGION') LOGO_UPLOAD_BUCKET_NAME = 'local-public-logos-tools' # created in gsa sandbox - # MOU_BUCKET_NAME = 'local-notify-tools-mou' # created in gsa sandbox + LOGO_UPLOAD_ACCESS_KEY = os.environ.get('AWS_ACCESS_KEY_ID') + LOGO_UPLOAD_SECRET_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY') + LOGO_UPLOAD_REGION = os.environ.get('AWS_REGION') + # MOU_BUCKET_NAME = 'local-notify-tools-mou' # not created in gsa sandbox # TRANSIENT_UPLOADED_LETTERS = 'development-transient-uploaded-letters' # not created in gsa sandbox # PRECOMPILED_ORIGINALS_BACKUP_LETTERS = # 'development-letters-precompiled-originals-backup' # not created in sandbox - ADMIN_CLIENT_SECRET = os.environ.get('ADMIN_CLIENT_SECRET') - # check for local compose orchestration variable - API_HOST_NAME = os.environ.get('DEV_API_HOST_NAME', 'http://dev:6011') + # credential overrides DANGEROUS_SALT = 'dev-notify-salt' SECRET_KEY = 'dev-notify-secret-key' # nosec B105 - only used in development - ANTIVIRUS_API_HOST = 'http://localhost:6016' - ANTIVIRUS_API_KEY = 'test-key' - ANTIVIRUS_ENABLED = os.environ.get('ANTIVIRUS_ENABLED') == '1' - - ASSET_PATH = '/static/' - LOGO_CDN_DOMAIN = 'static-logos.notify.tools' # replace with our own CDN + # ADMIN_CLIENT_USER_NAME is called ADMIN_CLIENT_ID in api repo, they should match + ADMIN_CLIENT_USER_NAME = 'notify-admin' + ADMIN_CLIENT_SECRET = 'dev-notify-secret-key' # nosec B105 - only used in development class Test(Development): - BASIC_AUTH_FORCE = False - DEBUG = True TESTING = True WTF_CSRF_ENABLED = False - CSV_UPLOAD_BUCKET_NAME = 'test-notifications-csv-upload' - CONTACT_LIST_UPLOAD_BUCKET_NAME = 'test-contact-list' - LOGO_UPLOAD_BUCKET_NAME = 'public-logos-test' - LOGO_CDN_DOMAIN = 'static-logos.test.com' - # MOU_BUCKET_NAME = 'test-mou' - # TRANSIENT_UPLOADED_LETTERS = 'test-transient-uploaded-letters' - # PRECOMPILED_ORIGINALS_BACKUP_LETTERS = 'test-letters-precompiled-originals-backup' - NOTIFY_ENVIRONMENT = 'test' - API_HOST_NAME = 'http://you-forgot-to-mock-an-api-call-to' - REDIS_URL = 'redis://you-forgot-to-mock-a-redis-call-to' - TEMPLATE_PREVIEW_API_HOST = 'http://localhost:9999' - ANTIVIRUS_API_HOST = 'https://test-antivirus' - ANTIVIRUS_API_KEY = 'test-antivirus-secret' - ANTIVIRUS_ENABLED = True - ASSET_DOMAIN = 'static.example.com' ASSET_PATH = 'https://static.example.com/' + # none of these buckets actually exist + CSV_UPLOAD_BUCKET_NAME = 'test-notifications-csv-upload' + CONTACT_LIST_UPLOAD_BUCKET_NAME = 'test-contact-list' + LOGO_UPLOAD_BUCKET_NAME = 'public-logos-test' + # MOU_BUCKET_NAME = 'test-mou' + # TRANSIENT_UPLOADED_LETTERS = 'test-transient-uploaded-letters' + # PRECOMPILED_ORIGINALS_BACKUP_LETTERS = 'test-letters-precompiled-originals-backup' -class Scanning(Test): - BASIC_AUTH_FORCE = False - API_HOST_NAME = 'https://notifications-api.app.cloud.gov/' - NOTIFY_ENVIRONMENT = 'scanning' - ASSET_DOMAIN = '' - ASSET_PATH = '/static/' + API_HOST_NAME = 'http://you-forgot-to-mock-an-api-call-to' + REDIS_URL = 'redis://you-forgot-to-mock-a-redis-call-to' + ANTIVIRUS_API_HOST = 'https://test-antivirus' + ANTIVIRUS_API_KEY = 'test-antivirus-secret' + ANTIVIRUS_ENABLED = True + LOGO_CDN_DOMAIN = 'static-logos.test.com' -class Preview(Config): - BASIC_AUTH_FORCE = True - HTTP_PROTOCOL = 'https' - HEADER_COLOUR = '#F499BE' # $baby-pink - CSV_UPLOAD_BUCKET_NAME = 'preview-notifications-csv-upload' - CONTACT_LIST_UPLOAD_BUCKET_NAME = 'preview-contact-list' - LOGO_UPLOAD_BUCKET_NAME = 'public-logos-preview' - LOGO_CDN_DOMAIN = 'static-logos.notify.works' - # MOU_BUCKET_NAME = 'notify.works-mou' - # TRANSIENT_UPLOADED_LETTERS = 'preview-transient-uploaded-letters' - # PRECOMPILED_ORIGINALS_BACKUP_LETTERS = 'preview-letters-precompiled-originals-backup' - NOTIFY_ENVIRONMENT = 'preview' - CHECK_PROXY_HEADER = False - ASSET_DOMAIN = 'static.notify.works' - ASSET_PATH = 'https://static.notify.works/' - - # On preview, extend the validation timeout to allow more leniency when running functional tests - REPLY_TO_EMAIL_ADDRESS_VALIDATION_TIMEOUT = 120 - - -class Staging(Config): - BASIC_AUTH_FORCE = True - HTTP_PROTOCOL = 'https' - HEADER_COLOUR = '#6F72AF' # $mauve - CSV_UPLOAD_BUCKET_NAME = 'staging-notifications-csv-upload' - CONTACT_LIST_UPLOAD_BUCKET_NAME = 'staging-contact-list' - LOGO_UPLOAD_BUCKET_NAME = 'public-logos-staging' - LOGO_CDN_DOMAIN = 'static-logos.staging-notify.works' - # MOU_BUCKET_NAME = 'staging-notify.works-mou' - # TRANSIENT_UPLOADED_LETTERS = 'staging-transient-uploaded-letters' - # PRECOMPILED_ORIGINALS_BACKUP_LETTERS = 'staging-letters-precompiled-originals-backup' - NOTIFY_ENVIRONMENT = 'staging' - CHECK_PROXY_HEADER = False - ASSET_DOMAIN = 'static.staging-notify.works' - ASSET_PATH = 'https://static.staging-notify.works/' - - -class Live(Config): - BASIC_AUTH_FORCE = True +class Production(Config): HEADER_COLOUR = '#005EA5' # $govuk-blue HTTP_PROTOCOL = 'https' + BASIC_AUTH_FORCE = True + ASSET_DOMAIN = '' # TODO use a CDN + ASSET_PATH = '/static/' # TODO use a CDN + DEBUG = False + # buckets - CSV_UPLOAD_BUCKET_NAME = os.environ.get( - 'CSV_UPLOAD_BUCKET_NAME', 'notifications-prototype-csv-upload') # created in gsa sandbox + CSV_UPLOAD_BUCKET_NAME = os.environ.get('CSV_UPLOAD_BUCKET_NAME') CSV_UPLOAD_ACCESS_KEY = os.environ.get('CSV_UPLOAD_ACCESS_KEY') CSV_UPLOAD_SECRET_KEY = os.environ.get('CSV_UPLOAD_SECRET_KEY') CSV_UPLOAD_REGION = os.environ.get('CSV_UPLOAD_REGION') - CONTACT_LIST_UPLOAD_BUCKET_NAME = os.environ.get( - 'CONTACT_LIST_BUCKET_NAME', 'notifications-prototype-contact-list-upload') # created in gsa sandbox + CONTACT_LIST_UPLOAD_BUCKET_NAME = os.environ.get('CONTACT_LIST_BUCKET_NAME') CONTACT_LIST_UPLOAD_ACCESS_KEY = os.environ.get('CONTACT_LIST_ACCESS_KEY') CONTACT_LIST_UPLOAD_SECRET_KEY = os.environ.get('CONTACT_LIST_SECRET_KEY') CONTACT_LIST_UPLOAD_REGION = os.environ.get('CONTACT_LIST_REGION') - LOGO_UPLOAD_BUCKET_NAME = os.environ.get( - 'LOGO_UPLOAD_BUCKET_NAME', 'notifications-prototype-logo-upload') # created in gsa sandbox + LOGO_UPLOAD_BUCKET_NAME = os.environ.get('LOGO_UPLOAD_BUCKET_NAME') LOGO_UPLOAD_ACCESS_KEY = os.environ.get('LOGO_UPLOAD_ACCESS_KEY') LOGO_UPLOAD_SECRET_KEY = os.environ.get('LOGO_UPLOAD_SECRET_KEY') LOGO_UPLOAD_REGION = os.environ.get('LOGO_UPLOAD_REGION') - # MOU_BUCKET_NAME = os.environ.get( - # 'MOU_UPLOAD_BUCKET_NAME', 'notifications-prototype-mou') # created in gsa sandbox + # MOU_BUCKET_NAME = os.environ.get('MOU_UPLOAD_BUCKET_NAME') # TRANSIENT_UPLOADED_LETTERS = 'prototype-transient-uploaded-letters' # not created in gsa sandbox # PRECOMPILED_ORIGINALS_BACKUP_LETTERS = 'prototype-letters-precompiled-originals-backup' # not in sandbox - NOTIFY_ENVIRONMENT = 'live' - CHECK_PROXY_HEADER = False - # ASSET_DOMAIN = 'static.notifications.service.gov.uk' - # ASSET_PATH = 'https://static.notifications.service.gov.uk/' - ASSET_DOMAIN = '' # TODO use a CDN - ASSET_PATH = '/static/' # TODO use a CDN - LOGO_CDN_DOMAIN = 'static-logos.notifications.service.gov.uk' # TODO use our own CDN - ADMIN_CLIENT_SECRET = os.environ.get('ADMIN_CLIENT_SECRET') - ADMIN_CLIENT_USER_NAME = os.environ.get('ADMIN_CLIENT_USERNAME') - API_HOST_NAME = os.environ.get('API_HOST_NAME') - DANGEROUS_SALT = os.environ.get('DANGEROUS_SALT') - SECRET_KEY = os.environ.get('SECRET_KEY') - ANTIVIRUS_API_HOST = 'http://localhost:6016' - ANTIVIRUS_API_KEY = 'test-key' - ANTIVIRUS_ENABLED = False +class Staging(Production): + BASIC_AUTH_FORCE = True + HEADER_COLOUR = '#6F72AF' # $mauve -class CloudFoundryConfig(Config): - pass - - -# CloudFoundry sandbox -class Sandbox(CloudFoundryConfig): - HTTP_PROTOCOL = 'https' - HEADER_COLOUR = '#F499BE' # $baby-pink - CSV_UPLOAD_BUCKET_NAME = 'cf-sandbox-notifications-csv-upload' - LOGO_UPLOAD_BUCKET_NAME = 'cf-sandbox-notifications-logo-upload' - NOTIFY_ENVIRONMENT = 'sandbox' +class Scanning(Production): + BASIC_AUTH_FORCE = False + HTTP_PROTOCOL = 'http' + API_HOST_NAME = 'https://notifications-api.app.cloud.gov/' + SECRET_KEY = 'dev-notify-secret-key' # nosec B105 - only used in development + ADMIN_CLIENT_USER_NAME = 'notify-admin' + ADMIN_CLIENT_SECRET = 'dev-notify-secret-key' # nosec B105 - only used in development configs = { 'development': Development, 'test': Test, 'scanning': Scanning, - 'preview': Preview, 'staging': Staging, - 'live': Live, - 'production': Live, - 'sandbox': Sandbox + 'production': Production } diff --git a/manifest.yml b/manifest.yml index d1fabb8aa..36b4eaf62 100644 --- a/manifest.yml +++ b/manifest.yml @@ -10,9 +10,6 @@ applications: - route: notifications-admin.app.cloud.gov services: - # - logit-ssl-syslog-drain - # - notify-prometheus - # - notify-splunk - notifications-admin-redis-((env)) - notifications-api-csv-upload-bucket-((env)) - notifications-api-contact-list-bucket-((env)) @@ -27,7 +24,7 @@ applications: DEPLOY_ENV: ((env)) REDIS_ENABLED: ((REDIS_ENABLED)) - NOTIFY_ENVIRONMENT: live + NOTIFY_ENVIRONMENT: ((env)) # Credentials variables ADMIN_CLIENT_SECRET: ((ADMIN_CLIENT_SECRET)) diff --git a/sample.env b/sample.env index 6fdce3b14..663dd35e6 100644 --- a/sample.env +++ b/sample.env @@ -5,34 +5,14 @@ FLASK_APP=application.py FLASK_ENV=development WERKZEUG_DEBUG_PIN=off -REDIS_URL=redis://adminredis:6379/0 -DEV_REDIS_URL=redis://adminredis:6379/0 -REDIS_ENABLED=True - -SQLALCHEMY_DATABASE_URI=postgres://postgres:chummy@db:5432/notification_api - ANTIVIRUS_ENABLED=0 NODE_VERSION=16.15.1 -# ADMIN_CLIENT_USERNAME is called ADMIN_CLIENT_ID in api repo, they should match -ADMIN_CLIENT_USERNAME=notify-admin -ADMIN_CLIENT_SECRET=dev-notify-secret-key -GOVUK_ALERTS_CLIENT_ID=govuk-alerts - -# URL of admin app -ADMIN_BASE_URL=http://admin:6012 - # URL of api app (on AWS this is the internal api endpoint) API_HOST_NAME=http://dev:6011 -DEV_API_HOST_NAME=http://dev:6011 +REDIS_URL=redis://adminredis:6379/0 # AWS AWS_REGION=us-west-2 AWS_ACCESS_KEY_ID="don't write secrets to the sample file" AWS_SECRET_ACCESS_KEY="don't write secrets to the sample file" - -# beta protection -BASIC_AUTH_USERNAME=username -BASIC_AUTH_PASSWORD=password - -