Guias
Grafo de evidências
O grafo de evidências é tudo em que uma decisão de lançamento se apoia, escrito como nós tipados e arestas tipadas em um único arquivo JSON. Ele contém as versões de sistema, suíte e avaliadores que uma execução avaliou, as estimativas calculadas a partir dela, as decisões que as leram sob uma política, os sign-offs que as aprovaram, os perigos que elas medem, as afirmações do caso de garantia que elas sustentam e os resultados formais ao lado delas. Ele também aponta onde a evidência está incompleta, desatualizada ou em conflito, para que um revisor veja as lacunas antes de ler qualquer outra coisa.
Desenhando o grafo
oloproof evidence graph --out graph.json
oloproof evidence graph run_01J9 --out run.json
oloproof evidence graph --record decision-record.json --out record-graph.jsonSem uma execução, o grafo cobre a última execução de cada sistema em cada suíte, as mesmas execuções contra as quais o registro de perigos e o caso de garantia são lidos. Com um id de execução, cobre essa execução e cada afirmação que a lê. Com --record, é desenhado apenas a partir de um arquivo de registro de decisão, para que uma segunda parte veja o que o registro traz sem o seu armazenamento; o que o registro apenas nomeia (seu registro de perigos e seu caso de garantia, por digest) é listado nas notas. Sem --out, o grafo é impresso.
O que ele contém
O arquivo diz "graph": "oloproof.evidence_graph/v1". Cada nó tem um id (tipado, como run:run_01J9 ou decision:run_01J9/label-floor), um type, um label, attributes (um estado, um intervalo, um digest) e uma basis, aquilo em que ele se apoia:
- computed pelo motor a partir de evidência registrada: uma estimativa com seu intervalo, uma decisão;
- signed por um runner registrado, cuja assinatura oloproof record verify verifica;
- attested por pessoas nomeadas: a política de lançamento, um sign-off, um perigo, uma afirmação;
- imported de outra ferramenta: pontuações lidas por oloproof scores import, o resultado de um solver.
Os tipos de nó são system_version, suite_version, evaluator_version, run, estimate, decision, policy, signoff, hazard, claim e proof. As arestas também são tipadas: uma execução evaluates uma versão de sistema e roda on_suite uma versão de suíte; uma estimativa é computed_from uma execução e judged_by uma versão de avaliador; uma decisão reads uma estimativa under_policy uma política; um sign-off approves uma decisão; um perigo é measured_by uma decisão; e uma afirmação é supported_by decisões, perigos, resultados formais e seus subobjetivos.
O que ele relata
- dangling: uma aresta cujo destino o grafo não contém, com o motivo. Um perigo que nomeia uma regra que nenhuma execução decidiu, ou uma decisão cuja métrica não tem resultado armazenado, aparece aqui em vez de desaparecer.
- stale: uma execução cuja evidência não corresponde mais àquilo com que é comparada, com cada motivo e cada nó que se apoia nela. Localmente, uma execução é comparada com o projeto como ele está agora; no espaço de trabalho, e sem arquivo de projeto, com a execução mais recente do armazenamento para o mesmo sistema e suíte. Um grafo desenhado a partir de um registro não relata nada desatualizado, já que não há com que compará-lo.
- contradictions: dois resultados formais para uma mesma propriedade e um mesmo modelo que discordam, e uma afirmação argumentada a partir de evidência que falha.
Nada no grafo decide coisa alguma: os estados são as decisões do motor, e o status de uma afirmação é o que oloproof assurance check relata.
No espaço de trabalho
A página de evidências de uma execução oferece o grafo para download, desenhado pelo motor a partir da evidência que você enviou com push, ao lado do registro de decisão de uma execução governada.
Próximos passos
- Casos de garantia cobre as afirmações que o grafo desenha.
- Registro de perigos cobre os perigos que uma decisão mede.