From ae35ae2db3d762bbade1b8883a207c0330ea162c Mon Sep 17 00:00:00 2001 From: brobert Date: Sun, 12 Oct 2025 21:56:14 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20actualizar=20documentaci=C3=B3n=20con?= =?UTF-8?q?=20migraciones,=20DB=5FPATH=20y=20login=20web?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: aider (openrouter/openai/gpt-5) --- .env.example | 3 +++ README.md | 5 ++++- docs/operations.md | 2 ++ docs/plan-interfaz-web.md | 6 +++--- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.env.example b/.env.example index b9f62fc..8809474 100644 --- a/.env.example +++ b/.env.example @@ -71,6 +71,9 @@ WEB_BASE_URL="https://taskbot.server.brobert.net" # Host público de la web (p. # METRICS_ENABLED=true # METRICS_FORMAT=prom # prom|json +# Migrador (opcional) +# MIGRATIONS_LOG_LEVEL="silent" # Silencia logs del migrador (en test ya se silencian automáticamente) + # Control de acceso por grupos (multicomunidad) # Modo: off|discover|enforce (por defecto off) # GROUP_GATING_MODE=discover diff --git a/README.md b/README.md index 1e2e05b..ce9aef9 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ Taskbot ayuda a coordinar grupos en WhatsApp: crea y asigna tareas, recuerda pen - Control de acceso por grupos: modos off, discover y enforce; aprobación y bloqueo por admins. - Sincronización de grupos y miembros con cachés y schedulers configurables. - Alias de identidad con normalización de IDs. +- Acceso web por token mágico (/t web), tokens de 10 min de un solo uso (migración y emisión implementadas). - Métricas listas para Prometheus en el endpoint /metrics. - Rate limiting por usuario para evitar abuso. - Persistencia simple con SQLite, migraciones automáticas y PRAGMAs seguros (WAL, FK, etc.). @@ -26,7 +27,7 @@ Taskbot ayuda a coordinar grupos en WhatsApp: crea y asigna tareas, recuerda pen - No es un framework general de bots ni un CRM. - No conecta directamente con WhatsApp: requiere Evolution API. - No gestiona flujos conversacionales complejos ni multimedia avanzada. -- No incluye panel web; la interacción es vía WhatsApp. +- Panel web en desarrollo (MVP de login en marcha); hoy la interacción principal es vía WhatsApp. - Está optimizado para un despliegue por comunidad/instancia (no multi-tenant masivo). ## Cómo funciona (alto nivel) @@ -74,6 +75,7 @@ Variables clave: - WEB_BASE_URL (host público de la web para generar enlaces absolutos; usado por /t web). - Rate limit: RATE_LIMIT_PER_MIN, RATE_LIMIT_BURST. - Intervalos y retención: GROUP_SYNC_INTERVAL_MS, GROUP_MEMBERS_SYNC_INTERVAL_MS, GROUP_MEMBERS_INACTIVE_RETENTION_DAYS. +- DB_PATH: ruta al archivo SQLite. Tiene prioridad sobre DATA_DIR y permite aislar BD por rama/entorno. Ej.: DB_PATH='./data/tasks.db' - DATA_DIR: directorio raíz para la base de datos SQLite compartida (por defecto ./data). Consulta: @@ -91,6 +93,7 @@ Consulta: - Nombre provisional: “Taskbot”. - Licencia por definir (software libre; se evaluará GPLv3/AGPL/MIT/Apache-2.0). +- Progreso Etapa 1 (autenticación web): migración v10 (web_tokens/web_sessions) y comando /t web implementados; pendiente /login en la web y gestión de sesión (idle 2h). - Roadmap y contribuciones: pendientes de publicación. ## Enlaces diff --git a/docs/operations.md b/docs/operations.md index 3b1960b..ac48605 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -22,6 +22,7 @@ Variables de entorno (principales) - NOTIFY_ADMINS_ON_DISCOVERY: 'true'/'false' para avisar por DM a ADMIN_USERS al descubrir un grupo (modo 'discover'). Ej.: NOTIFY_ADMINS_ON_DISCOVERY='true' - DATA_DIR: directorio base para la base de datos SQLite (por defecto ./data). - DB_PATH: ruta absoluta o relativa al archivo SQLite; si se define, tiene prioridad sobre DATA_DIR. Ej.: DB_PATH='./data/tasks.db' +- MIGRATIONS_LOG_LEVEL: 'silent' para silenciar logs del migrador (en test se silencian automáticamente). - WEB_BASE_URL: base pública de la interfaz web para construir enlaces absolutos (p. ej., /login?token=...). Obligatoria para /t web. Ej.: WEB_BASE_URL='https://wtask.org' Endpoints operativos @@ -34,6 +35,7 @@ Arranque y servicios - Valida entorno (logs de variables presentes/faltantes). - Aplica migraciones up-only. - Inicia HTTP y (según entorno) schedulers. + - En tests, el migrador silencia logs; puede forzarse en cualquier entorno con MIGRATIONS_LOG_LEVEL='silent'. Schedulers - GroupSyncService.startGroupsScheduler() y .startMembersScheduler() diff --git a/docs/plan-interfaz-web.md b/docs/plan-interfaz-web.md index 9570fd6..fee7b98 100644 --- a/docs/plan-interfaz-web.md +++ b/docs/plan-interfaz-web.md @@ -176,9 +176,9 @@ Etapa 0 — Preparación - Asegurar que la web abre la misma DB (PRAGMAs coherentes). Etapa 1 — Autenticación -- Migraciones: web_tokens, web_sessions. -- Bot: emisión de token de 10 min (hash, rate limit) en /t web. -- Web: endpoint /login, cookie de sesión, redirect limpio; hooks de sesión con idle timeout 2h. +- Migraciones: web_tokens, web_sessions. — HECHO +- Bot: emisión de token de 10 min (hash, rate limit) en /t web. — HECHO +- Web: endpoint /login, cookie de sesión, redirect limpio; hooks de sesión con idle timeout 2h. — SIGUIENTE - Páginas de error/expiración. Etapa 2 — Lectura de datos (MVP)