Ir para o conteúdo

CLI do peart

O peart é o binário da superfície interna: a API sob /api/v1, a interface do pentester e os comandos administrativos que são donos dos dados. O portal do cliente é um programa separado, com entrada própria, documentado em CLI do peart-portal.

Todo subcomando aparece em peart help, e cada um imprime as próprias flags com peart <comando> -h. Esta página é a mesma informação com as razões e os exemplos que não cabem na linha única de descrição de uma flag.

Como um comando se escreve

As flags são lidas pela biblioteca padrão do Go, que aceita -config e --config como a mesma flag. Esta página escreve um traço só, porque é a forma que o peart <comando> -h devolve. O valor pode vir como -config /etc/peart/config.yaml ou -config=/etc/peart/config.yaml.

Invocação que pede ajuda escreve na saída padrão e sai com 0. Invocação que o binário não consegue interpretar escreve o mesmo texto na saída de erro e sai com 2, então um script distingue as duas sem precisar ler a mensagem.

A maioria dos comandos aceita -config, e é o mesmo arquivo que o peart serve lê. Quando o comando também aceita um caminho direto, como -db, o caminho direto vence o que a configuração diz, e é isso que permite trabalhar uma vez sobre uma cópia do banco sem editar configuração.

Rodando a superfície

Flag Padrão O que é
-config /etc/peart/config.yaml O arquivo de configuração, lido na subida e nunca mais
peart serve -config /etc/peart/config.yaml

O processo confere a versão do schema antes de escutar. Banco mais antigo que o binário faz ele recusar a subida em vez de migrar no caminho, então atualizar é sempre um passo que alguém deu de propósito. Ver Atualização.

Preparando e atualizando o banco

Flag Padrão O que é
-config nenhum Arquivo de configuração de onde ler o db_path
-db nenhum Caminho do banco SQLite, sobrepondo o db_path
sudo -u peart peart migrate -config /etc/peart/config.yaml

O migrate aplica todas as migrações pendentes ou nenhuma, e depois importa as técnicas e metodologias embarcadas. Rodar de novo num banco já em dia não faz nada, e é isso que o torna seguro num script de implantação que não sabe em que estado vai chegar.

Contas

O user carrega quatro ações, cada uma com suas flags. As quatro pedem -db, e para elas o caminho do banco não é lido da configuração, então vai direto.

Ação Flags obrigatórias O que faz
create -db, -email, -name, -role Cria a conta e imprime um link de cadastro de uso único
list -db Lista as contas com papel e estado
deactivate -db, -id Desativa a conta, preservando tudo o que ela escreveu
reset-totp -db, -id Limpa o segundo fator para a pessoa cadastrar de novo
peart user create \
  -db /var/lib/peart/peart.db \
  -config /etc/peart/config.yaml \
  -email ana@exemplo.test -name "Ana Souza" -role pentester

O -config aqui é opcional e serve para uma coisa: fornecer o internal.public_url, que é o que transforma o token de cadastro num link clicável. Sem ele o comando imprime o token cru e diz isso, em vez de inventar um nome de host que pode não ser o que a pessoa vai acessar.

O role é admin ou pentester. Conta nunca é apagada, só desativada, porque achados, evidências e versões de relatório carregam o autor, e uma linha apagada deixaria essa trilha apontando para o nada.

Backups, chaves e integridade

Comando Obrigatório Também aceita
backup -out -config, -db, -evidence-root, -rendition-root, -key
backup-roundtrip nenhum as mesmas flags do backup, sem o -out
export-key -key, -confirm nenhuma
fsck nenhum -config, -db, -evidence-root
peart backup -config /etc/peart/config.yaml -out /var/backups/peart

Um artefato guarda um retrato consistente do banco, das evidências e das renditions. A chave mestra deliberadamente não vai junto: um backup que carregasse a própria chave seria um arquivo único que se decifra sozinho, e o sentido da chave é morar em outro lugar.

peart backup-roundtrip -config /etc/peart/config.yaml

Faz o backup num diretório temporário, restaura num segundo, e abre o banco restaurado para confirmar que é um SQLite consultável e não bytes que passaram num checksum. Os dois diretórios são removidos antes do retorno. Rode na mesma periodicidade do backup: backup não testado não é backup.

peart export-key -key /etc/peart/master.key -confirm

O -confirm é obrigatório e não é formalidade: ele reconhece que quem tiver essa saída lê todas as evidências, e que perder a chave é perder todas elas. Guarde a exportação onde o backup dos dados não está.

peart fsck -config /etc/peart/config.yaml

Relata evidência faltando, hash que não bate mais e estado derivado que divergiu do que o produziu. Ele relata; não conserta.

Lendo a configuração efetiva

Flag Padrão O que é
-config /etc/peart/config.yaml O arquivo a ler
peart config -config /etc/peart/config.yaml

Imprime a configuração como o processo de fato resolveu, sobreposições de ambiente incluídas, com todo valor sensível mascarado. É a primeira coisa a rodar quando um ajuste parece não estar valendo, porque responde o que o programa leu, e não o que o arquivo diz.

Avaliando com dados de demonstração

Flag Padrão O que é
-config nenhum Configuração de onde ler db_path, master_key_path e evidence_root
-db, -key, -evidence-root nenhum Caminhos diretos, cada um sobrepondo a configuração
-catalog a baseline web embarcada Catálogo de framework que o engajamento semeado adota
peart seed -config /etc/peart/config.yaml

Popula um engajamento fictício com achados, evidências e relatório, que é o que torna possível tirar captura de tela, abrir relato de defeito e dar uma primeira olhada sem inventar um cliente. Não toca em conta interna nem em segundo fator. Serve para avaliação, não para banco com trabalho real.

As guardas do repositório, que operador nenhum roda

As últimas entradas do peart help são checagens que este repositório faz sobre si mesmo: spec-diff, portal-fieldcheck, i18n-check, severity-rank-check, tracked-binary-check, js-syntax e sbom-merge-frontend. Elas leem a árvore de código, não uma instalação, e quem as invoca são os alvos do make. Estão listadas aqui para que vê-las no peart help não seja enigma; o que cada uma protege está em Segurança do ciclo de desenvolvimento.