Saltar al contenido principal

Matriz de Trazabilidad Técnica

Este documento garantiza que cada concepto definido en el Modelo de Dominio tenga una representación exacta en la arquitectura de software. Es la herramienta principal para el análisis de impacto y la auditoría de procesos.


1. Mapeo General (Entidad → API → Tabla)

Entidad de DominioMicroservicio (Go)Endpoint PrincipalTabla PostgreSQLEvento de NegocioUse Case (Aplicación)
Identidad (User)auth-servicePOST /api/v1/auth/loginusersUSER_LOGGED_INLogin
Sesión/Refreshauth-servicePOST /api/v1/auth/refreshrefresh_tokensSESSION_ROTATEDRefreshToken
Registro / OTPauth-servicePOST /api/v1/auth/register / POST /api/v1/auth/token/verifyverification_tokensOTP_VERIFIEDRegisterUser, VerifyOtp
Doctorprofile-serviceGET /api/v1/doctors/{public_id}doctor_profilesDOCTOR_VERIFIEDGetDoctor, UpdateDoctorProfile
Perfil de Usuario (común)profile-servicePATCH /api/v1/profiles/meuser_profilesUSER_PROFILE_UPDATEDUpdateUserProfile
Paciente (vista/flags)profile-servicePATCH /api/v1/profiles/patientuser_profilesPATIENT_FLAGS_UPDATEDUpdatePatientFlags
Sede (Entidad)entity-serviceGET /api/v1/entitieshealth_entitiesENTITY_CREATEDListEntities, CreateEntity, UpdateEntity
Geografíacatalog-serviceGET /api/v1/admin/catalogs/geogeographyCATALOG_UPDATEDGetGeo, CreateGeoNode
Taxonomía Médicacatalog-serviceGET /api/v1/admin/catalogs/specialtiesmedical_taxonomyCATALOG_UPDATEDGetSpecialties, CreateSpecialty
Seguro (Convenios)entity-servicePOST /api/v1/insurance-agreementsinsurance_agreementsAGREEMENT_ENABLEDCreateInsuranceAgreement, ListInsuranceAgreements
Afiliación Doctor-Sedeentity-servicePOST /api/v1/affiliationsaffiliationsAFFILIATION_CREATEDAffiliateDoctor
Validación Triplesearch-serviceGET /api/v1/verifyinsurance_agreementsCHECK_PERFORMEDTripleValidation
Buscador Entidadessearch-serviceGET /api/v1/search/entitieshealth_entitiesSEARCH_PERFORMEDSearchEntities
Buscador Doctoressearch-serviceGET /api/v1/search/doctorsdoctor_profilesSEARCH_PERFORMEDSearchDoctors
Citaappointments-servicePOST /api/v1/appointmentsappointmentsAPPOINTMENT_CONFIRMEDCreateAppointment, UpdateAppointment, GetAppointment
Disponibilidadavailability-serviceGET /api/v1/availabilityaffiliations.scheduleSLOT_RESERVEDGetAvailability
Notificaciónnotification-servicePOST /api/v1/notifications/sendnotification_logsNOTIF_SENTSendNotification
Preferencias de Notificaciónnotification-servicePATCH /api/v1/notifications/preferencesnotification_preferencesPREFERENCES_UPDATEDUpdateNotificationPreferences
Acreditación Doctorprofile-servicePOST /api/v1/doctor-accreditationsdoctor_accreditationsACCREDITATION_APPROVEDCreateAccreditation
Reseñareview-servicePOST /api/v1/reviewsreviewsREVIEW_SUBMITTEDSubmitReview, ListReviews
Cupones/Promocionespromotions-servicePOST /api/v1/professional/couponscouponsCOUPON_CREATEDCreateCoupon, UpdateCoupon, ValidateCoupon, ApplyCoupon
Blog Profesionalcontent-servicePOST /api/v1/professional/postsprofessional_postsPOST_PUBLISHEDCreatePost, UpdatePost, DeletePost, ListPosts
Auditoría de Perfilesbackoffice-servicePOST /api/v1/admin/audits/{id}/decisionaudit_logsPROFILE_VERIFIEDListPendingAudits, ReviewAudit, ResolveAudit

2. Trazabilidad de Datos Sensibles (PII/PHI)

Siguiendo las recomendaciones de seguridad, los datos protegidos se gestionan bajo la siguiente matriz de cumplimiento:

Atributo SensibleEntidadNivel de RiesgoEstrategia de Protección
EmailUserAlto (PII)Indexado, persistencia en texto claro (TLS).
TeléfonoUserAlto (PII)Cifrado AES-256 en capa de aplicación (Go).
PasswordUserCríticoHash Argon2id (No recuperable).
GeolocalizaciónEntityMedioLat/Lng protegidas; solo zona expuesta en listado.
MFA SecretUserCríticoCifrado en reposo (RDS TDE).
OTP / Verification CodeVerificationTokenCríticoHash + TTL corto, no loggear el código; rotar refresh tras verify.
Appointment ReasonAppointmentMedioNo incluir diagnósticos; texto corto sin PHI.

3. Mapeo de Infraestructura (AWS)

Para el análisis de costos y disponibilidad, se trazan los componentes hacia la infraestructura de nube:


4. Responsabilidades de Desarrollo (Owners)

ComponenteLíder TécnicoEquipo de Desarrollo
Capa Transaccional (Go)Juan Chiquin / New Backend DevBackend Team
Interfaz Web (Next.js)Jorge Colíndres / New Frontend DevFrontend Team
App Móvil (Flutter)Jorge ColíndresMobile Team
Infraestructura (IaC)Juan Chiquin / New LeadDevOps Team
Agenda/CitasBackend LeadBackend + Frontend
NotificacionesBackend LeadBackend
ObservabilidadTech LeadDevOps + Todos
Auth (Login/Reset)Tech LeadBackend + DevOps

5. Control de Cambios en la Matriz

Cualquier nuevo endpoint o tabla de base de datos DEBE ser registrado en esta matriz antes de que el Pull Request sea aprobado. Esto asegura que no existan recursos "huérfanos" en el sistema.

Checklist de actualización obligatoria:

  • Endpoint nuevo/modificado en OpenAPI (/swagger.html y static/openapi.yaml).
  • Tabla nueva/modificada en esquema-de-base-de-datos.md.
  • Entrada correspondiente en esta matriz (sección 1).
  • Owner asignado en sección 4.
  • Métrica/Evento en checklist de observabilidad (ver arquitectura-y-seguridad.md 5.8) si aplica.
  • SLO/SLI documentado en el módulo correspondiente (Auth/Registro/Agenda/Notifs).
  • Diccionario UX/flujo referenciado en el módulo de producto (Auth o Registro) si afecta UI.
  • Fila actualizada en 25-matriz-requisito-endpoint-test-dashboard.md.

6. Runbooks de incidentes por servicio

ServicioTrigger de incidentePrimer diagnósticoMitigación inicialEscalamiento
auth-servicePico de 401/409, login fallandoRevisar rotación tokens, redis, proveedor oauthForzar logout global selectivo, fallback a login email/passwordTech Lead + Seguridad
search-servicep95 > SLO, cero resultados anómalosVerificar índices FTS, caché y filtros paísDesactivar filtros no críticos por feature flagBackend Search + Data
appointments-serviceConflictos de slot, doble reservaRevisar locks e idempotenciaBloquear creación temporal y reprocesar pendientesBackend Agenda + Producto
notification-serviceEntrega OTP/push < SLOVerificar cola, proveedor SMTP/SMS/pushReintento exponencial + cambio de proveedor secundarioBackend + DevOps
catalog-serviceCatálogos vacíos/inconsistentesRevisar últimas mutaciones admin y cache invalidationRestaurar snapshot de catálogo + invalidar caché globalBackend + CATALOG_ADMIN

Checklist mínimo por incidente:

  • trace_id raíz identificado.
  • Impacto y alcance documentado (usuarios/países/módulos).
  • Mitigación aplicada con timestamp.
  • RCA preliminar en <24h y RCA final en <5 días hábiles.