Contratos e imagem
Detalhe que saiu do README do brabo-api. Para o uso e o desenvolvimento, veja o README.
Contratos
@brabo/shared(só tipos) é o pacote@viralabs-dev/brabo-shared@1.2.0do GitHub Packages, instalado pelo aliasnpm:do pnpm como devDependency (ADR 0270). O.npmrcdo repo só aponta o escopo@viralabs-devparahttps://npm.pkg.github.com.- O
pnpm installprecisa de token mesmo com pacote público. No Docker,docker build --secret id=npmrc,src=$HOME/.npmrc .. No CI vale oGITHUB_TOKENcompackages: read. - Para subir a versão do contracts, use
scripts/ci/subir-contracts.shdo brabo-ci (não edite o lock à mão). O checkcontracts-alinhadoconfere a versão. - A api NÃO consome
@brabo/docker-port(test/api-nao-consome-docker-port.spec.ts). contracts/areas.jsoné gerado porpnpm gerar:areas(a api é a fonte) e publicado nobrabo-contracts.docs/reference/openapi.jsoné a saída depnpm openapi:export(que escreve na saída padrão), commitada no repo. Obrabo-webguarda uma cópia fixada dele.
Imagem
Dockerfileé a imagem de produção (contexto = a raiz do repo).Dockerfile.devé a de desenvolvimento (bind mount +start:dev).- O CI constrói a imagem a cada PR e push, sem publicar. Em PR para a
dev(e hotfix para amain), o jobimagem-hotfixpublicasha-<12>assinada, com Trivy e cosign, para o regressivo do brabo-qa. - O
carimbo.yml(tag-release do brabo-ci) carimba a tag a cada push emdevemain. Orelease.ymlreage avX.Y.Z-dev.Ne avX.Y.Z: publicaghcr.io/viralabs-dev/brabo-apipor digest, escaneia o digest com o Trivy (HIGH/CRITICAL com correção reprova) e assina com cosign keyless pelo digest, verificando a assinatura no mesmo run. Na tag final, anexa oimagem.json(imagem, tag e digest) à GitHub Release. É esse arquivo que o brabo lê para montar oimages.json, e é por ele que o brabo-infra consome a imagem. - Em tag
-dev, oimagem.jsonvai como artefato do run, sem Release. - O
limpeza-ghcr.ymlapaga assha-*de PRs fechadas e as de mais de 7 dias, e guarda as 10-dev.*mais novas. - As branches permanentes são
devemain, e toda tag nasce de workflow, nunca à mão.