2016-03-09 14:41:36 +00:00
|
|
|
from datetime import timedelta
|
2016-04-25 16:12:46 +01:00
|
|
|
from celery.schedules import crontab
|
2016-03-01 16:57:06 +00:00
|
|
|
from kombu import Exchange, Queue
|
2016-01-19 11:23:09 +00:00
|
|
|
import os
|
|
|
|
|
|
|
|
|
|
|
2015-12-10 10:56:59 +00:00
|
|
|
class Config(object):
|
|
|
|
|
DEBUG = False
|
2016-02-29 13:21:12 +00:00
|
|
|
ADMIN_BASE_URL = os.environ['ADMIN_BASE_URL']
|
2016-02-16 15:25:46 +00:00
|
|
|
ADMIN_CLIENT_USER_NAME = os.environ['ADMIN_CLIENT_USER_NAME']
|
|
|
|
|
ADMIN_CLIENT_SECRET = os.environ['ADMIN_CLIENT_SECRET']
|
|
|
|
|
AWS_REGION = os.environ['AWS_REGION']
|
|
|
|
|
DANGEROUS_SALT = os.environ['DANGEROUS_SALT']
|
2016-02-29 13:21:12 +00:00
|
|
|
INVITATION_EXPIRATION_DAYS = int(os.environ['INVITATION_EXPIRATION_DAYS'])
|
2016-02-29 15:56:00 +00:00
|
|
|
INVITATION_EMAIL_FROM = os.environ['INVITATION_EMAIL_FROM']
|
2016-01-07 13:28:56 +00:00
|
|
|
NOTIFY_APP_NAME = 'api'
|
|
|
|
|
NOTIFY_LOG_PATH = '/var/log/notify/application.log'
|
2016-02-16 15:25:46 +00:00
|
|
|
NOTIFY_JOB_QUEUE = os.environ['NOTIFY_JOB_QUEUE']
|
2016-06-02 11:12:01 +01:00
|
|
|
# Notification Queue names are a combination of a prefix plus a name
|
2016-02-16 15:25:46 +00:00
|
|
|
NOTIFICATION_QUEUE_PREFIX = os.environ['NOTIFICATION_QUEUE_PREFIX']
|
|
|
|
|
SECRET_KEY = os.environ['SECRET_KEY']
|
2016-01-07 17:31:17 +00:00
|
|
|
SQLALCHEMY_COMMIT_ON_TEARDOWN = False
|
2016-02-16 15:25:46 +00:00
|
|
|
SQLALCHEMY_DATABASE_URI = os.environ['SQLALCHEMY_DATABASE_URI']
|
2016-01-07 17:31:17 +00:00
|
|
|
SQLALCHEMY_RECORD_QUERIES = True
|
2016-05-10 09:04:22 +01:00
|
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = True
|
2016-02-16 16:03:30 +00:00
|
|
|
VERIFY_CODE_FROM_EMAIL_ADDRESS = os.environ['VERIFY_CODE_FROM_EMAIL_ADDRESS']
|
2016-02-22 17:17:29 +00:00
|
|
|
NOTIFY_EMAIL_DOMAIN = os.environ['NOTIFY_EMAIL_DOMAIN']
|
2016-03-01 13:30:10 +00:00
|
|
|
PAGE_SIZE = 50
|
2016-04-29 10:36:59 +01:00
|
|
|
SMS_CHAR_COUNT_LIMIT = 495
|
2016-07-20 10:40:50 +01:00
|
|
|
MMG_URL = os.environ['MMG_URL']
|
2016-01-27 17:42:05 +00:00
|
|
|
|
2016-06-02 11:12:01 +01:00
|
|
|
NOTIFY_SERVICE_ID = 'd6aa2c68-a2d9-4437-ab19-3ae8eb202553'
|
|
|
|
|
INVITATION_EMAIL_TEMPLATE_ID = '4f46df42-f795-4cc4-83bb-65ca312f49cc'
|
|
|
|
|
SMS_CODE_TEMPLATE_ID = '36fb0730-6259-4da1-8a80-c8de22ad4246'
|
|
|
|
|
EMAIL_VERIFY_CODE_TEMPLATE_ID = 'ece42649-22a8-4d06-b87f-d52d5d3f0a27'
|
|
|
|
|
PASSWORD_RESET_TEMPLATE_ID = '474e9242-823b-4f99-813d-ed392e7f1201'
|
2016-07-07 17:23:07 +01:00
|
|
|
ALREADY_REGISTERED_EMAIL_TEMPLATE_ID = '0880fbb1-a0c6-46f0-9a8e-36c986381ceb'
|
2016-06-02 11:12:01 +01:00
|
|
|
|
2016-02-15 16:01:14 +00:00
|
|
|
BROKER_URL = 'sqs://'
|
2016-02-09 13:31:45 +00:00
|
|
|
BROKER_TRANSPORT_OPTIONS = {
|
|
|
|
|
'region': 'eu-west-1',
|
2016-03-02 14:04:03 +00:00
|
|
|
'polling_interval': 1, # 1 second
|
2016-06-17 16:32:56 +01:00
|
|
|
'visibility_timeout': 14410, # 4 hours 10 seconds. 10 seconds longer than max retry
|
2016-03-09 17:46:01 +00:00
|
|
|
'queue_name_prefix': os.environ['NOTIFICATION_QUEUE_PREFIX'] + '-'
|
2016-02-09 13:31:45 +00:00
|
|
|
}
|
|
|
|
|
CELERY_ENABLE_UTC = True,
|
|
|
|
|
CELERY_TIMEZONE = 'Europe/London'
|
|
|
|
|
CELERY_ACCEPT_CONTENT = ['json']
|
|
|
|
|
CELERY_TASK_SERIALIZER = 'json'
|
2016-06-20 13:44:24 +01:00
|
|
|
CELERY_IMPORTS = ('app.celery.tasks', 'app.celery.scheduled_tasks')
|
2016-03-09 14:41:36 +00:00
|
|
|
CELERYBEAT_SCHEDULE = {
|
2016-03-09 17:46:01 +00:00
|
|
|
'delete-verify-codes': {
|
|
|
|
|
'task': 'delete-verify-codes',
|
2016-03-10 09:34:27 +00:00
|
|
|
'schedule': timedelta(minutes=63),
|
2016-03-09 17:46:01 +00:00
|
|
|
'options': {'queue': 'periodic'}
|
|
|
|
|
},
|
|
|
|
|
'delete-invitations': {
|
|
|
|
|
'task': 'delete-invitations',
|
2016-03-10 09:34:27 +00:00
|
|
|
'schedule': timedelta(minutes=66),
|
2016-03-09 17:46:01 +00:00
|
|
|
'options': {'queue': 'periodic'}
|
|
|
|
|
},
|
|
|
|
|
'delete-failed-notifications': {
|
|
|
|
|
'task': 'delete-failed-notifications',
|
2016-04-28 16:10:35 +01:00
|
|
|
'schedule': crontab(minute=0, hour='0,1,2'),
|
2016-03-09 17:46:01 +00:00
|
|
|
'options': {'queue': 'periodic'}
|
|
|
|
|
},
|
|
|
|
|
'delete-successful-notifications': {
|
|
|
|
|
'task': 'delete-successful-notifications',
|
2016-04-28 16:10:35 +01:00
|
|
|
'schedule': crontab(minute=0, hour='0,1,2'),
|
2016-03-09 17:46:01 +00:00
|
|
|
'options': {'queue': 'periodic'}
|
2016-06-08 15:25:57 +01:00
|
|
|
},
|
|
|
|
|
'timeout-sending-notifications': {
|
|
|
|
|
'task': 'timeout-sending-notifications',
|
|
|
|
|
'schedule': crontab(minute=0, hour='0,1,2'),
|
|
|
|
|
'options': {'queue': 'periodic'}
|
2016-03-09 14:41:36 +00:00
|
|
|
}
|
|
|
|
|
}
|
2016-03-02 16:22:22 +00:00
|
|
|
CELERY_QUEUES = [
|
2016-03-09 17:46:01 +00:00
|
|
|
Queue('periodic', Exchange('default'), routing_key='periodic'),
|
2016-03-02 16:22:22 +00:00
|
|
|
Queue('sms', Exchange('default'), routing_key='sms'),
|
|
|
|
|
Queue('email', Exchange('default'), routing_key='email'),
|
|
|
|
|
Queue('sms-code', Exchange('default'), routing_key='sms-code'),
|
|
|
|
|
Queue('email-code', Exchange('default'), routing_key='email-code'),
|
2016-03-07 18:20:20 +00:00
|
|
|
Queue('email-reset-password', Exchange('default'), routing_key='email-reset-password'),
|
2016-03-02 16:22:22 +00:00
|
|
|
Queue('process-job', Exchange('default'), routing_key='process-job'),
|
2016-04-05 14:28:19 +01:00
|
|
|
Queue('remove-job', Exchange('default'), routing_key='remove-job'),
|
2016-03-02 16:22:22 +00:00
|
|
|
Queue('bulk-sms', Exchange('default'), routing_key='bulk-sms'),
|
|
|
|
|
Queue('bulk-email', Exchange('default'), routing_key='bulk-email'),
|
2016-03-17 13:06:17 +00:00
|
|
|
Queue('email-invited-user', Exchange('default'), routing_key='email-invited-user'),
|
2016-06-01 16:57:57 +01:00
|
|
|
Queue('email-registration-verification', Exchange('default'), routing_key='email-registration-verification'),
|
2016-06-07 11:09:54 +01:00
|
|
|
Queue('research-mode', Exchange('default'), routing_key='research-mode'),
|
2016-07-12 13:17:57 +01:00
|
|
|
Queue('retry', Exchange('default'), routing_key='retry'),
|
|
|
|
|
Queue('email-already-registered', Exchange('default'), routing_key='email-already-registered')
|
2016-03-02 16:22:22 +00:00
|
|
|
]
|
2016-02-17 12:57:51 +00:00
|
|
|
FIRETEXT_API_KEY = os.getenv("FIRETEXT_API_KEY")
|
2016-05-11 11:34:46 +01:00
|
|
|
LOADTESTING_NUMBER = os.getenv('LOADTESTING_NUMBER')
|
|
|
|
|
LOADTESTING_API_KEY = os.getenv("LOADTESTING_API_KEY")
|
2016-04-08 10:28:25 +01:00
|
|
|
CSV_UPLOAD_BUCKET_NAME = 'local-notifications-csv-upload'
|
2016-04-29 12:59:36 +01:00
|
|
|
NOTIFICATIONS_ALERT = 5 # five mins
|
2016-06-06 09:49:51 +01:00
|
|
|
FROM_NUMBER = os.getenv('FROM_NUMBER')
|
2016-02-09 13:31:45 +00:00
|
|
|
|
2016-05-13 17:15:39 +01:00
|
|
|
STATSD_ENABLED = False
|
|
|
|
|
STATSD_HOST = "localhost"
|
|
|
|
|
STATSD_PORT = None
|
|
|
|
|
STATSD_PREFIX = None
|
|
|
|
|
|
2016-06-08 15:25:57 +01:00
|
|
|
SENDING_NOTIFICATIONS_TIMEOUT_PERIOD = 259200
|
|
|
|
|
|
2015-12-10 10:56:59 +00:00
|
|
|
|
|
|
|
|
class Development(Config):
|
|
|
|
|
DEBUG = True
|
2016-05-31 16:55:26 +01:00
|
|
|
API_HOST_NAME = os.environ['API_HOST_NAME']
|
2016-04-08 11:04:24 +01:00
|
|
|
MMG_API_KEY = os.environ['MMG_API_KEY']
|
2016-04-08 10:28:25 +01:00
|
|
|
CSV_UPLOAD_BUCKET_NAME = 'development-notifications-csv-upload'
|
2016-01-18 11:03:38 +00:00
|
|
|
|
2016-05-13 17:20:29 +01:00
|
|
|
|
2016-04-07 13:44:04 +01:00
|
|
|
class Preview(Config):
|
2016-04-08 11:04:24 +01:00
|
|
|
MMG_API_KEY = os.environ['MMG_API_KEY']
|
2016-05-31 16:55:26 +01:00
|
|
|
API_HOST_NAME = os.environ['API_HOST_NAME']
|
2016-04-08 10:28:25 +01:00
|
|
|
CSV_UPLOAD_BUCKET_NAME = 'preview-notifications-csv-upload'
|
2016-04-07 13:44:04 +01:00
|
|
|
|
|
|
|
|
|
2016-04-01 14:19:50 +01:00
|
|
|
class Test(Development):
|
2016-04-08 11:04:24 +01:00
|
|
|
MMG_API_KEY = os.environ['MMG_API_KEY']
|
2016-05-31 16:55:26 +01:00
|
|
|
API_HOST_NAME = os.environ['API_HOST_NAME']
|
2016-04-08 10:28:25 +01:00
|
|
|
CSV_UPLOAD_BUCKET_NAME = 'test-notifications-csv-upload'
|
2016-03-17 11:47:44 +00:00
|
|
|
|
2016-04-07 13:44:04 +01:00
|
|
|
|
2016-03-17 11:47:44 +00:00
|
|
|
configs = {
|
2016-04-07 13:44:04 +01:00
|
|
|
'development': 'config.Development',
|
|
|
|
|
'test': 'config.Test',
|
2016-03-17 11:47:44 +00:00
|
|
|
'live': 'config_live.Live',
|
|
|
|
|
'staging': 'config_staging.Staging',
|
2016-04-07 13:44:04 +01:00
|
|
|
'preview': 'config.Preview'
|
2016-03-17 11:47:44 +00:00
|
|
|
}
|