API to track form submissions. Currently tracks file submissions only.
See docs/ for documentation.
Please install the Node.js version in .nvmrc using Node Version Manager nvm
via:
cd forms-submission-api
nvm use
-
Install Docker
-
Bring up runtime dependencies
docker compose up
- Create a
.env
file with the following mandatory environment variables populated at root level:
MONGO_URI=""
MONGO_DATABASE=""
OIDC_JWKS_URI=""
OIDC_VERIFY_AUD=""
OIDC_VERIFY_ISS=""
ROLE_EDITOR_GROUP_ID=""
HTTP_PROXY=
HTTPS_PROXY=
NO_PROXY=
For proxy options, see https://www.npmjs.com/package/proxy-from-env which is used by https://github.com/TooTallNate/proxy-agents/tree/main/packages/proxy-agent. It's currently supports Hapi Wreck only, e.g. in the JWKS lookup.
To run the application in development
mode run:
npm run dev
To mimic the application running in production
mode locally run:
npm start
All available Npm scripts can be seen in package.json To view them in your command line run:
npm run
Endpoint | Description |
---|---|
GET: /health |
Health |
POST: /file |
Ingests a file with a 7 day expiry. Called by the CDP uploader as a callback (upon file upload) |
GET: /file/{fileId} |
Checks that a file has been ingested. |
POST: /file/link |
Creates a link to a file which can be accessed by a user. Valid for 60 minutes. |
POST: /files/persist |
Extends the expiry to 30 days. Called upon form submission. |
Build:
docker build --target development --no-cache --tag forms-submission-api:development .
Run:
docker run -e GITHUB_API_TOKEN -p 3008:3008 forms-submission-api:development
Build:
docker build --no-cache --tag forms-submission-api .
Run:
docker run -e GITHUB_API_TOKEN -p 3001:3001 forms-submission-api
THIS INFORMATION IS LICENSED UNDER THE CONDITIONS OF THE OPEN GOVERNMENT LICENCE found at:
http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3
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
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.