title, generated_by, generated_at, human_edited, source_entity, source_repo
| title | generated_by | generated_at | human_edited | source_entity | source_repo |
|---|---|---|---|---|---|
| Jonathan Demo Test | documentor-agent | 2026-06-08T16:18:10+00:00 | false | Component/default/jonathan-demo-test | https://gitea.kyndemo.live/validate/jonathan-demo-test |
Overview
Jonathan Demo Test is a modernized microservice built with Java Spring Boot, following cloud-native architecture patterns. It serves as a demonstration of platform orchestration capabilities using Humanitec v2. The service is designed for containerized deployment and integrates seamlessly with observability tools like Prometheus and Grafana. Key features include production-ready configurations, health check endpoints, Prometheus metrics exposure, and security scanning integrated into the CI/CD pipeline.
This service plays a critical role in showcasing the modernization of legacy applications into scalable, cloud-native solutions. It leverages the Humanitec Platform Orchestrator for deployment and lifecycle management, ensuring streamlined operations and enhanced developer productivity.
Repository
| Field | Value |
|---|---|
| Source Repo | Jonathan Demo Test |
| Branch | main |
| ArgoCD App | — |
| Namespace | dev |
Architecture
Jonathan Demo Test is a microservice designed with the following architecture:
- Runtime: Java Spring Boot
- Deployment: Humanitec Platform Orchestrator
- CI/CD Pipeline: Gitea Actions → Azure Container Registry (ACR) → Humanitec
- Observability: Prometheus metrics and Grafana dashboards for monitoring and alerting.
The service communicates with external resources defined in score.yaml, including database configurations for H2, MySQL, and PostgreSQL. It supports health check endpoints (/health) and metrics endpoints (/metrics) for operational insights.
Configuration
| Configuration Option | Description |
|---|---|
spring.profiles.active |
Specifies the active profile (mysql, postgres, or default h2). |
jdbc:h2:mem:<uuid> |
URL for accessing the in-memory H2 database. |
MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE |
Environment variables for MySQL configuration. |
POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB |
Environment variables for PostgreSQL configuration. |
Operations
Running Locally
-
Clone the repository:
git clone https://gitea.kyndemo.live/validate/jonathan-demo-test cd jonathan-demo-test -
Start the application:
- Using Maven:
./mvnw spring-boot:run - Using Gradle:
./gradlew bootRun
- Using Maven:
-
Access the application at http://localhost:8080.
Container Deployment
-
Build the container image:
./mvnw spring-boot:build-image -
Run the container:
docker run -p 8080:8080 docker.io/library/spring-petclinic:latest
Database Setup
-
For MySQL:
docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:9.6 -
For PostgreSQL:
docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:18.3
Observability
- Grafana Dashboard: View Dashboard
- Prometheus Metrics: Exposed at
/metrics. - Health Check: Available at
/health.
Dependencies
resource:default/cjot-aks