O canal com a Platform
codafort platform entrega os resultados da análise, da máquina do dev ou do CI, à codafort Platform. Nada sai sem você ligar o canal.
Na Platform ficam a fila por organização, o estado de cada finding entre execuções e o placar antes/depois.
Estado (setembro de 2026): a Platform roda como piloto provisionado por nós; o SaaS emapp.codafort.comainda não está no ar. Apontado para lá, opushnão entrega: na sua máquina o envelope fica na fila; no CI, o passo reprova. Para um piloto, use a URL que você recebeu (--urlouCODAFORT_PLATFORM_URL).
Ligar, entregar, desligar
codafort platform login # abre o navegador; você aprova este computador na Platform
codafort platform connect # liga ESTE repositório à sua organização
codafort engine analyze --source . --git --format json --output envelope.json
codafort platform push envelope.json # entrega (ou deixa na fila, se a Platform não responder)
codafort platform status # sessão, repositório ligado e quantos envios na fila
codafort platform disconnect # desliga o repositório e DESCARTA a fila
codafort platform logout # revoga a sessão e apaga a credencial
O login usa o fluxo de autorização de dispositivo (RFC 8628): o terminal mostra um código, você o confirma logado na Platform, e a sessão criada só entrega evidência e lê work orders.
O que sai, e quando
pushde umcoda-fort/1: o nome do repositório, a branch, o commit e só os artefatos que a Platform lê, que sãoissues(cada finding com regra, severidade, mensagem e o trecho de código onde está),dependenciesefiles. O resto do envelope fica na máquina. Com--with-graph, vai também o grafo do código que a tela de grafo desenha. Caminho absoluto não sai: tudo é relativizado à raiz do repositório, e o envio é recusado se sobrar algum.pushde outra modalidade (coda-dast/1,coda-iast/1,coda-crash/1…): o envelope como o emissor o escreveu.- Depois do
connect: um registro de uso por comando do codafort neste repositório, com o verbo, o digest SHA-256 dos argumentos, quantos findings foram tocados e a duração. Quando o agente propõe dispensar um finding, vai também a proposta: o hash do finding, o tipo e o motivo que ele escreveu, com até 500 caracteres. Nenhum caminho de arquivo e nenhum código. - Sem
login(ou sem token no CI), opushnão tem com quem falar. Semconnect, ou depois dodisconnect, nenhum registro de uso é gravado. Oconnecttambém amarra o repositório à organização: umpushcom a sessão de outra organização é recusado antes de sair.
No CI
export CODAFORT_PLATFORM_TOKEN=… # token de ingestão da organização: só escreve, não lê nem decide
export CODAFORT_PLATFORM_URL=https://…
codafort platform push envelope.json
Com o token no ambiente, o push entrega como máquina, sem login. Se a Platform não receber, o comando reprova. No CI não há fila: ela se perderia junto com o runner, e o passo ficaria verde sem entrega.
Sem rede (air-gapped)
O build air-gapped não tem o canal: os verbos de codafort platform existem e respondem que não há canal.