Cadeia de suprimento dos binários

Como conferir o checksum e a assinatura de um release da codafort, e o que cada canal de instalação verifica antes de instalar.

Cada release publica SHA256SUMS, assinado com minisign a partir da v0.1.0, e cada canal confere o hash antes de instalar. A assinatura é conferida pelo instalador por script quando o minisign está instalado (tabela abaixo).

O que cada release publica

Em github.com/codafort/releases, por produto e versão (a tag leva o produto: codafort-v0.1.0, codacrash-v0.1.0…):

ArquivoConteúdo
<produto>-<versão>-<plataforma>.tar.gz / .zipo binário, LICENSE (EULA) e THIRD-PARTY-NOTICES.md; no codafort, também skills/ (as Agent Skills)
SHA256SUMSo hash de cada arquivo do release
SHA256SUMS.minisiga assinatura minisign do arquivo de hashes
codafort.puba chave pública minisign, em cada release do codafort e em codafort.dev/codafort.pub, de onde os instaladores a buscam
codafort-<versão>-sbom.cdx.jsono SBOM CycloneDX do release do codafort (o binário e o dashboard que ele embarca)
codaprobe.rb · codatrace.rbfórmulas Homebrew desses dois produtos, como assets do release (o tap só carrega o codafort)

Plataformas do codafort: macOS arm64 e x64, Linux x64 e arm64, Windows x64. codacrash: macOS arm64 e x64, Linux x64, Windows x64 e x86. codaprobe: macOS arm64 e x64, Linux x64, Windows x64. codatrace: macOS e Linux x64; em outras plataformas, o agente JVM vem em código-fonte no pacote e codatrace install jvm imprime a linha de cc para compilá-lo. Os binários Linux exigem glibc 2.28 ou mais nova (Ubuntu 20.04+, Debian 11+, RHEL/Rocky 8+, Amazon Linux 2023); Alpine/musl não é suportado.

Verificar à mão

# 1. checksum (só dos arquivos que você baixou)
sha256sum -c --ignore-missing SHA256SUMS   # macOS: shasum -a 256 -c --ignore-missing SHA256SUMS
# 2. assinatura do arquivo de checksums
minisign -Vm SHA256SUMS -p codafort.pub

No Windows, o passo 1 é (Get-FileHash .\codafort-<versão>-win32-x64.zip -Algorithm SHA256).Hash, comparado com a linha do SHA256SUMS.

Se o passo 2 passa, cada hash em SHA256SUMS é o que a codafort publicou. Se o passo 1 passa, o arquivo que você baixou é o que o hash descreve.

Os canais e o que cada um confere

Pré-lançamento: a codafort ainda não está disponível para instalar. Entre na lista de espera →

CanalComandoVerificação
Script (macOS · Linux)`curl --proto '=https' --tlsv1.2 -fsSL https://codafort.dev/install.sh \sh`SHA-256 sempre: sem SHA256SUMS ou sem sha256sum/shasum, não instala; minisign se o minisign estiver instalado (senão avisa e segue). Instala em ~/.local/bin; CODAFORT_VERSION fixa a versão, CODAFORT_INSTALL muda o diretório, CODAFORT_NO_MODIFY_PATH=1 não sugere PATH
PowerShell (Windows)`irm https://codafort.dev/install.ps1 \iex`SHA-256 sempre; minisign se o minisign estiver no PATH. Instala em %LOCALAPPDATA%\Programs\codafort e o acrescenta ao PATH do usuário (CODAFORT_NO_MODIFY_PATH=1 não acrescenta); as mesmas CODAFORT_VERSION e CODAFORT_INSTALL
npmnpm i -g codafort · npx codaforto meta-pacote codafort resolve @codafort/cli-<plataforma> por optionalDependencies; o binário nativo vem dentro do pacote, e nada é baixado depois
Homebrewbrew install codafort/tap/codaforta fórmula traz o sha256 de cada tarball
ManualDownloadvocê confere como acima

O npm só distribui o codafort. Os agentes do codatrace (Python, Node, JVM) vêm no mesmo pacote do coletor, para que agente e coletor estejam sempre na mesma versão.

SBOM

O SBOM da própria codafort está em /sbom.json (CycloneDX 1.5), gerado pelo próprio produto. Cobre as dependências do binário e do dashboard web. Não cobre os agentes do codatrace, que não têm lockfile próprio e usam a biblioteca padrão do runtime da sua aplicação. Cada release do codafort traz também o SBOM do próprio release (codafort-<versão>-sbom.cdx.json), coberto pelo SHA256SUMS e, portanto, pela assinatura.

Trate os instaladores como release

O /install.sh é POSIX sh, sem bashisms; o /install.ps1 roda no Windows PowerShell 5.1 e no PowerShell 7. Para ler antes de rodar: curl -fsSL https://codafort.dev/install.sh | less · irm https://codafort.dev/install.ps1. Nenhum pede administrador. O sh não altera o PATH (só sugere); o do PowerShell altera só o PATH do usuário e avisa. Os dois param sem instalar se o checksum não bater, e um download interrompido no meio do curl | sh não executa nada.

Licença

Todo binário é distribuído sob a EULA da Orchestro Tecnologia (LICENSE no pacote): software licenciado, não vendido. A Segurança (detecção e conserto) é grátis para sempre; veja codafort.com/terms.