-
Notifications
You must be signed in to change notification settings - Fork 0
Auth Service Wiki
¡Bienvenido a la wiki del microservicio Auth Service! Este microservicio forma parte del proyecto CloudMedix, un sistema cloud diseñado para la gestión de consultoría médica.
A continuación se detalla toda la información requerida en relación al Equipo 1, formado por Antonio Rodríguez y Álvaro González.
CloudMedix es una aplicación de consultoría médica diseñada para gestionar de manera eficiente los procesos relacionados con una clínica o sistema de salud mediante una arquitectura basada en microservicios. Cada microservicio tiene una funcionalidad específica, como la autenticación de usuarios, gestión de pagos, notificaciones, historial clínico, turnos laborales, y citas médicas.
La aplicación permite a los usuarios realizar operaciones críticas como programar citas, gestionar datos de pacientes y personal, y procesar pagos, garantizando modularidad, escalabilidad y facilidad de mantenimiento. Además, incluye un sistema de registro de eventos para el monitoreo y auditoría de las operaciones realizadas.
Nuestro equipo ha sido el responsable de implementar los microservicios de authorization y logger.
| Nombre del Microservicio | Puerto | Descripción | Pareja asociada |
|---|---|---|---|
| Auth Service | 3001 | Servicio de autenticación y gestión de sesiones. | Antonio Rodríguez y Álvaro González Enlace al microservicio |
| Payment Service | 3003 | Servicio de procesamiento de pagos. | María García y Manuel Sánchez |
| Alert Service | 3004 | Servicio de notificación y alertas. | Carlos Baquero y Aitor Rodríguez |
| Clinical History Service | 3005 | Servicio de gestión del historial clínico de pacientes. | Daniel Arriaza y Rafael González |
| Patient Service | 3006 | Servicio de gestión de datos de pacientes. | María García y Manuel Sánchez |
| Staff Service | 3007 | Servicio de gestión de datos de personal. | Carlos Baquero y Aitor Rodríguez |
| Clinic Service | 3003 | Servicio de gestión de información de clínicas. | María García y Manuel Sánchez |
| Event Logger | 3009 | Servicio de registro de eventos del sistema. | Antonio Rodríguez y Álvaro González Enlace al microservicio |
| Work Shift Service | 3011 | Servicio de gestión de turnos laborales del personal. | Álvaro Bernal y Adrián Romero |
| Appointment Service | 3012 | Servicio de programación de citas médicas. | Álvaro Bernal y Adrián Romero |

El Customer Agreement de la aplicación CloudMedix se encuentra disponible en nuestro repositorio de documentación: Enlace al Customer Agreement
Disponible en: Enlace a la documentación de Authorization
El microservicio del logger se encarga de gestionar y almacenar todos los logs de los diferentes microservicios. Su API REST consta de los siguientes endpoints:
-
GET /logs: obtiene una lista las peticiones cuyos logs han sido almacenados en AWS S3, ordenadas de la más reciente a la más antigua. Requiere autenticación de administrador. -
GET /logs/{requestId}: obtiene los logs almacenados en AWS S3 de un una petición específica. Requiere autenticación de administrador.
| Criterio | Cumplido | Evidencia |
|---|---|---|
| API REST: GET, POST, PUT y DELETE | ✅ | API |
| Autenticación | ✅ | Código fuente |
| Frontend | ✅ | Frontend |
| Desplegado y accesible | ||
| Versionado | ✅ | API YAML |
| Documentación de la API | ✅ | API |
| MongoDB | ✅ | Conexión |
| Validación de los datos | ✅ | Validación con mongoose Validación con zod |
| GitFlow | ✅ | GitHub |
| Github Actions | ✅ | Actions |
| Docker | ✅ | Auth Logger |
| Pruebas de componente | ✅ | Pruebas |
| Pruebas de integración con la BBDD | ✅ | Pruebas |
| Característica | Cumplido | Evidencia |
|---|---|---|
| Frontend con rutas y navegación | ✅ | Frontend |
| Pruebas en interfaz de usuario | ||
| Materialized view para otros microservicios | ||
| Cachés u optimización de acceso a datos | ✅ | Almacenar tokens en Redis |
| Consumo de API externa | ||
| Autenticación JWT | ✅ | Generar JWT |
| Circuit breaker | ||
| Serverless adicional | ||
| Gestión de capacidad (throttling, toggles) | ||
| Two-factor authentication (2FA) | ✅ |
2FA (funciones enable2FA y verify2FA) |
| Recolección de logs con Kafka | ✅ | Kafka |
| Almacenamiento de logs en AWS S3 | ✅ | AWS S3 |
| Criterio | Cumplido | Evidencia |
|---|---|---|
| Integración completa entre microservicios | ✅ | Microservicios |
| Criterio | Cumplido | Evidencia |
|---|---|---|
| Frontend común que integre los frontends de microservicios | ✅ | Frontend |
| Pruebas de integración entre microservicios en CI/CD | ||
| Uso de un API Gateway avanzado | ✅ | API Gateway |
| Sistema de comunicación asíncrona | ||
| Mecanismo de deshacer transacciones distribuidas |
| Criterio | Cumplido | Evidencia |
|---|---|---|
| Microservicio básico | ✅ | Microservicio básico |
| CA de la aplicación | ✅ | Customer Agreement |
| Doc de Resumen del microservicio | ✅ | Wiki |
| Vídeo del microservicio o app funcionando | ||
| Presentación |
| Criterio | Cumplido | Evidencia |
|---|---|---|
| Aplicación básica | ✅ | Aplicación básica |
| 3 características del microservicio avanzado | ✅ | Microservicio avanzado |
| Criterio | Cumplido | Evidencia |
|---|---|---|
| 20 pruebas implementadas (escenarios positivos y negativos) | ✅ | Tests |
| API-REST con OpenAPI | ✅ | API YAML |
| 5 características del microservicio avanzado | ✅ | Microservicio avanzado |
| 3 características de la aplicación avanzada |
| Criterio | Cumplido | Evidencia |
|---|---|---|
| Feature toggles | ||
| 6 Microservicio avanzado | ✅ | Microservicio avanzado |
| 4 Aplicación avanzada |