Acaua is a collective SOC daemon consuming only Zeek log files, not a single-user tool needing local hardware like its siblings. Drop the Tauri desktop shell, installers and self-update entirely; the server and its web dashboard ship as a container, updated by pulling a new image tag. Link against the official prebuilt libduckdb instead of compiling it from source via the bundled feature, cutting image build time from 15+ minutes to about 3. Fix a real bug found along the way: as PID 1 in a container, the daemon ignored SIGTERM and was always killed after the stop timeout; it now shuts down gracefully. Also corrects the Pillar 1 beaconing score: the period estimate had a harmonic alias (a perfectly periodic 4h series resolved to 600s), and the old score formula flagged pure random traffic as suspicious (p95 = 0.839 on Poisson noise). The new formula was validated against 300 samples per scenario. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VAyr8d7HuAdUGB6aA5xmDD
3.0 KiB
Contribuindo com o Acauã
English · Português
Obrigado por ajudar. O projeto é um motor de NDR construído em torno de evidência determinística. As contribuições mais úteis agora são testes, fixtures, documentação e correções arquiteturais pontuais.
- Apenas monitoramento autorizado. O Acauã é software defensivo para redes próprias ou redes que você tem autorização expressa para observar. Não adicione mecanismos de coleta que ocultem escopo, retenção ou evidências.
- Evidência é parte do recurso. Uma alteração de detecção deve declarar suas entradas, reduções em ordem fixa e valores intermediários. Não são aceitas pontuações sem registro reproduzível de evidência.
- Seja transparente sobre o que funciona. Se um recurso for um stub, limitado a Linux ou restrito a um log Zeek específico, documente no README, na ajuda da CLI e nos testes.
- Base de código 100% em inglês. Código-fonte, comentários, scripts, workflows
e mensagens de commit são em inglês. O dashboard web permanece bilíngue (PT-BR
e EN via
i18n-en.js).
Fluxo de trabalho
scripts/install-hooks.sh
scripts/fetch-libduckdb.sh ~/.cache/acaua/duckdb
export DUCKDB_LIB_DIR=~/.cache/acaua/duckdb LD_LIBRARY_PATH=~/.cache/acaua/duckdb
scripts/check.sh
scripts/check.sh --full
check.sh executa formatação, clippy com warnings como erro, cobertura de
tradução da UI, sintaxe de shell, YAML de workflows, consistência de SemVer,
validação de pin da DuckDB e termos proibidos. --full inclui os testes do
workspace e cargo audit.
Pesquisa
research/ é um espaço Python isolado para validação científica. Pode utilizar
astropy, scipy, networkx, pandas e notebooks. Nunca deve ser importado pelo runtime
em Rust, copiado para uma release ou exigido para compilar o produto.
Interface e tradução
O texto original da interface é em português. O inglês vem de apps/gui/ui/i18n-en.js,
aplicado em runtime por i18n.js. Ao adicionar texto visível, execute
node scripts/check-ui-i18n.mjs e forneça o par correspondente em inglês.
Documentação
Mantenha os pares: todo arquivo *.md e docs/* possui uma versão em inglês e
uma em português (*.pt-BR.md, docs/pt-BR/). Nomes de arquivo são traduzidos
apenas quando a palavra de fato muda, como em architecture.md → arquitetura.md.
Commits e releases
Commits seguem Conventional Commits 1.0.0 em inglês (feat:, fix:, chore:,
ci:, docs:, refactor:, test:, perf:, build:). Versões seguem SemVer 2.0.0.
Releases são publicadas como imagens de container multi-arquitetura (linux/amd64
e linux/arm64) no registry do Gitea. Enviar uma tag v* gera a release no Gitea
a partir do CHANGELOG.md e re-aponta as tags da imagem do container existente.
Licença
Ao contribuir, você concorda em licenciar sob MIT ou Apache-2.0, em conformidade com o restante do projeto.