Skip to content

alphagov/emergency-alerts-api

Repository files navigation

GOV.UK Emergency Alerts API

Contains:

  • the public-facing REST API for GOV.UK Emergency Alerts, which teams can integrate with using our clients
  • an internal-only REST API built using Flask to manage services, users, templates, etc (this is what the admin app talks to)
  • asynchronous workers built using Celery to put things on queues and read them off to be processed, sent to providers, updated, etc

Setting Up to run the API Server locally

Local Development Environment Setup

Ensure that you have first followed all of the local development environment setup steps, that can be found here, before attempting to run the API Server locally.

Python version

You can find instructions on setting the correct Python version here.

psycopg2

Follow these instructions on Mac M1 machines.

Environment Variables and Hosting

The HOST variable is used to distinguish between running locally and on the hosted infrastructure (i.e. AWS). This variable can therefore take one of the following values:

HOST = [ local | hosted | test ]

"local" indicates that the service will be configured for running on a local machine. "hosted" is intended for use when the service is running on the AWS-hosted infrastructure. "test" provides a special set of configuration values that are used by the unit, integration and functional tests.

The environment variable ENVIRONMENT is used to tell the service which set of config values to take up, and can be set to one of the following values:

ENVIRONMENT = [ local | development | preview | staging | production ]

A value of "local" indicates that the service will be running on the development machine. A value corresponding to any of the others in the above set maps directly to the name of the environment hosted in AWS.

The development environment hosted on AWS will now configure the above variables as follows: HOST=hosted & ENVIRONMENT=development

environment.sh

The instructions on setting up the environment.sh file can be found here.

To test the application

See here for instructions on running unit tests.

Running the Admin and Api services with Postgres

Please refer to the README in the /emergency-alerts-tooling repository, in the /emergency-alerts-tooling/compose folder.

Further documentation