Ir para o conteúdo

Modelo de dados e migrações

A descrição autoritativa do modelo de dados vive no repositório em docs/data-model.md. Aquele documento possui as máquinas de estado e as derivações; esta página é um mapa do que há lá, para você saber onde olhar e não depender de uma cópia que possa divergir.

Migrações

Mudanças de schema são migrações forward-only, aplicadas pelo peart migrate, tudo-ou-nada e seguras para rodar de novo. O processo de serviço confere a versão do schema na subida e recusa rodar contra um banco desatualizado em vez de migrar em silêncio no boot.

As máquinas de estado que importam

Vários pedaços de estado são derivados, não definidos à mão, o que é o que os impede de contradizer o registro. Entender esses é boa parte de entender o modelo.

  • Publicação de achado são duas colunas, não um sinalizador: um published_revision_id e um marcador has_pending_changes, dos quais rascunho / publicado / publicado-com-edição-pendente é derivado. O portal só lê a revisão publicada.
  • Verificação de achado (open, fixed, partially_fixed, reopened) é derivada dos retestes do achado em ordem de data, escrita só pelo serviço de reteste, nunca editável.
  • Disposição é uma decisão declarada, com quem definiu e quando, e um motivo obrigatório quando é qualquer coisa diferente do padrão.
  • Geração de relatório (pending, ready, failed) e liberação (released_at) são dois eixos independentes; a liberação congela as revisões publicadas, os mapeamentos de conformidade e os prazos de remediação do relatório.
  • A trilha de auditoria é uma tabela apenas de inserção que registra identificadores e nunca valores de conteúdo, então nunca pode virar uma segunda cópia não cifrada do ativo mais sensível.

Para as colunas exatas, as constraints e os diagramas de estado completos, leia docs/data-model.md.