Import the project to your favourite IDE to build and run tests from there.
Alternatively, use the dotnet
command or the following make targets to build and run tests:
make build
make test
Any dotnet tools used by the project are installed locally.
The database is one of the services defined in Docker Compose. It can be started on its own and used with the IDE setup. First, containers need to be built:
make build-docker
The database can be then started together with migrations:
docker compose up -d db organisation-information-migrations
The application is mostly configured to start with a fresh repository checkout. Secrets that are not safe to be committed to the repository are managed with the Secrets Manager:
OneLogin:Authority
OneLogin:ClientId
OneLogin:PrivateKey
These can be set within the IDE, or with the dotnet command:
dotnet user-secrets set --project Frontend/CO.CDP.OrganisationApp/CO.CDP.OrganisationApp.csproj OneLogin:Authority "https://oidc.example.com"
dotnet user-secrets set --project Frontend/CO.CDP.OrganisationApp/CO.CDP.OrganisationApp.csproj OneLogin:ClientId "client-id"
dotnet user-secrets set --project Frontend/CO.CDP.OrganisationApp/CO.CDP.OrganisationApp.csproj OneLogin:PrivateKey "-----BEGIN RSA PRIVATE KEY-----
SECRET KEY
-----END RSA PRIVATE KEY-----"
Never commit secrets to the repository.
For technical documentation see Docs.
For important design decisions that were made as the project evolved see the decision log.
While local development is done within our IDE of choice, the Docker configuration is provided to conveniently start all the services at once.
First, we need to build all Docker containers:
make build-docker
Run make compose.override.yml
to generate the default configuration.
One login details need to be provided to the organisation-app
in compose.override.yml
as environment variables:
OneLogin__Authority
OneLogin__ClientId
OneLogin__PrivateKey
To start all Docker services:
make up
The first run creates compose.override.yml
that can be used to override service configuration locally.
By default service and application ports are mapped as follows:
- OrganisationApp - - http://localhost:8090/
- Tenant - http://localhost:8080/swagger/
- Organisation - http://localhost:8082/swagger/
- Person - http://localhost:8084/swagger/
- Forms - http://localhost:8086/swagger/
- Data Sharing - http://localhost:8088/swagger/
- PostgreSQL database - :5432
In order to prevent selected service(s) from starting, configure the number of replicate in compose.override.yml
to 0:
# ...
person:
deploy:
replicas: 0
# ...
Stop all Docker services:
make down
To only start the database and apply migrations run:
make db