Compare commits
3
Commits
be47b607df
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
673b11c88c | ||
|
|
f2a10ca1a6 | ||
|
|
3e7e730f23 |
No files matched your search
@@ -75,15 +75,19 @@ jobs:
|
|||||||
registry: ${{ env.REGISTRY }}
|
registry: ${{ env.REGISTRY }}
|
||||||
username: ${{ gitea.actor }}
|
username: ${{ gitea.actor }}
|
||||||
password: ${{ secrets.REGISTRY_TOKEN }}
|
password: ${{ secrets.REGISTRY_TOKEN }}
|
||||||
|
# Plain `docker buildx build` instead of docker/build-push-action: that
|
||||||
|
# action's upstream repo (~260MB of git history) reliably hangs the
|
||||||
|
# act runner's Go-based clone on the Hostinger host, even when curl/git
|
||||||
|
# to github.com are both fast. Same end result, no action to clone.
|
||||||
- name: Build and push (per architecture)
|
- name: Build and push (per architecture)
|
||||||
uses: docker/build-push-action@v7
|
run: |
|
||||||
with:
|
docker buildx build \
|
||||||
context: .
|
--platform "${{ matrix.platform }}" \
|
||||||
platforms: ${{ matrix.platform }}
|
--push \
|
||||||
push: true
|
-t "${{ needs.plan.outputs.image }}:build-${{ gitea.sha }}-${{ matrix.arch }}" \
|
||||||
tags: ${{ needs.plan.outputs.image }}:build-${{ gitea.sha }}-${{ matrix.arch }}
|
--cache-from "type=registry,ref=${{ needs.plan.outputs.image }}:buildcache-${{ matrix.arch }}" \
|
||||||
cache-from: type=registry,ref=${{ needs.plan.outputs.image }}:buildcache-${{ matrix.arch }}
|
--cache-to "type=registry,ref=${{ needs.plan.outputs.image }}:buildcache-${{ matrix.arch }},mode=max" \
|
||||||
cache-to: type=registry,ref=${{ needs.plan.outputs.image }}:buildcache-${{ matrix.arch }},mode=max
|
.
|
||||||
# Runs the image that was just pushed, on its own architecture.
|
# Runs the image that was just pushed, on its own architecture.
|
||||||
- name: Smoke test
|
- name: Smoke test
|
||||||
run: scripts/smoke-image.sh "${{ needs.plan.outputs.image }}:build-${{ gitea.sha }}-${{ matrix.arch }}"
|
run: scripts/smoke-image.sh "${{ needs.plan.outputs.image }}:build-${{ gitea.sha }}-${{ matrix.arch }}"
|
||||||
|
|||||||
+5
-10
@@ -6,6 +6,8 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.1.0] - 2026-11-01
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- **Pillar 1 (v1.2):** Rayleigh/Schuster periodogram with grid bounded by the observed span ($T \le \text{span}/3$), regularity gating, and infrastructure exclusions (NTP, mDNS/LLMNR/NBNS, SSDP, non-TCP/UDP).
|
- **Pillar 1 (v1.2):** Rayleigh/Schuster periodogram with grid bounded by the observed span ($T \le \text{span}/3$), regularity gating, and infrastructure exclusions (NTP, mDNS/LLMNR/NBNS, SSDP, non-TCP/UDP).
|
||||||
- **Pillar 2 (v1.0):** Persistent TCP session detector with inactivity chaining (gaps $\le 3600$s without SYN), logarithmic duration scoring, and PCR / failed attempt metrics in evidence.
|
- **Pillar 2 (v1.0):** Persistent TCP session detector with inactivity chaining (gaps $\le 3600$s without SYN), logarithmic duration scoring, and PCR / failed attempt metrics in evidence.
|
||||||
@@ -14,6 +16,7 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
|
|||||||
- **Zeek `dns.log` ingestion:** Daily Hive Parquet partitioning for DNS queries with deterministic column mapping by TSV header.
|
- **Zeek `dns.log` ingestion:** Daily Hive Parquet partitioning for DNS queries with deterministic column mapping by TSV header.
|
||||||
- **Parquet storage schema (v1.2):** 15-column schema for `conn.log` supporting `conn_state`, `history`, `orig_pkts`, `resp_pkts`, `orig_ip_bytes`, `resp_ip_bytes`.
|
- **Parquet storage schema (v1.2):** 15-column schema for `conn.log` supporting `conn_state`, `history`, `orig_pkts`, `resp_pkts`, `orig_ip_bytes`, `resp_ip_bytes`.
|
||||||
- **In-memory alert reporting:** Web daemon `/api/alerts` route now serves alerts from the most recent analysis run.
|
- **In-memory alert reporting:** Web daemon `/api/alerts` route now serves alerts from the most recent analysis run.
|
||||||
|
- **Real dashboard UI:** Sidebar navigation now switches panels instead of a no-op scroll. New Hosts panel ranks observed hosts by fusion score with per-pillar (P1/P2/P3) drill-down. Alerts panel is filterable/sortable by pillar and score, with full evidence rendered as a formatted table. Overview panel adds KPI tiles and two interactive SVG charts (top hosts by fusion score, alert distribution by pillar).
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- **Breaking (0.x):** Pillar 1 formula v1.2 modifies scores and changes `Alert.id` generation to reflect the corrected bounded grid and session-based aggregation.
|
- **Breaking (0.x):** Pillar 1 formula v1.2 modifies scores and changes `Alert.id` generation to reflect the corrected bounded grid and session-based aggregation.
|
||||||
@@ -33,17 +36,9 @@ Format based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versio
|
|||||||
- Tauri desktop application (`apps/gui/src-tauri`) and associated desktop build scripts.
|
- Tauri desktop application (`apps/gui/src-tauri`) and associated desktop build scripts.
|
||||||
- Self-update flag (`acaua update --apply`) and in-place binary overwrite. Updates are now handled via image pulls (`docker compose pull`).
|
- Self-update flag (`acaua update --apply`) and in-place binary overwrite. Updates are now handled via image pulls (`docker compose pull`).
|
||||||
|
|
||||||
## [0.1.0] - 2026-10-31
|
### Initial scaffold
|
||||||
|
|
||||||
### Added
|
|
||||||
- Rust workspace with `acaua-core` and `acaua-cli`.
|
- Rust workspace with `acaua-core` and `acaua-cli`.
|
||||||
- CLI skeleton with `serve`, `analyze`, `doctor` and `update [--apply]`.
|
- CLI skeleton with `serve`, `analyze`, `doctor` and `update [--apply]`.
|
||||||
- Axum API skeleton with health, status, alerts, analyze and update-check routes.
|
- Axum API skeleton with health, status, alerts, analyze and update-check routes.
|
||||||
- Embedded vanilla UI and Tauri desktop shell.
|
- Embedded vanilla UI (desktop shell since removed; see Removed above).
|
||||||
- Deterministic pillar, fusion, storage, Zeek and updater stubs with smoke tests.
|
|
||||||
- English/Portuguese documentation, CI/release workflows and local check script.
|
- English/Portuguese documentation, CI/release workflows and local check script.
|
||||||
|
|
||||||
### Notes
|
|
||||||
- The four mathematical pillars are not implemented.
|
|
||||||
- The Zeek parser and DuckDB storage are stubs.
|
|
||||||
- No release artifact has been published.
|
|
||||||
+5
-10
@@ -6,6 +6,8 @@ Formato baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/);
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.1.0] - 2026-11-01
|
||||||
|
|
||||||
### Adicionado
|
### Adicionado
|
||||||
- **Pilar 1 (v1.2):** Periodograma de Rayleigh/Schuster com grade limitada ao intervalo observado ($T \le \text{span}/3$), portão de significância por regularidade e exclusões de infraestrutura (NTP, mDNS/LLMNR/NBNS, SSDP, não-TCP/UDP).
|
- **Pilar 1 (v1.2):** Periodograma de Rayleigh/Schuster com grade limitada ao intervalo observado ($T \le \text{span}/3$), portão de significância por regularidade e exclusões de infraestrutura (NTP, mDNS/LLMNR/NBNS, SSDP, não-TCP/UDP).
|
||||||
- **Pilar 2 (v1.0):** Detector de sessões TCP persistentes com encadeamento de timeouts de inatividade (intervalos $\le 3600$s sem novo SYN), score logarítmico de persistência e métricas de PCR e tentativas falhas na evidência.
|
- **Pilar 2 (v1.0):** Detector de sessões TCP persistentes com encadeamento de timeouts de inatividade (intervalos $\le 3600$s sem novo SYN), score logarítmico de persistência e métricas de PCR e tentativas falhas na evidência.
|
||||||
@@ -14,6 +16,7 @@ Formato baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/);
|
|||||||
- **Ingestão de `dns.log` do Zeek:** Particionamento diário Hive Parquet para consultas DNS com mapeamento determinístico de colunas pelo cabeçalho TSV.
|
- **Ingestão de `dns.log` do Zeek:** Particionamento diário Hive Parquet para consultas DNS com mapeamento determinístico de colunas pelo cabeçalho TSV.
|
||||||
- **Esquema de armazenamento Parquet (v1.2):** Esquema de 15 colunas para `conn.log` suportando `conn_state`, `history`, `orig_pkts`, `resp_pkts`, `orig_ip_bytes`, `resp_ip_bytes`.
|
- **Esquema de armazenamento Parquet (v1.2):** Esquema de 15 colunas para `conn.log` suportando `conn_state`, `history`, `orig_pkts`, `resp_pkts`, `orig_ip_bytes`, `resp_ip_bytes`.
|
||||||
- **Relato de alertas em memória:** Rota `/api/alerts` do daemon web agora serve os alertas da análise mais recente.
|
- **Relato de alertas em memória:** Rota `/api/alerts` do daemon web agora serve os alertas da análise mais recente.
|
||||||
|
- **Dashboard de verdade na UI:** Navegação lateral agora troca de painel de fato, em vez de um scroll sem efeito. Novo painel Hosts ranqueia os hosts observados por score de fusão, com detalhamento por pilar (P1/P2/P3). Painel de Alertas é filtrável/ordenável por pilar e score, com evidência completa renderizada em tabela formatada. Painel de Visão Geral ganhou KPIs e dois gráficos SVG interativos (top hosts por score de fusão, distribuição de alertas por pilar).
|
||||||
|
|
||||||
### Modificado
|
### Modificado
|
||||||
- **Breaking (0.x):** A fórmula v1.2 do Pilar 1 altera pontuações e a geração de `Alert.id` para refletir a grade limitada e a agregação por inícios de sessão.
|
- **Breaking (0.x):** A fórmula v1.2 do Pilar 1 altera pontuações e a geração de `Alert.id` para refletir a grade limitada e a agregação por inícios de sessão.
|
||||||
@@ -33,17 +36,9 @@ Formato baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/);
|
|||||||
- Aplicativo desktop Tauri (`apps/gui/src-tauri`) e scripts de build desktop associados.
|
- Aplicativo desktop Tauri (`apps/gui/src-tauri`) e scripts de build desktop associados.
|
||||||
- Flag de autoatualização (`acaua update --apply`) e sobrescrita de binário em disco. Atualizações agora são feitas via pull de imagem (`docker compose pull`).
|
- Flag de autoatualização (`acaua update --apply`) e sobrescrita de binário em disco. Atualizações agora são feitas via pull de imagem (`docker compose pull`).
|
||||||
|
|
||||||
## [0.1.0] - 2026-10-31
|
### Esqueleto inicial
|
||||||
|
|
||||||
### Adicionado
|
|
||||||
- Workspace Rust com `acaua-core` e `acaua-cli`.
|
- Workspace Rust com `acaua-core` e `acaua-cli`.
|
||||||
- Esqueleto da CLI com `serve`, `analyze`, `doctor` e `update [--apply]`.
|
- Esqueleto da CLI com `serve`, `analyze`, `doctor` e `update [--apply]`.
|
||||||
- Esqueleto da API Axum com rotas de health, status, alertas, análise e checagem de atualização.
|
- Esqueleto da API Axum com rotas de health, status, alertas, análise e checagem de atualização.
|
||||||
- UI vanilla embutida e shell desktop Tauri.
|
- UI vanilla embutida (shell desktop removido depois; ver Removido acima).
|
||||||
- Stubs determinísticos de pilares, fusão, armazenamento, Zeek e updater com testes de fumaça.
|
|
||||||
- Documentação em inglês/português, workflows de CI/release e script local de verificação.
|
- Documentação em inglês/português, workflows de CI/release e script local de verificação.
|
||||||
|
|
||||||
### Notas
|
|
||||||
- Os quatro pilares matemáticos não estão implementados.
|
|
||||||
- O parser Zeek e o armazenamento DuckDB são stubs.
|
|
||||||
- Nenhum artefato de release foi publicado.
|
|
||||||
Reference in new issue
Block a user