API - bcgov/PIMS GitHub Wiki
The PIMS API provides an RESTful interface (developed in .NET Core 3.1) to interact with the configured data-source (MSSQL Server 2020).
The API is configured to run in a Docker container and has the following dependencies with other containers; database, keycloak.
More information here.
Title | Description |
---|---|
Data Access Layer | Data Access Layer (DAL) information. |
Database | How to manage the database and data migrations. |
Versioning | Version information. |
The API is documented with Open API.
Versioning is supported through route paths.
See Microsoft's AspNet Api Versioning plugin here.
The API is monitored through an internal healthcheck library. The project HealthChecks.UI is a minimal UI interface that stores and shows the health checks results from the configured HealthChecks uris.
See Microsoft AspNet Diagnostics Health Checks here.
Health checks are configured to run against /api/live and /api/ready endpoints. These correspond to the kubernetes concepts of liveliness and readiness, see here.
Health Checks UI is a UI wrapper around the above health check endpoints. Configuration is provided within appsettings.json. The webhook URI should be provided separately as an environment variable HealthChecksUI__Webhooks__0__Uri
. See here for more information about the structure of the Payload and RestorePayload configuration options.
SonarQube is an open-source automatic code review tool to detect bugs, vulnerabilities and code smells in your code. It can integrate with your existing workflow to enable continuous code inspection across your project branches and pull requests.
SonarQube can perform analysis on up to 27 different languages. The outcome of this analysis will be quality measures and issues (instances where coding rules were broken).
PIMS SonarQube dashboard is available here
There are several options to install SonnarScanner for MSBuild.
The simplest way is to install it as global tool for .NET Core;
dotnet tool install --global dotnet-sonarscanner
Follow the commands below to trigger a manual scan of PIMS API.
When the scan is completed the results will be available on PIMS SonarQube Dashboard
cd backend
dotnet sonarscanner begin -k:"bcgov_PIMS_API" \
-d:sonar.host.url="https://sonarqube-jcxjin-tools.pathfinder.gov.bc.ca" \
-d:sonar.login="{token}"
dotnet build --no-incremental
dotnet sonarscanner end -d:sonar.login="{token}"