feat: version 2.16.0 -- contador de cierre en Contraseñas, cierre por inactividad y ajustes de Equipos
Contraseñas: el cierre automatico ahora es por inactividad (no saca al usuario a medio escribir), token de desbloqueo renovable y contador visible junto al titulo. Equipos: GUID como componente. Sube la version para que el panel de Actualizaciones ofrezca los cambios 2.15.0 -> 2.16.0 (migraciones 025 y 026, instalador del agente y pestaña Compartir). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "project-linkedcorp-backend",
|
||||
"version": "2.15.0",
|
||||
"version": "2.16.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "src/server.js",
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ export const app = express();
|
||||
app.set('trust proxy', 1);
|
||||
|
||||
app.use(helmet({ contentSecurityPolicy: false }));
|
||||
app.use(cors({ origin: env.corsOrigin, credentials: true }));
|
||||
app.use(cors({ origin: env.corsOrigin, credentials: true, exposedHeaders: ['X-Vault-Token'] }));
|
||||
// Ingesta del agente GLPI: ANTES del parser JSON (usa cuerpo crudo, sin CORS: la llama el agente).
|
||||
app.use(inventoryIngestRoutes);
|
||||
app.use(express.json({ limit: '2mb' }));
|
||||
|
||||
@@ -17,5 +17,8 @@ export function requireVaultUnlock(req, res, next) {
|
||||
if (payload.scope !== 'vault' || payload.sub !== req.currentUser.id) {
|
||||
return fail(res, 403, 'Repositorio bloqueado -- ingresa tu PIN');
|
||||
}
|
||||
// Token deslizante: mientras el usuario siga trabajando, cada request valido renueva la vigencia
|
||||
// (el cliente guarda el nuevo). El cierre por inactividad lo decide el frontend (3 min sin actividad).
|
||||
res.set('X-Vault-Token', jwt.sign({ sub: payload.sub, scope: 'vault' }, env.jwtSecret, { expiresIn: '30m' }));
|
||||
next();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user