Saltar para o conteúdo principal
As descobertas de dependências são apenas tão completas quanto o grafo contra o qual são comparadas. Se um manifesto não pode ser totalmente resolvido, geralmente por causa de um lockfile ausente, seus pacotes transitivos permanecem invisíveis e uma vulnerabilidade pode se esconder ali. O ZeroPath mede isso diretamente e apresenta o resultado como cobertura, tornando as lacunas de resolução visíveis e rastreáveis.

Cobertura de resolução

Cada scan reporta, por ecossistema, quantos manifestos descobriu versus quantos resolveu completamente. A página Supply Chain consolida isso em:
  • Scan coverage — a fração geral de manifestos descobertos que foram resolvidos, em todos os repositórios medidos.
  • Coverage by ecosystem — a fração de manifestos resolvidos por ecossistema, para que você identifique um ecossistema uniformemente fraco (por exemplo, “nenhum lockfile do Gradle em lugar algum”).
  • Coverage by repository — os repositórios menos cobertos primeiro.
  • Coverage blind spots — avisos ativos, divididos por severidade (blocker / warning / info).
Repositórios cujo scan mais recente é anterior à medição de cobertura são omitidos das consolidações, de modo que um repositório não medido nunca é exibido como totalmente coberto.

Fidelidade de resolução

A cobertura também reporta a fidelidade que o ZeroPath alcançou por ecossistema, o tipo de resolução por trás dos números:
  • Deterministic — resolvido a partir de um lockfile commitado (ou de um requirements.txt totalmente fixado com ==, que é tratado como equivalente a um lockfile), de modo que o inventário reflete exatamente as versões fixadas às quais seu build está travado.
  • Build-less — grafo transitivo completo resolvido diretamente do manifesto, sem necessidade de lockfile. Veja Ecossistemas suportados para a matriz por ecossistema.
  • Degraded (direct-only) — apenas as suas dependências diretas foram resolvidas, porque um lockfile obrigatório está ausente. Descobertas em dependências diretas ainda aparecem; apenas a cauda transitiva está ausente. Este é o estado a corrigir.
O painel Resolution fidelity by ecosystem agrupa os ecossistemas degradados em um resumo expansível. Cada linha de ecossistema mostra seu nível de cobertura, o número de manifestos afetados e um chevron para expandir o detalhamento. Expandir uma linha lista os arquivos de manifesto afetados agrupados por tipo de aviso, para que você veja exatamente quais manifestos precisam de atenção. Para ecossistemas com muitos manifestos afetados, o painel exibe uma prévia dos primeiros arquivos e aponta para a tabela completa de avisos abaixo para o restante.

Avisos de cobertura

Manifestos que não puderam ser totalmente analisados são sinalizados com um aviso específico, para que você veja exatamente qual parte do grafo pode estar incompleta e por quê. Você pode clicar em qualquer linha de aviso para expandi-la e ver, inline, a mensagem completa do aviso, o tipo, o repositório e o caminho do arquivo. Filtre a lista de avisos por severidade, tipo ou repositório, e exporte um relatório de cobertura (CSV) para acompanhamento.
Os três primeiros avisos dizem respeito à resolução de dependências e são resolvidos quando você faz commit de um lockfile ou corrige o manifesto. A variante de infraestrutura da falha de resolução de dependências não exige nenhuma ação sua — é um problema transitório do lado da plataforma que se resolve no próximo scan. Uma anomalia de zero dependências é um sinal consultivo para reverificar e reescanear, não necessariamente uma correção de lockfile. Os três últimos são avisos transitórios de fonte de dados que geralmente se resolvem sozinhos no próximo scan.

Por que as descobertas não desaparecem em um scan com falha

Quando um manifesto não pode ser resolvido durante um scan, o ZeroPath carrega adiante as descobertas de SCA existentes para ele em vez de marcá-las como resolvidas. Isso impede que uma vulnerabilidade confirmada desapareça silenciosamente por causa de uma falha transitória de resolução. Uma descoberta só é resolvida automaticamente quando seu manifesto foi analisado com sucesso e a vulnerabilidade realmente desapareceu.

Gere lockfiles antes de escanear

Resolver um aviso Transitive dependencies unresolved ou Missing lockfile quase sempre significa fazer commit do lockfile daquele ecossistema. Os comandos abaixo produzem o arquivo que o ZeroPath procura:
Para npm/Yarn/pnpm, Maven e um requirements.txt totalmente fixado com == (que o ZeroPath trata como equivalente a um lockfile para resolução determinística), nenhum lockfile é necessário para cobertura completa — veja Ecossistemas suportados.
A plataforma de Agentes do ZeroPath inclui um playbook Coverage Autopilot que lê os avisos de cobertura registrados após cada scan, publica orientações por manifesto e pode abrir pull requests que geram lockfiles.

Notas operacionais

Inventários, alertas e SBOMs são gerados a partir do mesmo conjunto de dados ordenado, de modo que diffs e revisões permanecem estáveis de um scan para o outro.
Cada scan captura um inventário pontual no tempo, permitindo diffs entre scans, exportações de SBOM e investigações retroativas.
O SCA captura o commit git mais antigo que introduziu uma entrada de manifesto afetada, para que você veja há quanto tempo uma vulnerabilidade vive no seu histórico.
Scans são retomados após interrupções, falhas repetidas são limitadas, jobs obsoletos são limpos e inventários concluídos são reutilizados sempre que possível.