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-agent e https://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 mTLS
    • POST /v1/certs/issue (porta 8443, mTLS) — emite cert pro agente autenticado
    • GET /v1/manifest (mTLS) — lista cargas pendentes
    • POST /v1/events (mTLS) — audit log com hash chain SHA256
    • GET /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-update com verificacao minisign (pubkey embutida no binario)
    • Reporte de eventos lifecycle: agent_started, cert_renewed, entrega_instalada
  • CLI tatuzim (server-side admin)

    • init — inicializa vault criptografado
    • unseal — valida passphrase + integridade
    • token create — gera enrollment token one-time
    • agente list — lista agentes registrados
    • carga create — registra carga + atribui entrega a um agente
    • evento list — audit log com --verify da hash chain
  • Empacotamento .deb

    • Geracao via cargo-deb
    • Inclui systemd unit tatuzim-agent.service com hardening
    • postinst cria user tatuzim (uid 999) + diretorios em /var/lib/tatuzim-agent/
    • postrm com cleanup em purge
  • 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 — implementado
  • selado (envelope encryption) — roadmap
  • push (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