feat: version 2.7.0 -- menu Contraseñas (repositorio de credenciales privado)

Nuevo modulo backend/src/modules/vault/: contraseña y notas cifradas
en el servidor (AES-256-GCM, mismo mecanismo ya usado para la clave
SMTP). Acceso al menu protegido con un PIN de 4 digitos independiente
del login (token corto propio, header X-Vault-Token, nunca el JWT de
sesion). El PIN no participa del cifrado -- cambiarlo o restablecerlo
por correo nunca afecta las contraseñas ya guardadas. Privado por
usuario, sin excepcion. Cada accion sensible (crear/editar/eliminar/
revelar/desbloquear) queda en audit_log. Compartir con otro usuario
queda para una proxima version.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-10-01 12:12:54 -05:00
parent f607455668
commit 0be0712ff0
20 changed files with 879 additions and 10 deletions
+15
View File
@@ -1,5 +1,20 @@
# Changelog - project.linkedcorp.net
## [2.7.0] - 2026-10-01
### Added
- Nuevo menú "Contraseñas": repositorio personal de credenciales (nombre, enlace, usuario,
contraseña, notas), siempre privado — nadie más lo ve, ni un superadmin.
- Contraseña y notas cifradas en el servidor (AES-256-GCM, mismo mecanismo ya probado que usa la
clave SMTP) — nunca en texto plano en la base de datos.
- El menú pide un PIN de 4 dígitos para entrar, aparte de la clave de acceso normal al sistema
(que no se toca). El PIN es un candado de acceso, no la clave de cifrado. Se puede cambiar
desde el propio menú, o restablecer por correo si se olvida — restablecerlo nunca borra ni
afecta las contraseñas ya guardadas, solo cambia el candado.
- Generador de contraseñas al crear una entrada nueva.
- Queda registrado en el log de auditoría cada vez que se crea, edita, elimina o **revela** una
contraseña guardada, y cada desbloqueo del candado.
- Compartir una entrada con otro usuario queda para una próxima versión.
## [2.6.1] - 2026-09-30
### Fixed
- **Bug real en el botón "Actualizar" (auto-actualización)**: el paso final reiniciaba backend y