feat: version 4.3.0 -- Sesiones activas y pagina Mi cuenta
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+9
-3
@@ -73,8 +73,12 @@
|
||||
editables directo por el cliente: actividad con tareas = % de tareas hechas; actividad sin
|
||||
tareas = manual (0-100); proyecto = promedio del avance de sus actividades.
|
||||
- `users.password_hash` con bcrypt, nunca texto plano ni reversible.
|
||||
- `users.session_version` (migración `028`) comienza en 1 y aumenta al cambiar/restablecer clave;
|
||||
cada JWT de sesión debe tener la misma versión. Aplicar la migración antes de iniciar el backend nuevo.
|
||||
- `users.session_version` (migración `028`) comienza en 1 y aumenta al restablecer clave;
|
||||
cada JWT de sesión debe tener la misma versión. Cambiar clave desde la aplicación conserva la sesión actual y revoca las demás.
|
||||
- `user_sessions` (migración `033`) guarda cada sesión por `public_id` (el `sid` del JWT), usuario,
|
||||
IP, agente, inicio, última actividad, vencimiento y revocación. Su FK a `users` usa `ON DELETE CASCADE`.
|
||||
El backend limpia al iniciar sesión las filas vencidas o revocadas hace más de 30 días.
|
||||
Aplicar `033_user_sessions.sql` antes de iniciar el backend nuevo: los JWT anteriores, sin `sid`, exigirán un nuevo inicio de sesión.
|
||||
- Migración `029`: `edit_version` comienza en 1 en proyectos, comentarios, actividades, tareas,
|
||||
departamentos, usuarios, catálogos, notas, tareas recurrentes y equipos. El `UPDATE` de edición
|
||||
verifica la versión y la incrementa atómicamente; sin coincidencia responde 409. En
|
||||
@@ -216,7 +220,9 @@ node src/scripts/create-admin.js "Nombre" correo@dominio # solo la primera vez
|
||||
|
||||
Método: archivos SQL idempotentes en `backend/database/migrations/00X-nombre.sql`
|
||||
(`CREATE TABLE IF NOT EXISTS` / `information_schema` guards), aplicados con
|
||||
`node src/scripts/migrate-db.js`. Siempre backup (`mysqldump --single-transaction`) antes de migrar
|
||||
`node src/scripts/migrate-db.js`. El runner lee todos los `.sql`, los ordena por nombre y los
|
||||
ejecuta **todos en cada corrida**; no lleva tabla de historial. Por eso `033_user_sessions.sql`
|
||||
usa `CREATE TABLE IF NOT EXISTS`. Siempre backup (`mysqldump --single-transaction`) antes de migrar
|
||||
en producción.
|
||||
|
||||
- Equipos (desde v2.15.0, migración `023_devices.sql`): `devices.deviceid` UNIQUE; `assigned_user_id`
|
||||
|
||||
Reference in New Issue
Block a user