chore(0006): bump unibus to 0.8.0, close issue 0006 (cluster hardening + wiring)
All seven phases (0006a–0006g) merged: blockers N3 (replicated nonce) and N2 ($JS.API.> KV leak) closed, decentralized KV store wired (--store kv), homogeneous cluster posture enforced (N1), RefreshSession in all clients (N4), the lows (secret out of argv, migrate guard, R1/CA docs), and the 3-node deploy material. Full suite + every audit-0008 attack regression green; govulncheck 0 reachable. See report 0009. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
name: unibus
|
name: unibus
|
||||||
lang: go
|
lang: go
|
||||||
domain: infra
|
domain: infra
|
||||||
version: 0.7.0
|
version: 0.8.0
|
||||||
description: "Bus de mensajería unificado sobre NATS+JetStream con cifrado E2E por room (megolm/olm reducido): service de membresía/claves, librería cliente y peers demo."
|
description: "Bus de mensajería unificado sobre NATS+JetStream con cifrado E2E por room (megolm/olm reducido): service de membresía/claves, librería cliente y peers demo."
|
||||||
tags: [service, messaging, nats, e2e]
|
tags: [service, messaging, nats, e2e]
|
||||||
uses_functions:
|
uses_functions:
|
||||||
@@ -154,6 +154,30 @@ agent.<nombre>.{in,out} inbox/outbox de agente LLM (agent.scout.in)
|
|||||||
|
|
||||||
## Capability growth log
|
## Capability growth log
|
||||||
|
|
||||||
|
- v0.8.0 (2026-06-07) — completar y endurecer el cluster (issue 0006, fases
|
||||||
|
0006a–0006g) que cierra los bloqueantes de la auditoría dedicada del cluster
|
||||||
|
(report 0008) y cablea el control plane descentralizado que 0003 dejó a medias.
|
||||||
|
(0006a) Se cablea el nonce replicado en el binario: un nodo con `--cluster-name`
|
||||||
|
usa el bucket JetStream KV compartido obligatoriamente (fail-fast si no se crea),
|
||||||
|
cerrando el replay cross-node (N3); el "ciclo bootstrap" se resuelve con una
|
||||||
|
identidad interna efímera que el authenticator reconoce (full perms) y una
|
||||||
|
conexión in-process privilegiada. (0006b) Se cierra la fuga del control plane
|
||||||
|
por `$JS.API.>` (N2): la ACL pasa a un allow-set cerrado por-room (JS API solo de
|
||||||
|
los streams `UNIBUS_<room>` del peer), dejando `KV_UNIBUS_*`/`OBJ_*` fuera del
|
||||||
|
set y, por tanto, denegados. (0006c) Se cablea el store KV descentralizado
|
||||||
|
(`--store kv|sqlite`, default sqlite = baseline idéntico) con un `storeHolder`
|
||||||
|
fail-closed que rompe el ciclo bootstrap del authenticator. (0006d) Posture
|
||||||
|
homogénea: un nodo rechaza unirse al cluster sin `enforce`, y `/healthz` publica
|
||||||
|
la posture (N1). (0006e) Todos los clientes llaman `RefreshSession` tras cambios
|
||||||
|
de membresía (N4), de modo que la ACL es usable bajo enforce sin desactivarla.
|
||||||
|
(0006f) Bajos: secreto de cluster fuera de argv (`--cluster-pass-file`/env +
|
||||||
|
inyección en routes), `migrate-to-kv` rechaza target remoto sin `--ca`, y docs
|
||||||
|
de CA separada para routes + R1 SPOF vs R3 HA. (0006g) Material de deploy del
|
||||||
|
cluster de 3 nodos (magnus+homer+datardos) en `deploy/cluster/` (certs, unit,
|
||||||
|
script de despliegue dry-run, runbook) — sin tocar ningún VPS. Toda la
|
||||||
|
regresión de auditorías previas + los ataques 0008 siguen verdes; govulncheck 0
|
||||||
|
alcanzables. Branch-by-abstraction: con `--store sqlite` el single-node sigue
|
||||||
|
idéntico y desplegable en todo momento.
|
||||||
- v0.7.0 (2026-06-07) — hardening de seguridad 2 (issue 0005, fases 0005a–0005e)
|
- v0.7.0 (2026-06-07) — hardening de seguridad 2 (issue 0005, fases 0005a–0005e)
|
||||||
que cierra los hallazgos nuevos de la re-auditoría red-team (report 0006) y
|
que cierra los hallazgos nuevos de la re-auditoría red-team (report 0006) y
|
||||||
lleva el veredicto de exposición pública a "sí-con-condiciones". (0005a) Bump de
|
lleva el veredicto de exposición pública a "sí-con-condiciones". (0005a) Bump de
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
---
|
---
|
||||||
issue: 0006
|
issue: 0006
|
||||||
title: Completar y endurecer el cluster — wiring del control plane KV + N1-N6 de la auditoría 0008
|
title: Completar y endurecer el cluster — wiring del control plane KV + N1-N6 de la auditoría 0008
|
||||||
status: spec
|
status: done
|
||||||
created: 2026-06-07
|
created: 2026-06-07
|
||||||
|
closed: 2026-06-07
|
||||||
|
closed_by: fases 0006a–0006g (ver report 0009); unibus v0.8.0
|
||||||
domain: security
|
domain: security
|
||||||
scope: unibus (cmd/membershipd, pkg/membership, pkg/embeddednats, pkg/busauth, pkg/client)
|
scope: unibus (cmd/membershipd, pkg/membership, pkg/embeddednats, pkg/busauth, pkg/client)
|
||||||
depends_on: 0003 (completa su wiring), 0005 (hereda el bus single-node ya seguro)
|
depends_on: 0003 (completa su wiring), 0005 (hereda el bus single-node ya seguro)
|
||||||
|
|||||||
Reference in New Issue
Block a user