Milton Gonzalez da4d83e7cc fix: version 2.10.1 -- "Probar correo" tiraba Error interno si la clave SMTP no descifraba
El decrypt() de la clave SMTP guardada estaba fuera del try/catch tanto en testSmtpConfig
(el boton "Probar") como en getSmtpConfigInternal (usado por el mailer real para forgot-
password, registro, invitaciones). Si ENCRYPTION_KEY no coincide con la que se uso para
guardar -- el caso documentado de exilaser, que recibio un dump de LinkedCorp con su propia
clave -- el fallo de decrypt() se propagaba sin control: "Error interno" generico en el boton
de prueba, y un crash silencioso en el envio real en vez de la degradacion a modo dev que el
propio comentario del codigo promete. Ambos casos ahora devuelven un mensaje claro / degradan
correctamente.

De paso se agrega `app.set('trust proxy', 1)`: la app corre detras de Nginx Proxy Manager pero
Express no lo sabia, asi que express-rate-limit usaba la IP del proxy para todos los clientes
(un cupo compartido en vez de uno por usuario) y tiraba un aviso de validacion en cada request.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-12 12:26:00 -05:00
2026-09-03 08:37:58 -05:00

project.linkedcorp.net

En producción: https://project.linkedcorp.net

Gestión y seguimiento de proyectos y actividades de TI para una empresa de tamaño medio. MVP simple por diseño (menos campos, menos módulos separados) con el modelo de datos preparado para crecer hacia el resto del alcance funcional (riesgos, incidencias, recursos, proveedores, presupuesto, reportes exportables, etc.) sin romper lo construido.

Stack

  • Frontend: React + Vite
  • Backend: Node.js + Express
  • Base de datos: MariaDB
  • Deploy: Debian 12 (dos servicios separados — arquetipo B del grupo)

Estructura

project.linkedcorp.net/
├── README.md
├── AGENTS.md
├── SPEC.md
├── API.md
├── BASE_DE_DATOS.md
├── CONFIGURACION.md
├── VERSIONADO.md
├── ESTADO.md
├── frontend/
├── backend/
├── docs/
└── scripts/

Modulos principales (MVP)

  • Seguridad (usuarios, roles, auditoría)
  • Organización (departamentos, usuarios)
  • Proyectos, Actividades y Tareas
  • Dashboard, Calendario, Gantt (solo lectura)
  • Comentarios, adjuntos, notificaciones in-app
  • Configuración (catálogos)

Arranque rapido

Backend

cd backend
npm install
cp .env.example .env   # completar con las credenciales reales
npm run dev

Frontend

cd frontend
npm install
npm run dev

Puertos de este proyecto (registrados en PORTS_INVENTORY.md del grupo): frontend 5196, backend 4019. El frontend escucha en 0.0.0.0 para poder probarlo desde otro equipo/celular en la misma red.

Variables y configuracion

  • Revisar backend/.env.example y CONFIGURACION.md.
  • Base de datos dev: project_linkedcorp en 192.168.222.20 (ya creada).

Documentacion relacionada

  • AGENTS.md — contexto del proyecto para el asistente de IA (leer primero el orquestador del grupo).
  • SPEC.md — alcance funcional.
  • API.md — contrato de la API.
  • BASE_DE_DATOS.md — modelo de datos.
  • CONFIGURACION.md — variables de entorno y setup local.
  • docs/UI-UX-WINDOWS.md — identidad visual del proyecto (Fluent/Windows 11).
  • ESTADO.md — punto de retoma del proyecto (handoff).
S
Description
Gestion y seguimiento de proyectos/actividades TI
Readme 10 MiB
Languages
JavaScript 94.6%
CSS 3.7%
Shell 1.4%
PowerShell 0.2%