0034 — Adota a constituição 2.0.0: só native, libs na corrente e mavenLocal filtrado¶
Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-09-15 · Decidido em: 2026-09-15
Contexto¶
A constituição da casa passou à 2.0.0, com norma e kit versionados à parte (ADR central 0036). Duas decisões centrais alcançam este app: server Micronaut é native por padrão, e jar só com motivo (ADR central 0033); e o app acompanha a versão corrente de cada lib da casa (ADR central 0034).
O app já servia 100% native no domínio principal: o canário 50/50 não estava efetivo, e cada release religava uma perna jar sem tráfego.
Decisão¶
- Só native. O
build.targetsdodocs/app.jsontem sónative, e opipeline.ymlnão tem mais obuild_jarnem o deploy jar. ODockerfileJVM fica no repo como fallback, fora do deploy; o recurso jar do Coolify fica parado. - Libs na corrente:
xadm-seguranca0.8.0,xadm-comum-web0.10.0,xadm-comum-storage0.3.0 exadm-comum-teste0.4.0, com a seção Migração de cada uma aplicada. - Versão ainda não publicada vem do
mavenLocal, filtrado: depois do registro e só parabr.com.xadm, conforme Bibliotecas da casa. A versão publicada sempre sai do registro. - Credencial do Garage pelo dual-read da lib: o
application.ymlmantém o par antigo (garage.access-key/garage.secret-key) como fallback, e axadm-comum-storagelê antes os nomes do broker (GARAGE_ACCESS_KEY_ID/GARAGE_SECRET_ACCESS_KEY). - Smoke com rota de cada classe de credencial:
m2mna listagem do reset esessionem/processamentos, com o seam de sessão daxadm-segurancaligado porSMOKE_TOKEN. - Histórico de execução no volume de
/app/data: o log por processamento que a UI exibe é dado do app;app.logs.dirpassa adata/execucoes, e a V17 reescreve os caminhos já gravados.
Consequências¶
- Uma perna só para operar, verificar e reverter (tag imutável
<sha>-native). Voltar ao jar exige decisão nova com o motivo. - A
/xadm-releaserecusa enquanto alguma lib declarada não estiver no registro: as quatro versões acima precisam estar publicadas antes da próxima release deste app. - O par antigo da credencial sai numa release futura, quando o recurso do Coolify tiver os nomes do broker.
- O smoke passa a exigir a env
SMOKE_TOKENno recurso e os secretsSMOKE_TOKENeSMOKE_M2M_TOKENno GitHub. - Detalhe operável: Deploy.
Alternativas consideradas¶
- Manter o canário jar + native: duas pernas sem ganho medido (100% native no domínio principal) e o dobro de recurso a manter.
- Cadeia
${GARAGE_ACCESS_KEY_ID:${GARAGE_ACCESS_KEY:${S3_ACCESS_KEY:…}}}no YAML: o Micronaut não aninha placeholder, e a guarda dopipeline.ymlreprova. - Nomes novos no YAML com fallback
S3_*: o app subiria com a credencial de dev se o recurso só tivesse o nome antigo do broker.