chore(0003): bump unibus to 0.6.0 — decentralization / HA (0003a-0003e)
Cluster NATS routes (auth + mutual TLS), Store/blobstore interfaces with replicated JetStream KV and Object Store backends, idempotent migrate-to-kv with backup, client failover over seed/control-plane lists, replicated nonce store (closes the multi-node replay hole), and the per-subject membership ACL (audit H4 residual). All behind the `decentralized` flag (off); single-node SQLite+disk behavior unchanged. The multi-node deploy (0003f) is the human's; runbook in report 0006.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
name: unibus
|
||||
lang: go
|
||||
domain: infra
|
||||
version: 0.5.0
|
||||
version: 0.6.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."
|
||||
tags: [service, messaging, nats, e2e]
|
||||
uses_functions:
|
||||
@@ -154,6 +154,24 @@ agent.<nombre>.{in,out} inbox/outbox de agente LLM (agent.scout.in)
|
||||
|
||||
## Capability growth log
|
||||
|
||||
- v0.6.0 (2026-06-07) — descentralización / alta disponibilidad (issue 0003,
|
||||
fases 0003a–0003e), report 0006. El servidor NATS embebido gana soporte de
|
||||
cluster con routes autenticadas (secreto de cluster) y TLS mutuo de nodo
|
||||
(`pkg/embeddednats.ClusterConfig` + `busauth.RouteTLSConfig`, reusando la CA
|
||||
del 0001). El control plane (`pkg/membership.Store`) pasa a interfaz por
|
||||
branch-by-abstraction: `sqliteStore` (default) + `jetstreamStore` nuevo sobre
|
||||
JetStream KV replicado (réplicas configurables R1→R3), con `IsAuthorized`
|
||||
fail-closed ante pérdida de quorum. `membershipd migrate-to-kv` mueve el
|
||||
estado SQLite→KV de forma idempotente con backup previo. Los blobs
|
||||
(`pkg/blobstore.Store`, ahora interfaz) ganan un backend NATS Object Store
|
||||
replicado además del disco. El cliente acepta listas de seeds NATS y de
|
||||
control planes con failover/reconnect nativo, el anti-replay pasa a un store
|
||||
de nonces compartido en KV con TTL (cierra el agujero de replay multi-nodo), y
|
||||
se implementa la ACL por subject derivada de pertenencia (audit H4 residual:
|
||||
`busauth.NewNkeyAuthenticatorACL` + `membership.SubjectACLFor` +
|
||||
`client.RefreshSession`). Todo viaja detrás del flag `decentralized` (off):
|
||||
el comportamiento de un solo nodo (SQLite + disco) no cambia y master sigue
|
||||
verde. El despliegue multi-nodo real (0003f) lo ejecuta el humano.
|
||||
- v0.5.0 (2026-06-07) — hardening de seguridad (issue 0004) que cierra los
|
||||
hallazgos de la auditoría red-team (report 0004) y lleva el veredicto de
|
||||
exposición pública de "NO" a "sí-con-condiciones". Anti-DoS pre-auth
|
||||
|
||||
Reference in New Issue
Block a user