chore(0004): close issue, bump unibus to 0.5.0, record dataplane-acl decision
Issue 0004 (security hardening) done across 0004a-0004f. app.md version 0.5.0 with the capability growth log entry; dev/0004d-dataplane-acl.md documents the chosen minimum-defense strategy for the NATS data plane and its residual limit (per-subject ACL deferred to 0003). Full work report in projects/message_bus/reports/0005-2026-06-07-unibus-security-hardening.md. 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.4.0
|
version: 0.5.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,19 @@ agent.<nombre>.{in,out} inbox/outbox de agente LLM (agent.scout.in)
|
|||||||
|
|
||||||
## Capability growth log
|
## Capability growth log
|
||||||
|
|
||||||
|
- 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
|
||||||
|
(`http.MaxBytesReader` por ruta + rechazo por `Content-Length` + rate-limit
|
||||||
|
por IP + `MaxHeaderBytes`); guard de fail-open que prohíbe arrancar con bind
|
||||||
|
público o TLS sin `--bus-auth enforce`; autorización por pertenencia en los GET
|
||||||
|
de room (metadata y clave sellada solo para miembros / el propio endpoint);
|
||||||
|
rooms cleartext deshabilitadas en bind público (contenido siempre E2E, mínimo
|
||||||
|
defensivo del data plane mientras la ACL por subject llega con 0003); TLS en el
|
||||||
|
control plane HTTP con la CA propia y cliente que exige `https` cuando hay CA;
|
||||||
|
y los medios H6/H7/H12 (owner ligado al firmante, `IsAuthorized` antes del
|
||||||
|
nonce-cache con poda O(expired) + cap, errores genéricos al cliente). Cada
|
||||||
|
hallazgo lleva su test adversarial `TestAudit_*` portado como regresión.
|
||||||
- v0.4.0 (2026-06-07) — descubrimiento de rooms: `GET /members/{endpoint}/rooms`
|
- v0.4.0 (2026-06-07) — descubrimiento de rooms: `GET /members/{endpoint}/rooms`
|
||||||
lista las rooms de un endpoint con su metadata y rol, y `client.ListMyRooms()`
|
lista las rooms de un endpoint con su metadata y rol, y `client.ListMyRooms()`
|
||||||
lo consume. El control plane es pull (no hay push de invitaciones), así que un
|
lo consume. El control plane es pull (no hay push de invitaciones), así que un
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
---
|
---
|
||||||
issue: 0004
|
issue: 0004
|
||||||
title: Hardening de seguridad — autorización, anti-DoS y confidencialidad antes de exponer público
|
title: Hardening de seguridad — autorización, anti-DoS y confidencialidad antes de exponer público
|
||||||
status: spec
|
status: done
|
||||||
created: 2026-06-07
|
created: 2026-06-07
|
||||||
|
completed: 2026-06-07
|
||||||
|
report: projects/message_bus/reports/0005-2026-06-07-unibus-security-hardening.md
|
||||||
domain: security
|
domain: security
|
||||||
scope: unibus (pkg/membership/server.go, auth.go, pkg/embeddednats, pkg/client, cmd/membershipd, deploy/tls)
|
scope: unibus (pkg/membership/server.go, auth.go, pkg/embeddednats, pkg/client, cmd/membershipd, deploy/tls)
|
||||||
depends_on: 0001 (cierra los gaps que la auditoría 0004 encontró sobre lo entregado en 0001)
|
depends_on: 0001 (cierra los gaps que la auditoría 0004 encontró sobre lo entregado en 0001)
|
||||||
|
|||||||
Reference in New Issue
Block a user