Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/defra/ffc-mpdp-frontend
https://github.com/defra/ffc-mpdp-frontend
Last synced: 6 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/defra/ffc-mpdp-frontend
- Owner: DEFRA
- License: other
- Created: 2022-08-24T13:11:55.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-10T16:22:34.000Z (8 days ago)
- Last Synced: 2024-11-10T17:27:57.192Z (8 days ago)
- Language: JavaScript
- Size: 4.15 MB
- Stars: 2
- Watchers: 6
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FFC MPDP Frontend Service
> Frontend service for the Making Payment Data Public
## Prerequisites
- Docker
- Docker ComposeOptional:
- Kubernetes
- Helm:warning: If you encounter the error `error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400` while trying to push to GitHub, this is because the size of of the CSV file is larger than the post buffer of git on your local machine. You can increase it to 20Mb using the following command
```
git config http.postBuffer 20000000
```### Environment variables
The following environment variables are required by the application.
Values for development are set in the Docker Compose configuration. Default
values for production-like deployments are set in the Helm chart and may be
overridden by build and release pipelines.| Name | Description |
| ---- | ----------- |
| MPDP_BACKEND_ENDPOINT | MPDP Backend Service name |## Running the application
The application is designed to run in containerised environments, using Docker Compose in development and Kubernetes in production.
- A Helm chart is provided for production deployments to Kubernetes.
### Build container image
Container images are built using Docker Compose, with the same images used to run the service with either Docker Compose or Kubernetes.
When using the Docker Compose files in development the local `app` folder will
be mounted on top of the `app` folder within the Docker container, hiding the CSS files that were generated during the Docker build. For the site to render correctly locally `npm run build` must be run on the host system.By default, the start script will build (or rebuild) images so there will
rarely be a need to build images manually. However, this can be achieved
through the Docker Compose
[build](https://docs.docker.com/compose/reference/build/) command:```
# Build container images
docker-compose build
```### Start
The core search funcationality relies on this service to connect to a running instance of the ffc-mpdp-backend service. In order to allow the two application from separate containers to connect to each other they must both share a common network bridge.
For convenience a start script is present in ./scripts/start which can setup the bridge and launch this serviceFor a manual approach run the following command in order. The first command to create network is only required to run initially once so you can skip this step when starting up Backend service. Likewise, if you have ran this command while starting backend service, then ignore this step here.
```
# Create network
docker network create ffc-mpdp# Use Docker Compose to build the container and run service locally.
docker-compose -f docker-compose.yaml -f docker-compose.override.yaml -f docker-compose.link.yaml up --build
```
## Test structureThe tests have been structured into subfolders of `./test` as per the
[Microservice test approach and repository structure](https://eaflood.atlassian.net/wiki/spaces/FPS/pages/1845396477/Microservice+test+approach+and+repository+structure)### Running tests
A convenience script is provided to run automated tests in a containerised
environment. This will rebuild images before running tests via docker-compose,
using a combination of `docker-compose.yaml` and `docker-compose.test.yaml`.
The command given to `docker-compose run` may be customised by passing
arguments to the test script.Examples:
```
# Run all tests
scripts/test# Run tests with file watch
scripts/test -w
```## CI pipeline
This service uses the [FFC CI pipeline](https://github.com/DEFRA/ffc-jenkins-pipeline-library)
## Licence
THIS INFORMATION IS LICENSED UNDER THE CONDITIONS OF THE OPEN GOVERNMENT LICENCE found at:
The following attribution statement MUST be cited in your products and applications when using this information.
> Contains public sector information licensed under the Open Government license v3
### About the licence
The Open Government Licence (OGL) was developed by the Controller of Her Majesty's Stationery Office (HMSO) to enable information providers in the public sector to license the use and re-use of their information under a common open licence.
It is designed to encourage use and re-use of information freely and flexibly, with only a few conditions.