feat: panel de Actualizaciones en Configuracion (solo informativo)

Compara la version instalada contra el CHANGELOG.md de main en Gitea (lectura anonima por HTTPS,
sin token) y muestra cada version pendiente con su criticidad -- derivada del digito que cambio
(1ro=Alta, 2do=Media, 3ro=Baja, sin etiquetar nada a mano, regla ya documentada en
VERSIONADO.md), una descripcion breve, y si trae migraciones de base de datos nuevas. Banner en
rojo avisando que la actualizacion requiere reiniciar el sistema.

No instala nada automaticamente -- solo informa. Aplicar la actualizacion (git pull, build,
migrar, reiniciar servicios) sigue siendo manual, a criterio del administrador de cada
instalacion, tal cual DEPLOY_WEB.md ya documenta.

Nuevo GET /api/updater/status (solo superadmin). Requiere que el repo en Gitea sea publico con
vista anonima habilitada -- documentado en DEPLOY_WEB.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-09-16 17:11:58 -05:00
parent 95e3a0199d
commit 59aadc6a35
15 changed files with 273 additions and 4 deletions
+10
View File
@@ -119,6 +119,16 @@
- `GET /api/search?q=texto&projectId=1` — acotado a un proyecto: solo `{ activities, tasks }` de
ESE proyecto (sin el dato del proyecto, ya es el contexto).
### Actualizaciones (`/api/updater`) — solo Superadministrador
- `GET /api/updater/status` — compara la `VERSION` local contra `CHANGELOG.md` de `main` en
Gitea (leído de forma anónima por HTTPS, sin token — requiere repo público y vista anónima
habilitada en el servidor de Gitea). `{ currentVersion, upToDate, latestVersion,
overallCriticality?, hasMigrations, pending: [{ version, date, criticality, summary }] }`.
`criticality` se deriva del dígito de versión que cambió (X.Y.Z: 1ro=alta, 2do=media,
3ro=baja), nunca se etiqueta a mano. `hasMigrations` compara los archivos de
`backend/database/migrations/` locales contra los de `main`. Es solo informativo — no aplica
ningún cambio, la actualización real sigue siendo manual.
### Dashboard (`/api/dashboard`)
- `GET /api/dashboard/summary` — KPIs (activos, atrasados, pendientes/vencidas/hoy, avance promedio)
- `GET /api/dashboard/calendar?month=2026-09` — actividades por fecha límite