Como verificar a prontidão do ambiente antes do primeiro uso clínico¶
Tipo: How-to — orientado a tarefa
Audiência: responsável técnico ou profissional que vai usar o Anotae pela primeira vez em contexto clínico real (com dados de pacientes)
Pré-condição: Anotae instalado e vault criado; ambiente de produção configurado (não é para uso em testes)
Por que fazer esta verificação?¶
O Anotae armazena dados clínicos em vault cifrado local. Antes de usá-lo com dados reais de pacientes, convém confirmar que os controles de segurança estão ativos e configurados corretamente.
O script preflight-check.py valida automaticamente os seis controles P0
("must-have pré-clínico") sem modificar nenhum dado:
| Controle | O que verifica |
|---|---|
| P0.1 Field-level encryption | Campos clínicos cifrados com ChaCha20-Poly1305 |
| P0.2 Audit log | Log de auditoria append-only com hash chain verificável |
| P0.3 Backup automático | Pelo menos um backup íntegro presente |
| P0.4 LGPD consent | Registro de consentimento LGPD no vault |
| P0.5 Supply chain | Hashes SHA-256 dos modelos de IA configurados (se IA ativa) |
| P0.6 Ruff/mypy clean | Integridade do código Python (apenas em modo dev) |
Passo 1: Localizar o script¶
O script está no repositório do Anotae, em scripts/preflight-check.py.
Se você instalou o binário (.msi, .dmg), o script está disponível como:
# Windows (PowerShell)
& "C:\Program Files\Anotae\scripts\preflight-check.py"
# macOS / Linux
/Applications/Anotae.app/Contents/Resources/scripts/preflight-check.py
# ou, se instalado via pip:
python -m anotae.scripts.preflight_check
Se você usa o código-fonte diretamente (modo desenvolvedor):
Passo 2: Executar a verificação¶
O script abre o vault em modo somente-leitura. Ele nunca modifica dados.
Saída esperada (tudo OK)¶
Anotae Preflight Check — v0.12
Vault: /home/usuario/.anotae/vault.db
───────────────────────────────────────────
✓ P0.1 Field-level encryption — ChaCha20-Poly1305 ativo em 5 colunas
✓ P0.2 Audit log — 47 entradas, hash chain válido
✓ P0.3 Backup — 3 backups presentes, último íntegro
✓ P0.4 LGPD consent — 1 registro de consentimento
✓ P0.5 Supply chain — 3 hashes SHA-256 configurados
✓ P0.6 Ruff/mypy clean — ignorado fora de modo dev
───────────────────────────────────────────
6/6 controles OK — ambiente pronto para uso clínico.
Exit code: 0
Saída com falha¶
Anotae Preflight Check — v0.12
Vault: /home/usuario/.anotae/vault.db
───────────────────────────────────────────
✓ P0.1 Field-level encryption — ChaCha20-Poly1305 ativo em 5 colunas
✓ P0.2 Audit log — 47 entradas, hash chain válido
✗ P0.3 Backup — nenhum backup encontrado em ~/.anotae/backups/
✓ P0.4 LGPD consent — 1 registro de consentimento
✗ P0.5 Supply chain — WHISPER_SMALL_SHA256 vazio (cerimônia pendente)
✓ P0.6 Ruff/mypy clean — ignorado fora de modo dev
───────────────────────────────────────────
2/6 controles falharam — ambiente NÃO está pronto para uso clínico.
Exit code: 1
Passo 3: Corrigir falhas¶
P0.3 — Sem backup¶
Configure o backup automático antes de usar em produção:
- Abra o Anotae → Ferramentas → Gerenciar backups
- Ative "Backup automático a cada X atendimentos"
- Ou crie um backup imediato:
anotae backup create /caminho/para/vault.db
P0.5 — SHA-256 dos modelos não configurado¶
Os hashes SHA-256 dos modelos de IA precisam ser verificados offline ("cerimônia SHA-256") antes de serem hardcodados. Esta etapa protege contra adulteração no download.
Se você usa a IA local e ainda não fez a cerimônia:
# Com os modelos já baixados:
python scripts/sha256-ceremony.py all
# Depois, hard-code os hashes retornados em:
# - anotae/rag/model_downloader.py (modelo e5-small)
# - anotae/asr/model_downloader.py (modelo whisper-small)
# Ver scripts/sha256-ceremony.py para instruções completas.
Se você não usa IA local, desabilite os módulos em Configurações → IA Local → desmarcar "Ativar assistente" e "Ativar transcrição de voz". O P0.5 passará automaticamente.
P0.4 — Sem registro LGPD¶
O consentimento LGPD é registrado na primeira vez que um novo paciente é adicionado ao vault. Se o vault está vazio (ambiente de teste), configure ao menos um paciente de teste antes de rodar o preflight em produção.
Automatizar a verificação (opcional)¶
Para rodar o preflight automaticamente toda manhã antes do primeiro atendimento:
Linux/macOS (crontab):
0 7 * * 1-5 python /caminho/para/anotae/scripts/preflight-check.py \
/home/$USER/.anotae/vault.db \
>> /var/log/anotae-preflight.log 2>&1
Windows (Tarefas Agendadas — PowerShell):
$action = New-ScheduledTaskAction -Execute "python" `
-Argument "C:\Program Files\Anotae\scripts\preflight-check.py C:\Users\$env:USERNAME\.anotae\vault.db"
$trigger = New-ScheduledTaskTrigger -Daily -At "07:00"
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "Anotae-Preflight"
O script sai com código 0 (tudo OK) ou 1 (falha). Configure um alerta
no seu sistema de monitoramento para o código 1.
O que o script NÃO faz¶
- ❌ Não abre, descriptografa ou exibe dados clínicos
- ❌ Não modifica nenhum arquivo do vault
- ❌ Não envia dados para a internet
- ❌ Não substitui a auditoria de segurança formal
- ❌ Não verifica se a senha-mestra é forte (use o
anotae kdf benchmark)
Ver também¶
anotae doctor <vault>— healthcheck via CLI com mais detalhes sobre o vaultscripts/sha256-ceremony.py— cerimônia SHA-256 dos modelos de IA- Backup e restauração
- Ativar IA local