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_ide um marcadorhas_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.