Pular para conteúdo

/health e versão em runtime

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-07-07

O /health segue o shape plano da constituição ({status, versao}, Versionamento). O /health do micronaut-management fica desligado (endpoints.health.enabled: false); quem serve é um HealthController (br.com.xadm.comum).

{ "status": "UP", "versao": "1.0.3" }
  • Liveness, não readiness: é "o app está no ar", não checa o banco (trade-off consciente). Responde 200 sem autenticação (whitelisted no intercept-url-map); o Dockerfile faz HEALTHCHECK nele.
  • versao vem de version.properties, gerado no build a partir de project.version (task Gradle gerarVersionProperties) — nunca um literal no código (literal mente e drifta a cada release). Lido por VersaoInfo (um InfoSource, expõe também no /info).
  • O main loga a versão na 1ª linha do startup (VersaoInfo.versaoAtual()).

⚠️ A versão do @OpenAPIDefinition (em Application) é o contrato HTTP da API, desacoplada da versão de release — não confundir.

Código: comum/HealthController, comum/VersaoInfo, task gerarVersionProperties no build.gradle.kts. Teste: integration/HealthControllerIntegrationTest (shape) + comum/VersaoInfoTest.