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

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
webui
brobert 3 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_ENABLED=true
# METRICS_FORMAT=prom # prom|json # 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) # Control de acceso por grupos (multicomunidad)
# Modo: off|discover|enforce (por defecto off) # Modo: off|discover|enforce (por defecto off)
# GROUP_GATING_MODE=discover # 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. - 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. - Sincronización de grupos y miembros con cachés y schedulers configurables.
- Alias de identidad con normalización de IDs. - 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. - Métricas listas para Prometheus en el endpoint /metrics.
- Rate limiting por usuario para evitar abuso. - Rate limiting por usuario para evitar abuso.
- Persistencia simple con SQLite, migraciones automáticas y PRAGMAs seguros (WAL, FK, etc.). - 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 es un framework general de bots ni un CRM.
- No conecta directamente con WhatsApp: requiere Evolution API. - No conecta directamente con WhatsApp: requiere Evolution API.
- No gestiona flujos conversacionales complejos ni multimedia avanzada. - 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). - Está optimizado para un despliegue por comunidad/instancia (no multi-tenant masivo).
## Cómo funciona (alto nivel) ## 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). - 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. - 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. - 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). - DATA_DIR: directorio raíz para la base de datos SQLite compartida (por defecto ./data).
Consulta: Consulta:
@ -91,6 +93,7 @@ Consulta:
- Nombre provisional: “Taskbot”. - Nombre provisional: “Taskbot”.
- Licencia por definir (software libre; se evaluará GPLv3/AGPL/MIT/Apache-2.0). - 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. - Roadmap y contribuciones: pendientes de publicación.
## Enlaces ## 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' - 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). - 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' - 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' - 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 Endpoints operativos
@ -34,6 +35,7 @@ Arranque y servicios
- Valida entorno (logs de variables presentes/faltantes). - Valida entorno (logs de variables presentes/faltantes).
- Aplica migraciones up-only. - Aplica migraciones up-only.
- Inicia HTTP y (según entorno) schedulers. - Inicia HTTP y (según entorno) schedulers.
- En tests, el migrador silencia logs; puede forzarse en cualquier entorno con MIGRATIONS_LOG_LEVEL='silent'.
Schedulers Schedulers
- GroupSyncService.startGroupsScheduler() y .startMembersScheduler() - GroupSyncService.startGroupsScheduler() y .startMembersScheduler()

@ -176,9 +176,9 @@ Etapa 0 — Preparación
- Asegurar que la web abre la misma DB (PRAGMAs coherentes). - Asegurar que la web abre la misma DB (PRAGMAs coherentes).
Etapa 1 — Autenticación Etapa 1 — Autenticación
- Migraciones: web_tokens, web_sessions. - Migraciones: web_tokens, web_sessions. — HECHO
- Bot: emisión de token de 10 min (hash, rate limit) en /t web. - 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. - Web: endpoint /login, cookie de sesión, redirect limpio; hooks de sesión con idle timeout 2h. — SIGUIENTE
- Páginas de error/expiración. - Páginas de error/expiración.
Etapa 2 — Lectura de datos (MVP) Etapa 2 — Lectura de datos (MVP)

Loading…
Cancel
Save