Skip to content

Auth Service Wiki

Antonio Rodríguez edited this page Jan 6, 2025 · 21 revisions

¡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.

Nivel de acabado

Descripción de la aplicación

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.

Descomposición en microservicios

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

image

Customer Agreement

El Customer Agreement de la aplicación CloudMedix se encuentra disponible en nuestro repositorio de documentación: Enlace al Customer Agreement

Descripción del API REST

Authorization

Disponible en: Enlace a la documentación de Authorization

Logger

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.

Justificación de los requisitos

Microservicio Básico

Criterio Cumplido Evidencia
API REST: GET, POST, PUT y DELETE API
Autenticación Código fuente
Frontend Frontend
Desplegado y accesible A través de nuestra custom API-Gateway y Frontend
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

Microservicio Avanzado

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

Aplicación Básica

Criterio Cumplido Evidencia
Integración completa entre microservicios Microservicios

Aplicación Avanzada

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 E.j Logger
Mecanismo de deshacer transacciones distribuidas E.j Creacion de staff con usuario

Hasta 5 puntos

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 Presentacion

Hasta 7 puntos

Criterio Cumplido Evidencia
Aplicación básica Aplicación básica
3 características del microservicio avanzado Microservicio avanzado

Hasta 9 puntos

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 Aplicación avanzada

Hasta 10 puntos

Criterio Cumplido Evidencia
Feature toggles E.j Creación de Staff
6 Microservicio avanzado Microservicio avanzado
4 Aplicación avanzada Aplicación avanzada

Extra

Criterio Cumplido Evidencia
Extra: Permission Toggle Toggle de permisos mediante configuracion

Análisis de los esfuerzos

Clockify report

Clone this wiki locally