Files
acaua/CONTRIBUTING.pt-BR.md
T
Lucas RayanandClaude Sonnet 5 8a80504c45
Release / Plan (reuse the published image?) (push) Successful in 3s
CI / Docker image (build and smoke test) (push) Skipped
CI / Format and clippy (push) Successful in 4m32s
CI / Dependency audit (push) Successful in 11s
CI / Tests (Linux) (push) Successful in 9m15s
Release / ci (push) Successful in 9m18s
Release / Build image (arm64) (push) Failing after 7m7s
Release / Build image (amd64) (push) Failing after 13m53s
Release / Publish tags (push) Skipped
Release / Gitea release (push) Skipped
refactor: distribute Acaua as a Docker image instead of a desktop app
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
2026-10-31 19:54:45 -03:00

68 lines
3.0 KiB
Markdown

# Contribuindo com o Acauã
[English](CONTRIBUTING.md) · **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.
1. **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.
2. **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.
3. **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.
4. **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
```bash
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](LICENSE-MIT) **ou**
[Apache-2.0](LICENSE-APACHE), em conformidade com o restante do projeto.