varie
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# idp-template.yaml — da posizionare nella root di ogni repo Gitea
|
||||
# di tipo "template". Questo è l'esempio compilato per un template
|
||||
# "REST API sincrona Java/Spring Boot".
|
||||
|
||||
id: tpl-java-springboot-rest-api
|
||||
name: "Java Spring Boot — REST API sincrona"
|
||||
version: "2.1.0"
|
||||
status: active # active | beta | deprecated
|
||||
last_updated: "2026-09-01"
|
||||
maintainer: "platform-engineering@pigreco66.it"
|
||||
repo_url: "https://gitea.pigreco66.it/idp-templates/java-springboot-rest-api"
|
||||
|
||||
# --- Classificazione, usata dall'agente per il primo filtro ---
|
||||
category: api-service
|
||||
workload_type:
|
||||
- sync-api
|
||||
- rest
|
||||
|
||||
tech_stack:
|
||||
language: Java 21
|
||||
framework: Spring Boot 3.3
|
||||
build_tool: Maven
|
||||
|
||||
tags: ["java", "spring-boot", "rest", "sync", "stateless"]
|
||||
|
||||
description: >
|
||||
Template per esporre una REST API sincrona stateless. Include
|
||||
healthcheck, metrics endpoint Prometheus-ready, struttura a layer
|
||||
controller/service/repository, logging strutturato JSON.
|
||||
|
||||
# --- Cosa contiene esattamente la struttura del repo ---
|
||||
components_included:
|
||||
kubernetes:
|
||||
- Deployment (con probe readiness/liveness preconfigurate)
|
||||
- Service (ClusterIP)
|
||||
- HorizontalPodAutoscaler
|
||||
- NetworkPolicy (default-deny + regole minime)
|
||||
containers:
|
||||
- Dockerfile multi-stage (build + runtime minimale distroless)
|
||||
src:
|
||||
- hello-world Spring Boot funzionante, con un endpoint /health e
|
||||
un endpoint di esempio /api/v1/ping
|
||||
env:
|
||||
- application-dev.properties
|
||||
- application-staging.properties
|
||||
- application-prod.properties
|
||||
|
||||
# --- Integrazione con servizi cross della piattaforma ---
|
||||
# Fondamentale: dice all'agente COSA NON riproporre perché già
|
||||
# disponibile centralmente (evita duplicazione di servizi)
|
||||
cross_platform_services:
|
||||
- service: shared-postgres
|
||||
how: "via env PLATFORM_DB_CONNECTION_STRING, iniettata dalla pipeline"
|
||||
- service: shared-redis-cache
|
||||
how: "opzionale, abilitabile via env ENABLE_CACHE=true"
|
||||
- service: centralized-logging
|
||||
how: "automatico, nessuna configurazione richiesta"
|
||||
|
||||
# --- Vincoli di compliance soddisfatti dal template ---
|
||||
compliance:
|
||||
data_classification_supported: ["public", "internal", "confidential"]
|
||||
# NON supporta dati PII senza customizzazioni aggiuntive
|
||||
pii_ready: false
|
||||
network_policy_baseline: "default-deny"
|
||||
security_scanning: "incluso in pipeline (SAST + container scan)"
|
||||
|
||||
scaling:
|
||||
default_replicas: 2
|
||||
autoscaling: hpa
|
||||
min_replicas: 2
|
||||
max_replicas: 10
|
||||
|
||||
# --- Parametri personalizzabili (quelli nei file in env/) ---
|
||||
parameters:
|
||||
- name: PLATFORM_DB_CONNECTION_STRING
|
||||
required: false
|
||||
description: "Richiesta solo se il servizio necessita persistenza"
|
||||
- name: ENABLE_CACHE
|
||||
required: false
|
||||
default: "false"
|
||||
|
||||
# --- Quando NON usare questo template (altrettanto utile del 'quando sì') ---
|
||||
not_suitable_for:
|
||||
- "Workload asincroni basati su eventi (usa tpl-java-kafka-consumer)"
|
||||
- "Batch job schedulati (usa tpl-batch-job)"
|
||||
- "Dati classificati come PII senza data masking aggiuntivo"
|
||||
Reference in New Issue
Block a user