Changelog
Todas as mudancas relevantes do Tatuzim seguindo Keep a Changelog.
[0.1.0] - 2026-06-07
Primeira release publica — MVP completo de Server + Agent + .deb, distribuido via CDN.
Distribuicao publica
- Binarios assinados (minisign) em
https://get.tatuzim.com/x86_64/tatuzim-agentehttps://get.tatuzim.com/aarch64/tatuzim-agent - Pipeline automatizado: build local → GitHub Release → GitOps Worker → B2 → CDN
- Self-update funcional contra o CDN publico
- Detalhes em Pipeline de Release e Distribuicao
Adicionado
Tatuzim Server (Rust + axum)
- Vault Stoolap criptografado em repouso (ChaCha20-Poly1305 + Argon2id)
- Schema com 6 tabelas:
agentes,enrollment_tokens,cargas,entregas,politicas,eventos POST /v1/enroll(porta 8444) — primeiro contato sem mTLSPOST /v1/certs/issue(porta 8443, mTLS) — emite cert pro agente autenticadoGET /v1/manifest(mTLS) — lista cargas pendentesPOST /v1/events(mTLS) — audit log com hash chain SHA256GET /health(porta 8080, plain) — liveness probe- Auto-bootstrap do proprio TLS cert via step-ca
- Vault lock via
flock(2)previne acesso concorrente destrutivo
Tatuzim Agent (Rust)
- Subcomandos:
enroll,identity,run,rotate,self-update - First-time enrollment com token one-time
- Daemon loop com pull de manifest e processamento de cargas
- Processador modo
csr_cert: gera CSR local, pede cert ao server, escreve em out dir - Renovacao automatica de cert quando proxima de expirar
- Hooks pos-instalacao (executa script apos cada carga processada)
self-updatecom verificacao minisign (pubkey embutida no binario)- Reporte de eventos lifecycle:
agent_started,cert_renewed,entrega_instalada
- Subcomandos:
CLI tatuzim (server-side admin)
init— inicializa vault criptografadounseal— valida passphrase + integridadetoken create— gera enrollment token one-timeagente list— lista agentes registradoscarga create— registra carga + atribui entrega a um agenteevento list— audit log com--verifyda hash chain
Empacotamento .deb
- Geracao via
cargo-deb - Inclui systemd unit
tatuzim-agent.servicecom hardening - postinst cria user
tatuzim(uid 999) + diretorios em/var/lib/tatuzim-agent/ - postrm com cleanup em purge
- Geracao via
Componentes de infra
- step-ca container (smallstep) com JWK provisioner
- docker-compose orchestrando step-ca + tatuzim-server
- Pubkey minisign de release gerada e embutida nos agents
8 testes E2E validando fluxos completos: server skeleton, enrollment, mTLS, events, agent basico, agent CSR, agent rotate, agent hook
Componentes da Arquitetura (definidos)
- Tatuzim Server (hub) — implementado
- Tatuzim Agent (VPS) — implementado
- step-ca (off-the-shelf) — integrado
- Cofre — diferido (depende de implementacao externa)
- WireGuard — opcional (defense in depth)
Modos de Carga
csr_cert— implementadoselado(envelope encryption) — roadmappush(server-initiated) — roadmap
Limitacoes Conhecidas (MVP)
- CSR do agent so aceita CN = hostname do proprio agent (cert pra outros nomes vem em sub-fase futura)
- Modo selado e push nao implementados
- Sem notify webhook pro CCS Orchestrator
- Backup da chave de release ainda nao no Cofre (debito tecnico aberto)
Seguranca
- Server cert auto-emitido pelo step-ca local (zero-config TLS)
- Agent cert chain (leaf + intermediate) enviado completo no mTLS handshake
- VaultLock (flock advisory) impede 2 processos abrirem o mesmo vault simultaneamente
- Self-update do agent verifica assinatura minisign antes de instalar
- Permissions estritas: vault.lock 0600, agent.key 0600, cert.pem 0644
Roadmap
v0.2.0 — Modo Selado
- Envelope encryption por destinatario (XChaCha20-Poly1305 + ECDH X25519)
- Endpoint pra publisher subir blob sigiloso
- Download e descifragem no agent
- Integracao com Cofre pra storage durable
v0.3.0 — Modo Push
- Server-initiated delivery via long-polling
- Util pra listas de bloqueio, configs nao-confidenciais
- Validacao via assinatura sem cifragem por destinatario
v0.4.0 — Operacao
- Notify webhook pro CCS Orchestrator
- Backup automatizado do step-ca intermediate
- Metricas Prometheus
- Lifetime curto/longo (identidade-de-uso descartavel)
By Borlot.com.br on 23/05/2026