Java Spring Boot 4 HTTP service on JDK 25 with a Kubernetes deployment and an optional Grafana + Prometheus + Loki observability stack. Production-shaped: Spring Security via module-spring-security (JWT / API-key / opaque-token), Spring Data JPA with Flyway, Micrometer + OpenTelemetry, Helm chart, HPA, and ingress.
Render it
# CLI
npx @nanohype/sdk render-composite spring-boot-microservice --out ./my-app
# SDK
import { LocalSource, renderComposite } from "@nanohype/sdk";
const result = await renderComposite(source, "spring-boot-microservice", variables);
# MCP — from an agent
get_composite({ name: "spring-boot-microservice" })
What it draws together
Variables
Required
ProjectName string- Kebab-case project name, used across service, k8s resources, and repo Must be lowercase kebab-case.
GroupId string- Maven groupId (reverse-DNS, dot-separated, lowercase)
JavaPackage string- Root Java package (dot form)
PackageDir string- Root Java package as a directory path (slash form). Must be the slash-form of JavaPackage.
Optional
Database string — defaults to postgres- Database driver (postgres, mysql, h2)
Namespace string — defaults to default- Kubernetes namespace for deployed resources
Replicas string — defaults to 2- Kubernetes pod replica count
IncludeMonitoring bool — defaults to false- Include Grafana + Prometheus + Loki observability stack under observability/