feat(episode): DEPURA_episodio-9-episodio-94-brasaluzcom-pa_S20260824.R1_XX.non.2.hot_inf.in.ex.es.000.MGQ_J.PDDFK_E.SGLFD
Skill: NONE | Type: troubleshooting
Summary: EPISODIO 9 — EPISODIO 94 — brasaluz.com: 📍 PARA JOHN — R43
This commit is contained in:
parent
822a57aed0
commit
a215a6f1f9
1 changed files with 52 additions and 0 deletions
|
|
@ -0,0 +1,52 @@
|
||||||
|
---
|
||||||
|
episode_id: "c49c0366-fd14-468d-9823-f5f863755510"
|
||||||
|
puente_flat: "DEPURA_episodio-9-episodio-94-brasaluzcom-pa_S20260824.R1_XX.non.2.hot_inf.in.ex.es.000.MGQ_J.PDDFK_E.SGLFD"
|
||||||
|
session_code: "S20260702.MADUREZ_ECOSISTEMA_CONCILIO"
|
||||||
|
acto_dialogico: "informar"
|
||||||
|
actor_flujo: "multi_actor"
|
||||||
|
criticidad_aegis: "low"
|
||||||
|
skill_dominante: "NONE"
|
||||||
|
fase_proyecto: "none"
|
||||||
|
tipo_semantico: "troubleshooting"
|
||||||
|
summary_one_line: "EPISODIO 9 — EPISODIO 94 — brasaluz.com: 📍 PARA JOHN — R43"
|
||||||
|
source_type: "chat_ember"
|
||||||
|
trust_boundary: "internal"
|
||||||
|
created_at: "2026-08-24T16:42:02.494153+00:00"
|
||||||
|
relectura_tagged: false
|
||||||
|
forgejo_commit_sha: "pending"
|
||||||
|
---
|
||||||
|
|
||||||
|
El servidor respondió — reconocimiento §A completo y **preciso** (no adivinado):
|
||||||
|
|
||||||
|
El gate valida en `auth_guard.py:171`: `_hash(passphrase) == EMBER_PASSPHRASE_HASH`, donde `_hash` (línea 139) es **SHA-256 simple** (`hashlib.sha256(...).hexdigest()`, sin salt). La variable vive en `~/ember-mcp-server-v3/.env`.
|
||||||
|
|
||||||
|
—
|
||||||
|
|
||||||
|
**Parte A — HECHO ✅** — Commit `b66bb11` (4 docs, 5.289 líneas) **pusheado a los 3 remotos** (origin + forgejo + sriyantra). BLINDADA-29 cumplida; el trabajo de la sesión está anclado y redundante.
|
||||||
|
|
||||||
|
**Parte B — tu turno de rotar (yo te guío). Empieza por lo más grave:**
|
||||||
|
|
||||||
|
### 🔴 §A — Passphrase del gate MCP (RCE) — la #1
|
||||||
|
Tú ejecutas en el servidor (`ssh cx43`):
|
||||||
|
1. Elige una frase nueva fuerte. Calcula su hash SHA-256:
|
||||||
|
|
||||||
|
2. Ponlo en el `.env` (reemplaza el valor de `EMBER_PASSPHRASE_HASH=`):
|
||||||
|
|
||||||
|
3. Recrear (NO `restart` — es `env_file`):
|
||||||
|
|
||||||
|
4. Verificar: desde Claude Code, `ember_authenticate` con la frase **vieja** debe **fallar**; con la nueva, pasar. **Avísame la frase nueva por canal seguro (no la pegues en el chat).**
|
||||||
|
|
||||||
|
### 🔴 §B — Vaultwarden (vault total) — la #2
|
||||||
|
En la web `vault.brasaluz.com`:
|
||||||
|
1. *Account Settings → Security → Master password* → **cambiar**.
|
||||||
|
2. *Account Settings → Security → Keys* → **Rotate API Key** (nuevo `client_secret`).
|
||||||
|
3. `chmod 600 .mcp.json` en local.
|
||||||
|
|
||||||
|
**Mi parte (la hago cuando me confirmes que rotaste):** quitar la passphrase vieja de `TOOLBOX.md` + actualizarla solo en `memory/reference_ember_auth.md` (local); **scrubear el `BW_CLIENTSECRET` de `docs/AUDIT_SEARCH_TOOLS_SERVIDOR_MEMORIA_S20260408.md`** (el que escapó a git tracked) + recablear los consumidores. Todo eso es mi lado, post-rotación.
|
||||||
|
|
||||||
|
**Para avanzar, elige:**
|
||||||
|
- 🟢 **A (recomendado)** — Rotas §A ahora (tienes el comando exacto arriba); me avisas y sigo con §B y mi parte de scrub/recableado.
|
||||||
|
- 🟡 **B** — Prefieres que primero prepare mi parte reversible (verificar dónde vive hoy la passphrase en TOOLBOX + dejar listo el scrub del doc tracked), y rotas después.
|
||||||
|
- ⚪ **C** — Pausar; la guía queda aquí y en el runbook `S20260623` para retomar.
|
||||||
|
|
||||||
|
---
|
||||||
Loading…
Reference in a new issue