2016-06-17 17:09:50 +01:00
2016-08-23 16:45:21 +01:00
2016-08-03 17:33:49 +01:00
2016-08-24 16:23:11 +01:00
2016-07-29 10:15:33 +01:00

Requirements Status

Deploy to staging Deploy to live

notifications-api

Notifications api Application for the notification api.

Read and write notifications/status queue. Get and update notification status.

Setting Up

mkvirtualenv -p /usr/local/bin/python3 notifications-api

Creating the environment.sh file. Replace [unique-to-environment] with your something unique to the environment. Your AWS credentials should be set up for notify-tools (the development/CI AWS account).

Create a local environment.sh file containing the following:

echo "
export NOTIFY_ENVIRONMENT='development'
export ADMIN_BASE_URL='http://localhost:6012'
export ADMIN_CLIENT_USER_NAME='dev-notify-admin'
export ADMIN_CLIENT_SECRET='dev-notify-secret-key'
export API_HOST_NAME='http://localhost:6011'

export AWS_REGION='eu-west-1'
export AWS_ACCESS_KEY_ID=[MY ACCESS KEY]
export AWS_SECRET_ACCESS_KEY=[MY SECRET]

export DANGEROUS_SALT='dev-notify-salt'
export FIRETEXT_API_KEY=[contact team member for api key]
export FROM_NUMBER='40605'
export INVITATION_EMAIL_FROM='invites'
export INVITATION_EXPIRATION_DAYS=2
export MMG_API_KEY=mmg=secret-key
export MMG_URL="https://api.mmg.co.uk/json/api.php"
export NOTIFICATION_QUEUE_PREFIX='[unique-to-environment]' #
export NOTIFY_EMAIL_DOMAIN='notify.tools'
export SECRET_KEY='dev-notify-secret-key'
export SQLALCHEMY_DATABASE_URI='postgresql://localhost/notification_api'
export STATSD_ENABLED=True
export STATSD_HOST="localhost"
export STATSD_PORT=1000
export STATSD_PREFIX="stats-prefix"
"> environment.sh

NOTE: The SECRET_KEY and DANGEROUS_SALT should match those in the notifications-admin app.

NOTE: Also note the unique prefix for the queue names. This prevents clashing with others queues in shared amazon environment and using a prefix enables filtering by queue name in the SQS interface.

To run the application

You need to run the api application and a local celery instance.

There are two run scripts for running all the necessary parts.

scripts/run_app.sh
scripts/run_celery.sh
scripts/run_celery_beat.sh

To remove functional test data

NOTE: There is assumption that both the server name prefix and user name prefix are followed by a uuid. The script will search for all services/users with that prefix and only remove it if the prefix is followed by a uuid otherwise it will be skipped.

Locally

python application.py purge_functional_test_data -u <functional tests user name prefix> # Remove the user and associated services.

On the server

python server_commands.py purge_functional_test_data -u <functional tests user name prefix> # Remove the user and associated services.
Description
The API powering Notify.gov
Readme 74 MiB
Languages
Python 98.5%
HCL 0.6%
Jinja 0.5%
Shell 0.3%
Makefile 0.1%