Dashboard for managing Blaise users.
This project is a React application which when built is rendered by a Node.js express server.
Prerequisites
Clone the repository:
git clone https://github.com/ONSdigital/blaise-user-management.gitCreate an .env file in the root of the project and add the following variables:
| Variable | Description | Var Example |
|---|---|---|
| PORT | Optional variable, specify the Port for express server to run on. If not passed in this is set as 5000 by default. It's best not to set this as the react project will try and use the variable as well and conflict. By default, React project locally runs on port 3000. |
5009 |
| BLAISE_API_URL | Url that Blaise REST API is running on to send calls to. | localhost:8011 |
| SERVER_PARK | Blaise Server Park Name, required for creating users in the correct server park | gusty |
| PROJECT_ID | Variable to set up the project id to be used, mostly it should be set up to your sandbox id, like example string appended with your sandbox suffix | ons-blaise-v2-dev- |
| SESSION_TIMEOUT | Optional variable, Variable to set up the session timeout, If not set up, it defaults to 12h | 12h |
Example .env file:
BLAISE_API_URL='localhost:8011'
SERVER_PARK=gusty
PROJECT_ID='ons-blaise-v2-dev-<sandbox-suffix>'
SESSION_TIMEOUT=12hInstall the project dependencies:
yarnRunning yarn or yarn install will install all the required modules specified in the yarn.lock file.
The versions of theses modules are fixed in the yarn.lock files, so to avoid unwanted upgrades or instability caused by incorrect modifications, DO NOT DELETE THE LOCK FILE.
More information about yarn (https://confluence.ons.gov.uk/x/zdwACQ)
Authenticate with GCP:
gcloud auth loginSet your GCP project:
gcloud config set project ons-blaise-v2-dev-<sandbox-suffix>Open a tunnel to our Blaise RESTful API in your GCP project:
gcloud compute start-iap-tunnel restapi-1 80 --local-host-port=localhost:8011 --zone europe-west2-aEnsure the proxy is configured to the correct port in the 'package.json'
"proxy": "http://localhost:5000",In a new terminal, run Node.js server and React.js client via the following package.json script
yarn devThe UI should now be accessible via:
Tests can be run via the following package.json script:
yarn testTest snapshots can be updated via:
yarn test -uThe following run commands are available. These are all setup in the package.json under scripts.
| Command | Description |
|---|---|
yarn start-server |
Start the express server, Note: For the website to be rendered the React Project will need to be built. |
yarn start-react |
Starts React project in local development setup with quick reloading on making changes. Note: For questionnaires to be shown the server needs to be running. |
yarn build-react |
Compiles build project ready to be served by express. The build in outputted to the the build directory which express points to with the var buildFolder in server/server.js. |
yarn test |
Runs all tests for server and React Components and outputs coverage statistics. |
gcp-build |
App Engine custom build step which builds the react application and complies the TypeScript server. |
