Buscar en la documentación

Mejoras aplicadas

Lo que se construyó por encima de lo solicitado en la prueba y por qué.

4 min de lecturaVer en GitHub

Este anexo reúne lo que Trazo incorpora más allá de lo solicitado. Ninguna de estas mejoras altera los requisitos obligatorios: los complementan. Cada una enlaza a la decisión que la justifica.

Seguridad

MejoraPor quéDecisión
MFA con aplicación de autenticación, política por rol y periodo de graciaProtege las cuentas aunque una contraseña se filtreADR-0017
Recuperación de contraseña por correo + código del autenticadorRecuperación autónoma sin abrir la puerta a la toma de cuentasADR-0018
Argon2id, contraseñas de 12+ caracteres y bloqueo progresivoEstándar actual frente a fuerza bruta y contraseñas débilesADR-0016
Cifrado en reposo y secretos fuera del códigoProtección ante robo de disco o respaldosADR-0019
Permisos granulares y cobertura del OWASP Top 10Control de acceso fino y verificableADR-0021
Identificadores públicos ULIDEvita que se adivinen o enumeren registrosADR-0010
Correos cifrados en la colaNi el código de recuperación ni los datos de las personas quedan legibles en Redis o en los trabajos fallidosADR-0062

Datos y rendimiento

MejoraPor quéDecisión
Catálogos y flujo de estados como datosCambiar estados o transiciones sin migracionesADR-0008
Borrado lógico y auditoría inmutableNunca se pierde la trazabilidadADR-0011
Bloqueo optimistaNingún cambio se pisa sin avisoADR-0012
Código legible por año (TZ-26-0142) y fecha de resoluciónMás claro para las personas, dice de qué año es y sigue corto; habilita métricas de tiempoADR-0010 y ADR-0074
Seeder con volumen configurable e índices validados sobre 100.000+ registrosDemuestra el rendimiento con datos realesADR-0014
Idempotency-Key al crearSin duplicados por doble clic o reintentosADR-0037
Carga diferida estricta fuera de producciónUn N+1 nuevo falla en la suite, no en manos del usuarioADR-0061

Producto y experiencia

MejoraPor quéDecisión
Dashboard personalizableCada usuario organiza lo que necesita ver, también con tecladoADR-0030, ADR-0050
Vista previa lateral en monitorRevisar muchos incidentes sin salir del listado—
Logs del sistema sin ruido y acciones de sistema segurasOperación diaria sin acceso al servidorADR-0022, ADR-0023
Identidad visual propia y accesibilidad WCAG 2.2 AAProducto profesional y usable por cualquier personaADR-0028
Aviso con “Recargar” cuando una pantalla no se descargaTras publicar una versión nueva, nadie queda con un menú que no respondeADR-0063

Operación y calidad

MejoraPor quéDecisión
CI/CD con promoción de la misma imagenProducción ejecuta exactamente lo que se probóADR-0034
CI sobre el mismo stack de Docker, Dependabot y Gitleaks antes de cada commitEl CI prueba lo mismo que se ejecuta, y ningún secreto llega al historial públicoADR-0041
Pruebas de arquitectura, autorización, N+1 y E2E en 4 vistasLas reglas del proyecto se verifican solasADR-0031
Escaneo OWASP ZAP como perfil opcional de DockerCualquiera puede auditar la seguridadADR-0032
Respaldo diario cifrado de MySQL, con firma y 7 días de historiaRecuperación ante fallos sin dejar datos en texto planoADR-0064
Límites de recursos por contenedorConvivencia con otros servicios en el mismo servidorADR-0026
Documentación de funciones (phpDocumentor y TypeDoc) revisada en el CIUn comentario roto se detecta en el PRADR-0065
OpenAPI generada desde el códigoLa referencia de la API nunca se desactualizaADR-0006
Nota al cambiar de estado (obligatoria al resolver y cancelar) y reapertura con aprobaciónCada cierre explica qué se hizo, y lo cerrado solo vuelve a abrirse con motivo y con la aprobación de quien supervisaADR-0071