Skip to content

DEFRA/trade-gateway

Repository files navigation

trade-gateway

Core delivery C# ASP.NET backend template.

Docker Compose

A Docker Compose template is in compose.yml.

A local environment with:

  • Localstack for AWS services (S3, SQS)
  • Redis
  • MongoDB
  • This service.
  • A commented out frontend example.
docker compose up --build -d

Note: running docker locally requires the following environment variables:

TRACESNT__BASEURL=traces-webservice-baseUrl
TRACESNT__USERNAME=your-traces-username
TRACESNT__AUTHENTICATIONKEY=your-traces-authentication-key
TRACESNT__WEBSERVICECLIENTID=your-traces-client-id
XAPIKEY=

# Cognito — for clients deployed outside CDP
AUTHENTICATION__COGNITO__AUTHORITY=https://cognito-idp.<region>.amazonaws.com/<user-pool-id>
AUTHENTICATION__COGNITO__SCOPE=<cognito-scope>

# STS — for CDP-internal services authenticating via IAM role
AUTHENTICATION__STS__AUTHORITY=https://<sts-oidc-issuer>
AUTHENTICATION__STS__SCOPE=<sts-scope>

Both authentication authorities must be reachable at startup. See ADR-0004 for the full authentication design, including the IAM authorization requirement for STS clients.

A more extensive setup is available in github.com/DEFRA/cdp-local-environment

MongoDB

MongoDB via Docker

See above.

docker compose up -d mongodb

MongoDB locally

Alternatively install MongoDB locally:

  • Install MongoDB on your local machine
  • Start MongoDB:
sudo mongod --dbpath ~/mongodb-cdp

MongoDB in CDP environments

In CDP environments a MongoDB instance is already set up and the credentials exposed as enviromment variables.

Inspect MongoDB

To inspect the Database and Collections locally:

mongosh

You can use the CDP Terminal to access the environments' MongoDB.

Testing

Run the tests with:

Tests run by running a full WebApplication backed by Ephemeral MongoDB. Tests do not use mocking of any sort and read and write from the in-memory database.

dotnet test

Running

Run CDP-Deployments application:

dotnet run --project Api --launch-profile Development

SonarCloud

Example SonarCloud configuration are available in the GitHub Action workflows.

Dependabot

We have added an example dependabot configuration file to the repository. You can enable it by renaming the .github/example.dependabot.yml to .github/dependabot.yml

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.

About

Git repository for service trade-gateway

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages