Buscar en la documentación

Decisiones

Las 90 decisiones del proyecto (ADR). Cada una tiene su contexto, las alternativas evaluadas, por qué se eligió una y se descartaron las demás, y sus consecuencias.

  1. ADR-0001
  2. ADR-0002
  3. ADR-0003
  4. ADR-0004
    TypeScript en el frontend
    ArquitecturaAceptada
  5. ADR-0005
    Quasar como librería de interfaz
    Front y diseñoAceptada
  6. ADR-0006
  7. ADR-0007
  8. ADR-0008
  9. ADR-0009
  10. ADR-0010
    ULID público y BIGINT interno
    DatosAceptadaEl formato del código legible cambió en el ADR-0074

    La retoman: ADR-0074

  11. ADR-0011
  12. ADR-0012
  13. ADR-0013
  14. ADR-0014
  15. ADR-0015
  16. ADR-0016
  17. ADR-0017
  18. ADR-0018
  19. ADR-0019
  20. ADR-0020
  21. ADR-0021
    Roles construidos sobre permisos granulares
    SeguridadAceptadaAmpliada por ADR-0053 (quinto rol, jerarquía por nivel y permisos por persona)
  22. ADR-0022
  23. ADR-0023
  24. ADR-0024
  25. ADR-0025
  26. ADR-0026
  27. ADR-0027
  28. ADR-0028
    Identidad visual de Trazo
    Front y diseñoAceptada
  29. ADR-0029
  30. ADR-0030
  31. ADR-0031
    Estrategia de pruebas
    Operación y calidadAceptada
  32. ADR-0032
  33. ADR-0033
    Flujo de Git con cuatro ramas
    Operación y calidadAceptada
  34. ADR-0034
  35. ADR-0035
  36. ADR-0036
    Exportación en CSV
    ProductoAceptada
  37. ADR-0037
  38. ADR-0038
    Versiones del stack
    Operación y calidadAceptada
  39. ADR-0039
  40. ADR-0040
    Axios como base del cliente HTTP
    Front y diseñoAceptada
  41. ADR-0041
    El CI prueba el backend dentro del stack de Docker

    El CI prueba el backend dentro del stack de Docker y audita dependencias según su alcance

    Operación y calidadAceptada
  42. ADR-0042
  43. ADR-0043
  44. ADR-0044
  45. ADR-0045
  46. ADR-0046
  47. ADR-0047
  48. ADR-0048
  49. ADR-0049
  50. ADR-0050
  51. ADR-0051
  52. ADR-0052
  53. ADR-0053
  54. ADR-0054
  55. ADR-0055
  56. ADR-0056
  57. ADR-0057
  58. ADR-0058
  59. ADR-0059
  60. ADR-0060
  61. ADR-0061
    Entrega verificada desde cero

    Entrega verificada desde cero: clon limpio, rutas largas en Windows, volumen de node_modules y carga diferida estricta

    Operación y calidadAceptada
  62. ADR-0062
    Correos cifrados en la cola

    Correos cifrados en la cola: el contenido de cada correo pendiente o fallido es ilegible sin la clave de la aplicación

    SeguridadAceptada
  63. ADR-0063
    Pantalla que no se descarga

    Pantalla que no se descarga: un aviso global con Recargar y un mensaje propio, sin pedir códigos de soporte inexistentes

    Front y diseñoAceptada
  64. ADR-0064
    Respaldo diario de MySQL

    Respaldo diario de MySQL: servicio propio con la imagen de MySQL, volcado consistente, cifrado y firmado, siete días de historia

    Operación y calidadAceptada
  65. ADR-0065
    Documentación de funciones

    Documentación de funciones: phpDocumentor en su imagen oficial y TypeDoc como dependencia de desarrollo, generadas bajo demanda y en el CI

    Operación y calidadAceptada
  66. ADR-0066
    Llave de la app sin depender del entrypoint

    La configuración lee la APP_KEY del volumen local cuando no llega por el entorno, para que docker compose exec funcione

    SeguridadAceptada
  67. ADR-0067
    Pantallas precompiladas en desarrollo

    Vite compila al arrancar el layout y cada pantalla (server.warmup), para que la primera visita no tarde ni haga fallar la E2E

    Front y diseñoAceptada
  68. ADR-0068
    El modo final es el que arranca por defecto

    docker compose up -d levanta las imágenes finales (rápidas); el modo desarrollo pasa a un archivo propio y opcional

    Operación y calidadAceptadaReemplaza en parte al ADR-0025 en la organización de los archivos de Compose.
  69. ADR-0069
    Al cambiar de rol, la persona queda con los permisos exactos del rol nuevo

    El cambio de rol borra todas las excepciones de permisos de la persona y el registro de auditoría guarda cuáles eran

    SeguridadAceptadaReemplaza en parte al ADR-0053 en lo que pasa con las excepciones al cambiar de rol.
  70. ADR-0070
    Rechazar contraseñas predecibles aunque sean largas

    Además del largo y de las filtraciones, se rechazan las contraseñas repetitivas, secuenciales o con datos de la persona o de la marca

    SeguridadAceptadaComplementa al ADR-0016.
  71. ADR-0071
    Nota al cambiar de estado y reapertura con aprobación

    Resuelto y Cancelado exigen una nota; lo cerrado o cancelado solo se reabre con motivo y la aprobación de quien supervisa

    ProductoAceptadaComplementa al ADR-0043.
  72. ADR-0072
    Asignarse el incidente al crearlo

    Quien puede tomar incidentes marca "Asignármelo" al crear; solo puede elegirse a sí mismo

    ProductoAceptadaAjusta la regla "asignar al crear solo con incidents.assign" del ADR-0043.
  73. ADR-0073
    Largo del título de un incidente

    El título va de 5 a 80 caracteres, para que sea concreto y quepa en una línea

    ProductoAceptadaAjusta el máximo de 150 caracteres de la validación de incidentes (ADR-0043).
  74. ADR-0074
    Código del incidente por año

    El código pasa de INC-000123 (sacado del id) a prefijo, año y consecutivo del año: TZ-26-0142

    DatosAceptadaReemplaza el formato INC-000123 del ADR-0010; el ULID público no cambia.

    La retoman: ADR-0010

  75. ADR-0075
    Menús que se abren donde caben

    Cada menú mide su tamaño y el espacio libre antes de abrirse: abajo, arriba, al lado o bajando la página

    Front y diseñoAceptada
  76. ADR-0076
    Conversación del incidente

    Cada incidente tiene una conversación tipo chat; quien escribió un mensaje puede borrarlo durante 5 minutos

    ProductoAceptadaPrimer bloque de la conversación y el centro de notificaciones. El panel de la conversación se reemplazó por la actividad del detalle (ADR-0083); las reglas siguen igual.

    La retoman: ADR-0083

  77. ADR-0077
    Centro de notificaciones

    Una campana con dos pestañas (Conversaciones y Actividad) avisa a cada persona lo que pasa en sus incidentes; el perfil pasa al pie del menú lateral

    ProductoAceptadaSegundo bloque de la conversación y el centro de notificaciones. El lugar del perfil lo reemplaza el ADR-0079: ahora es un círculo con las iniciales en el dock.

    La retoman: ADR-0079, ADR-0085

  78. ADR-0078
    Mis incidentes (Kanban, Lista, Calendario y Mi día)

    Quien atiende incidentes tiene un tablero con lo que tiene asignado, en Kanban (arrastrando para cambiar de estado), Lista, Calendario o Mi día

    ProductoAceptadaConstruida en dos bloques: Kanban y Lista; luego Calendario y Mi día.
  79. ADR-0079
    Menú en un dock abajo y centrado, sin encabezado

    El menú lateral y el encabezado se reemplazan por un dock que flota abajo y centrado en las cuatro vistas; los avisos pasan arriba a la derecha

    Front y diseñoAceptadaReemplaza la navegación por vista de la fase 1.7 (menú lateral expandido o plegado, compacto en tablet y hamburguesa en celular) y el perfil al pie del menú lateral del ADR-0077.

    La retoman: ADR-0077

  80. ADR-0080
    Listado de incidentes como lista agrupada con el avance del plazo

    El listado pasa a una lista de dos líneas agrupada por vencimiento, estado, prioridad o asignado, con una barra que muestra cuánto del plazo se ha gastado; la tabla queda como segunda vista

    Front y diseñoAceptadaCambia la presentación del ADR-0045 y suma al ADR-0044 el agrupamiento y los totales por grupo.
  81. ADR-0081
    Dashboard centrado en el riesgo

    El diseño original del dashboard pasa a pulso con cumplimiento del plazo, mapa de riesgo, flujo de estados y balance del backlog; los widgets anteriores siguen disponibles

    ProductoAceptadaAmplía el catálogo del ADR-0047 y cambia el diseño original; el modo Personalizar (ADR-0050) no cambia.
  82. ADR-0082
    Formulario del incidente que guía mientras se escribe

    La prioridad se elige en tarjetas con su plazo, el vencimiento con atajos, al crear se muestran incidentes parecidos y una vista previa dice cómo se verá

    Front y diseñoAceptadaCambia la presentación del formulario del ADR-0043; sigue siendo un solo formulario para crear y editar, y la API no cambia.
  83. ADR-0083
    Detalle del incidente con su camino, el siguiente paso y una sola actividad

    El detalle muestra el camino de estados, la barra del plazo y un botón con el siguiente paso; historial y conversación se unen en una actividad con el campo para escribir

    Front y diseñoAceptadaCambia la presentación del detalle y reemplaza el panel de conversación del ADR-0076. La API no cambia. La actividad dentro de la página fue reemplazada por el ADR-0084.

    La retoman: ADR-0076, ADR-0084

  84. ADR-0084
    Detalle con historial reciente, ficha a la par y un panel de chat y actividad

    La actividad sale de la página: el detalle muestra las 5 entradas más recientes junto a la ficha, y el chat y toda la actividad viven en un panel con pestañas

    Front y diseñoAceptadaReemplaza la actividad dentro de la página del ADR-0083; el encabezado con el camino, el plazo y el siguiente paso se conserva. La API no cambia.

    La retoman: ADR-0083

  85. ADR-0085
    Avisos de coordinación para quienes reparten el trabajo

    Nuevo sin asignar, crítico reportado, reapertura pendiente y vencido llegan a quienes coordinan, por permiso y una sola vez

    ProductoAceptadaCompleta el centro de notificaciones del ADR-0077.
  86. ADR-0086
    Nombres y apellidos por separado, con el nombre completo calculado por la base

    La persona tiene dos campos, Nombres y Apellidos; users.name pasa a ser una columna calculada y las listas se ordenan por apellido

    DatosAceptada
  87. ADR-0087
    Cuentas por rol creadas desde el entorno del servidor

    Dos juegos de cuentas (evaluación y propias), una por rol, creados también en producción con contraseñas que solo viven en el entorno

    Operación y calidadAceptada
  88. ADR-0088
    Despliegue detrás del proxy de TLS que ya existe en el servidor

    Trazo no publica puertos: el Caddy del servidor le pasa su subdominio por una red compartida, sin reiniciar nada de los otros proyectos

    Operación y calidadAceptada
  89. ADR-0089
    Incidentes de muestra en el sitio de evaluación

    En producción los incidentes de demostración se cargan solo con una variable explícita, repartidos entre las cuentas por rol

    Operación y calidadAceptada
  90. ADR-0090
    Una validación por ruta

    Cada endpoint con cuerpo tiene su propia clase de validación, sin reglas que cambien según la ruta, para que el contrato OpenAPI diga lo real

    ArquitecturaAceptada

Las decisiones nuevas siguen la plantilla, con su tema en tags.