docs: documentation for validate/sonar-test-nest4 #20
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: "sonar-test-nest4"
|
||||
generated_by: documentor-agent
|
||||
generated_at: "2026-05-18T09:44:21+00:00"
|
||||
generated_at: "2026-05-18T10:03:38+00:00"
|
||||
human_edited: false
|
||||
source_entity: "Component/default/sonar-test-nest4"
|
||||
source_repo: "https://gitea.kyndemo.live/validate/sonar-test-nest4"
|
||||
@@ -9,22 +9,22 @@ source_repo: "https://gitea.kyndemo.live/validate/sonar-test-nest4"
|
||||
|
||||
## Overview
|
||||
|
||||
`sonar-test-nest4` is a stateless microservice built using the `typescript-nestjs` runtime. It was scaffolded from the **Create Microservice** golden-path template on the Kyndryl Platform. The service provides a REST API for managing items, including endpoints for CRUD operations. It is designed to be lightweight, scalable, and observable, with integrated OpenTelemetry instrumentation and Prometheus metrics.
|
||||
`sonar-test-nest4` is a stateless microservice built using the `typescript-nestjs` runtime. It was scaffolded from the **Create Microservice** golden-path template on the Kyndryl Platform. The service provides a REST API for managing items, including CRUD operations, and exposes observability endpoints for health checks and Prometheus metrics.
|
||||
|
||||
This service plays a key role in the demo-apps domain, serving as a foundational component for item management workflows. It is deployed via Humanitec to an AKS cluster, with CI/CD pipelines managed through Gitea Actions. Observability is enabled through Grafana dashboards and Prometheus metrics, ensuring operational insights and performance monitoring.
|
||||
This service plays a key role in the broader system by offering a scalable and observable backend for item management. It is deployed using Humanitec's API-driven deployment model, leveraging Azure Kubernetes Service (AKS) and Azure Container Registry (ACR). The CI/CD pipeline automates builds, tests, and deployments across development, staging, and production environments.
|
||||
|
||||
## Repository
|
||||
|
||||
| Field | Value |
|
||||
|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Source Repo | [sonar-test-nest4](https://gitea.kyndemo.live/validate/sonar-test-nest4) |
|
||||
|----------------|------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Source Repo | [validate/sonar-test-nest4](https://gitea.kyndemo.live/validate/sonar-test-nest4) |
|
||||
| Branch | `dev` |
|
||||
| ArgoCD App | — |
|
||||
| Namespace | `dev` |
|
||||
|
||||
## Architecture
|
||||
|
||||
`sonar-test-nest4` follows a modern microservice architecture:
|
||||
`sonar-test-nest4` follows a modern microservice architecture with the following components:
|
||||
|
||||
- **Runtime**: `typescript-nestjs`
|
||||
- **Container Port**: `3000`
|
||||
@@ -32,41 +32,44 @@ This service plays a key role in the demo-apps domain, serving as a foundational
|
||||
- `/api/items` for CRUD operations
|
||||
- `/health` for health checks
|
||||
- `/metrics` for Prometheus metrics
|
||||
- **Deployment**:
|
||||
- Images are built and pushed to Azure Container Registry (ACR).
|
||||
- Humanitec manages deployments to AKS using Score files.
|
||||
- **CI/CD**:
|
||||
- Gitea Actions workflows (`build-push.yml` and `deploy-humanitec.yml`) automate build, test, and deployment processes.
|
||||
- **Deployment Flow**:
|
||||
- Push to `dev`, `staging`, or `prod` triggers CI/CD workflows:
|
||||
- `build-push.yml`: Builds and tests the service, then pushes the container image to Azure Container Registry.
|
||||
- `deploy-humanitec.yml`: Deploys the service to AKS using Humanitec's Score-based deployment model.
|
||||
- **Branch Model**:
|
||||
- `dev` → `staging` → `prod` → `main` (system of record).
|
||||
- `dev`: Active development, auto-deploys to the dev environment.
|
||||
- `staging`: Pre-production, promoted from `dev` via PR.
|
||||
- `prod`: Production, promoted from `staging` via PR.
|
||||
- `main`: System of record, receives merges from `prod`.
|
||||
|
||||
## Configuration
|
||||
|
||||
| Config Key | Value |
|
||||
|------------------|--------------------|
|
||||
|------------------|-------------------|
|
||||
| `runtime` | `typescript-nestjs` |
|
||||
| `health_path` | `/health` |
|
||||
| `container_port` | `3000` |
|
||||
|
||||
## Operations
|
||||
|
||||
### Deployment Flow
|
||||
### Deployment Steps
|
||||
|
||||
1. Push changes to the `dev` branch to trigger automatic builds and deployments to the dev environment.
|
||||
2. Promote changes to `staging` or `prod` via PRs, requiring CI gate and approval.
|
||||
3. Merge production-ready code to the `main` branch as the system of record.
|
||||
1. Push changes to the `dev` branch for automatic deployment to the dev environment.
|
||||
2. Open a PR to promote changes from `dev` to `staging`. Ensure CI tests pass and obtain one approval.
|
||||
3. Open a PR to promote changes from `staging` to `prod`. Ensure CI tests pass and obtain one approval.
|
||||
4. Merge changes from `prod` to `main` for system-of-record updates.
|
||||
|
||||
### Observability
|
||||
### Observability Endpoints
|
||||
|
||||
- **Health Check**: `/health` endpoint returns `{"status":"UP"}`.
|
||||
- **Metrics**: `/metrics` endpoint exposes Prometheus metrics.
|
||||
- **Grafana Dashboard**: [Opentelemetry Application Observability](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=sonar-test-nest4).
|
||||
- `/health`: Returns `{"status":"UP"}` for health checks.
|
||||
- `/metrics`: Exposes Prometheus metrics for monitoring.
|
||||
|
||||
## Observability
|
||||
|
||||
- [Grafana Dashboard](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=sonar-test-nest4)
|
||||
- Prometheus metrics enabled (`/metrics`).
|
||||
- OpenTelemetry instrumentation integrated.
|
||||
- **Grafana Dashboard**: [Opentelemetry Application Observability](https://grafana.kyndemo.live/d/otel-app-observability-v2/opentelemetry-application-observability?orgId=1&var-app=sonar-test-nest4)
|
||||
- **Prometheus Metrics**: Enabled (`/metrics` endpoint).
|
||||
- **Chaos Mesh**: Enabled for resilience testing.
|
||||
- **K6 Load Testing**: Configured via `k6-test-sonar-test-nest4` in the `dev` namespace.
|
||||
|
||||
## Dependencies
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"sourceShas": {
|
||||
"catalog-info.yaml": "5c2be634ddfec05ec6fed8c7b85cb2c8b9ab3c13",
|
||||
"catalog-info.yaml": "d7555108e1228b3b4da474f893ea7ac47bb0b1e5",
|
||||
".platform/initialized.md": "24a574f77ac17059b313a824398b9bb19263232e",
|
||||
"README.md": "4b5a7f83a6729688266ef621748367cbd556ddfe",
|
||||
"docs/api.md": "86776bdd5e2fbe634709920102282ed589927c5b",
|
||||
@@ -8,6 +8,6 @@
|
||||
"docs/index.md": "81f0ec2243665ad41daf93202c872cfc023eb21a"
|
||||
},
|
||||
"promptVersion": "1.0",
|
||||
"generatedAt": "2026-05-18T09:44:33+00:00",
|
||||
"contentHash": "f915ebba47688cb37836b549477a2d11ff8d46d82974a7d6cba92f5e2090ca32"
|
||||
"generatedAt": "2026-05-18T10:03:53+00:00",
|
||||
"contentHash": "b4a5d1c7853f8634a38191f6d64870a35d58f9be267e2c08894d71940201ce1b"
|
||||
}
|
||||
Reference in New Issue
Block a user