Skip to content
This repository has been archived by the owner on Mar 8, 2024. It is now read-only.
/ NoPlan Public archive

This project aims to create an application delivering task tracking capabilities.

License

Notifications You must be signed in to change notification settings

ThorstenSauter/NoPlan

Repository files navigation

NoPlan

Goals

This project aims to deliver task tracking capabilities and is primarily to learn about new technologies. The goal is to follow best practices whenever possible.

Status

Staging and global Production

Code scans codecov

Calling the API

In order to conveniently call the API during development or after deployment, a Postman collection is available to be forked. Make sure to set up the proper authentication parameters before calling any protected endpoints.

Run in Postman

Infrastructure

The projects required infrastructure is hosted in Microsoft Azure and is managed using Terraform. The resource definitions can be found in the infra directory.

The Terraform state is managed by Terraform Cloud. Pushes to the main branch result in the global and staging environments being deployed. The publishing of a GitHub release results in the production environment being deployed.

Health checks

The API implements the following two HTTP-based health checks:

Liveness probe

A liveness probe, which simply sends an HTTP response and does not run any additional health checks, is available on the /health/live endpoint.

Readiness probe

A readiness probe is available on the /health/ready endpoint and runs the following health checks:

  • The Azure SQL Server instance

Observability

Metrics, traces and logs are all handled using OpenTelemetry.

During development the OpenTelemetry Collector is the target for exporting data and subsequently transferring it to Prometheus, Grafana, Loki and Jaeger. The complete stack can be run locally using the provided Docker Compose file.

In production all data is exported using the Azure Monitor Exporter, which makes the observability data available in Azure Application Insights.