docs: actualizar documentación con migraciones, DB_PATH y login web

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
webui
brobert 2 weeks ago
parent 90771eb34a
commit ae35ae2db3

@ -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

@ -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

@ -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()

@ -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)

Loading…
Cancel
Save