Rotar el BIB_MCP_TOKEN en todos los entornos
When to use
- Sospecha de compromise de un token (filtrado en logs, commit accidental).
- Un miembro del equipo abandona el proyecto (Edu, Dani, Txell).
- Rotación planificada periódica (recomendado cada 90 días).
- Tras incidente de seguridad en cualquier entorno.
Prerequisites
- Acceso a Cloudflare Pages dashboard (cuenta org).
- Acceso RDP o físico al PC de los 3 miembros del staff (Edu, Dani, Txell — Regla 24 igualdad de accesos).
- SSH a Staging (
/opt/bib-reindex/). - Permisos Admin en GitHub repo
CreaRack-Pro. - PowerShell 7+ en máquina local (Windows).
Steps
1. Generar los nuevos tokens
En PC local (Edu o Dani):
cd C:\dev\CreaRackSL-workspace
.\scripts\generate-mcp-tokens.ps1
Script genera token aleatorio de 32 chars lowercase por miembro (Edu, Dani, Txell) y muestra valor concatenado: Edu:token1,Dani:token2,Txell:token3. Guardar en gestor de contraseñas antes de continuar.
2. Actualizar Cloudflare Pages (MCP_TOKENS)
- Cloudflare Pages > proyecto > Settings > Environment Variables.
- Localizar variable secreta
MCP_TOKENS. - Reemplazar valor con cadena generada.
- Guardar y hacer redeploy del proyecto (sin esto el cambio no surte efecto, ver
incident--20260315--cf-env-vars-next-deploy).
3. Actualizar env vars User en PC Edu, Dani y Txell
Opcion A · Manual (si solo hay que rotar el token, sin re-configurar nada más):
En cada PC, PowerShell admin:
[System.Environment]::SetEnvironmentVariable("BIB_MCP_TOKEN", "<token_personal>", "User")
Usar token individual (no el valor completo de MCP_TOKENS). Cerrar y reabrir terminales para que el cambio sea efectivo. Verificar: $env:BIB_MCP_TOKEN.
Opcion B · Via setup-claude-code.ps1 (si además queremos re-validar el resto del perfil Claude):
& C:\dev\claude-method\onboarding\setup-claude-code.ps1 `
-DevName "Dani" -DevRole "Dev" `
-ProjectDir "C:\dev\CreaRack-Pro" `
-WorkspaceDir "C:\dev\CreaRackSL-workspace" `
-BibToken "<nuevo_token_personal>"
El script guarda el token en env User, hace backup del settings.json anterior, y re-valida el resto de la configuración (hooks, memorias, MCP OAuth). Más robusto si hay dudas sobre otros aspectos del perfil.
4. Actualizar el token en Staging
SSH a Staging:
echo -n "<nuevo_token_staging>" | sudo tee /opt/bib-reindex/.token
sudo chmod 600 /opt/bib-reindex/.token
Reiniciar servicio si aplica:
sudo systemctl restart bib-reindex
5. Actualizar GitHub Secret en CreaRack-Pro
- GitHub > CreaRack-Pro > Settings > Secrets and variables > Actions.
- Localizar secret
MCP_TOKEN. - Update con el nuevo valor.
- Workflows que lo usen lo leerán automáticamente en la próxima ejecución; sin redeploy manual.
Verification
- Llamar endpoint MCP autenticado con nuevo token → HTTP 200.
- En Staging:
sudo journalctl -u bib-reindex -n 50, confirmar sin errores auth. - Ejecutar workflow GitHub Actions que use
MCP_TOKEN→ sin errores de autorización.
Rollback
Si algo falla:
- Recuperar tokens anteriores del gestor de contraseñas.
- Revertir las 5 ubicaciones en orden inverso: GitHub → Staging → PC Dani → PC Edu → Cloudflare.
- En Cloudflare, redeploy inmediato tras restaurar valor.
No existe rollback automático; operación manual y completa.
Known issues
- Cloudflare redeploy requerido: cambio en
MCP_TOKENSno surte efecto hasta redeploy. Workers en ejecución siguen usando token anterior. - Env vars Windows: variable
BIB_MCP_TOKENUser no se propaga a procesos ya abiertos. Imprescindible reabrir terminales y apps. - Staging single-file token:
/opt/bib-reindex/.tokenno admite múltiples tokens; en Staging se usa un único token compartido, no formatoNombre:token.
Véase también
- [[concept—biblioteca—supercontexto]]
Referenciado desde
- ADR: Migración a CF Access Service Tokens para endpoints internos del Workspace
- Backup & Restore - CreaRack Pro
- Biblioteca — Grafo + Archivo Maestro + Wiki Supercontexto
- Biblioteca: Reindexación de extras — scripts bib_openapi + bib_docs y modo --extras-only en cron (s50)
- CF Access Service Token headers en workflows CI y scripts del Workspace
- D19: CF Access Service Token en workflows y scripts de ingest de Biblioteca
- Disaster Recovery — CreaRackSL Workspace
- Footgun Dokploy: env vars en UI que no llegan al container
- Footguns CF Workers + D1: límites de subrequests y bind params
- Hetzner OPS (crearack-ops) — runners CI + crons del ecosistema
- Inventario de Secretos — mapa técnico SIN valores (para Bitwarden + DR)
- Manual de Seguridad y Backups — Esferic Labs / CreaRack (fuente única)
- Secret Rotation Playbook — CreaRack Pro
- security-audit-11-04-2026