Notas de versión — 19 de marzo de 2026
Esta versión añade una página de contacto en tres idiomas, completa la infraestructura de agregación centralizada de registros con Grafana Cloud Loki, introduce la monitorización de copias de seguridad de MongoDB, limitación de velocidad de Ingress, registro JSON estructurado y un transporte de registro de auditoría RGPD.
Página de contacto
Página de contacto — EN / HU / DE
CADENSA ahora tiene una página de contacto dedicada disponible en cadensa.io/contact en los tres idiomas admitidos (inglés, húngaro, alemán).
Qué incluye la página:
| Canal | Propósito | Tiempo de respuesta |
|---|---|---|
| 💬 Soporte | Problemas técnicos, preguntas de uso | 24h |
| Facturación | Suscripciones, facturas, pagos | 48h |
| 🔒 Privacidad | RGPD, solicitudes de datos (Art. 15–22) | 72h |
| ⚖️ Legal | Consultas legales, firma de DPA | 5 días hábiles |
Información de la empresa:
- Axeri Labs Bt. — 2120 Dunakeszi, Brassói utca 7.
- Registro: 13-06-060656 · Impuesto: 22531300-2-13 · NIF UE: HU22531300
Detalles técnicos:
- Las direcciones de correo se renderizan con JavaScript y se ofuscan con Unicode — no están presentes en HTML plano ni en JSON de i18n (protección anti-spam)
- El enlace
Contactodel pie de página se ha actualizado de Próximamente a la página activa
Backend: Transporte de registro de auditoría RGPD
Registro de auditoría RGPD — Retención de 365 días (Art. 5(2))
Todos los eventos relevantes para el RGPD ahora se persisten en una base de datos de registro de auditoría dedicada con una política de retención de 365 días.
Eventos registrados:
- Registro de usuario, inicio de sesión, cambios de contraseña
- Acceso y exportaciones de datos personales (Art. 15)
- Solicitudes de eliminación y cancelación de datos (Art. 17)
- Actualizaciones de consentimiento
- Acciones de administrador en cuentas de usuario
Base de cumplimiento: RGPD Art. 5(2) — obligación de responsabilidad proactiva.
Nivel: Todos los planes (automático, sin acción del usuario requerida)
Backend: Registro JSON estructurado
Formato de registro JSON + Middleware RequestLogger
Toda la salida de registros del backend ahora está en JSON estructurado (modo producción), permitiendo consultas de texto completo y estructuradas en Grafana Loki.
Campos de registro en cada solicitud:
{
"timestamp": "2026-03-19T10:00:00.000Z",
"level": "info",
"method": "POST",
"path": "/api/time-entries",
"statusCode": 201,
"durationMs": 34,
"userId": "...",
"workspaceId": "...",
"ip": "x.x.x.x"
}
Cambios adicionales:
- Todas las llamadas
console.*reemplazadas porlogger.*en controladores, servicios, modelos y configuración - Las solicitudes de sonda de actividad
/healthde Kubernetes se filtran silenciosamente — no se registran (reduce el ruido)
Infraestructura: Limitación de velocidad de Ingress
Limitación de velocidad a nivel de IP en todos los endpoints de API
El controlador de Nginx Ingress ahora aplica limitaciones de velocidad a nivel de IP en todas las rutas /api/*.
Límites:
| Configuración | Valor |
|---|---|
| Tasa de solicitudes | 50 req/s por IP |
| Conexiones simultáneas | 30 por IP |
| Burst | ×5 (burst de 250 req / burst de 150 conn) |
Comportamiento:
- Las solicitudes que superan el límite reciben
429 Too Many Requests - La ventana de burst permite picos de tráfico cortos sin rechazo inmediato
- Todas las respuestas 429 son visibles en Grafana (alerta Rate Limit Spike)
Infraestructura: Agregación centralizada de registros
Promtail → Grafana Cloud Loki (Fases 3 + 5)
Todos los registros de los pods de Kubernetes ahora se agregan a Grafana Cloud Loki mediante un DaemonSet de Promtail.
Descripción general del pipeline:
- Trabajo cadensa-pods: lee registros JSON → analiza
level,message,path,method,statusCode,durationMs,userId,workspaceIdcomo etiquetas - Trabajo cadensa-backup: lee registros de copia de seguridad en texto plano (sin eliminación de marca de tiempo CRI — se usa la hora de ingesta de Loki)
- Trabajo monitoring-pods: registros propios de Promtail + Grafana Agent
5 reglas de alerta de Grafana desplegadas:
| Alerta | Condición | Gravedad |
|---|---|---|
| Alta tasa de errores | >10 errores/5min | crítica |
| Fuerza bruta detectada | >20 inicios de sesión fallidos/5min | crítica |
| Rate Limit Spike | >50 respuestas 429/5min | advertencia |
| MongoDB inaccesible | sin latido 5min | crítica |
| Copia de seguridad ausente | sin registro de copia de seguridad en 25h | advertencia |
Infraestructura: Monitorización de copias de seguridad de MongoDB
Alerta de Copia de seguridad ausente + IU de copia de seguridad del administrador
Alerta de Grafana:
Copia de seguridad ausentese activa cuando no aparece ningún registro de éxito de copia de seguridad en 25 horas- La consulta de alerta apunta directamente a los registros de copia de seguridad en texto plano (sin análisis JSON)
- Se resuelve automáticamente cuando se ejecuta la siguiente copia de seguridad
Panel del administrador (/admin/backup):
- Navegador de vista de árbol: tipo → fecha de instantánea → archivos individuales
- Indicador
isStale— advertencia visual si la última instantánea tiene más de 25h de antigüedad - Widget de monitorización en el panel del administrador que muestra el estado de la copia de seguridad de un vistazo
- Fuente de copia de seguridad: Wasabi S3 (eu-central-2) — avisos legales actualizados
Correcciones de errores
- Retransmisión SMTP: Dirección de retransmisión interna corregida a
smtp-relay.cadensa.svc.cluster.local:25(sin autenticación, sin TLS) - Ingesta del registro de copia de seguridad: Eliminada la etapa de análisis de marca de tiempo CRI para los registros de copia de seguridad — se usa la hora de ingesta en su lugar, resolviendo los errores de rechazo de Loki
- Lista de usuarios del administrador: Corregido
403 Forbiddenen/reports/invoices - Archivado de espacio de trabajo: Aviso RGPD añadido al diálogo ArchiveWorkspaceDialog
Resumen
| Área | Cambio |
|---|---|
| 🌐 Landing | Página de contacto EN/HU/DE, enlace de pie de página, correos con protección anti-spam |
| 🔒 Backend | Transporte de registro de auditoría RGPD (365d, Art. 5(2)) |
| 🪵 Backend | Registro JSON estructurado, RequestLogger, filtro de /health |
| 🛡️ Infra | Limitación de velocidad de Ingress: 50 rps / 30 conn / burst ×5 |
| 📡 Infra | DaemonSet de Promtail → Grafana Cloud Loki (3 trabajos) |
| Infra | 5 reglas de alerta de Grafana (tasa de errores, fuerza bruta, rate-limit, MongoDB, copia de seguridad) |
| 🗄️ Infra | Monitorización de copias de seguridad de MongoDB + IU de copia de seguridad del administrador (vista de árbol, isStale) |
| 🐛 Corrección | Retransmisión SMTP, ingesta del registro de copia de seguridad, 403 del administrador, archivado de espacio de trabajo RGPD |