Propósito: Sistema central de autenticación y gestión de usuarios. Mantiene el registro de usuarios, sus permisos por proyecto y controla el acceso al sistema.
Tecnología: Go 1.24.0 / Gin
Puerto: Variable por ambiente (DEV_PORT, QA_PORT, PROD_PORT)
Módulo:users
CI/CD: GitLab CI/CD
Propósito de Negocio
Centraliza: - Registro y login de usuarios (email/password y Google OAuth) - Asignación de usuarios a proyectos con roles y vistas específicas - Control granular de permisos (certify, whatsappAssistant, CCA) - Generación de tokens JWT para acceso a la plataforma
Endpoints Expuestos
Path
Descripción
POST /users/login
Login con email/password o Google
POST /users/register
Registro de nuevo usuario
POST /users/by-email
Buscar usuario por email
POST /users/by-email-and-project
Buscar usuario en proyecto específico
POST /users/get-by-emails
Buscar múltiples usuarios por emails (bulk)
GET /users
Listar todos los usuarios
GET /users/by-project/:projectId
Usuarios de un proyecto
GET /users/by-project/v2/:projectId
Usuarios de un proyecto (versión mejorada)
GET /users/by-phone-number/:projectId/:phoneNumber
userId = Google ID del usuario
Validación directa contra userId almacenado en BD
Generación de JWT
Después de validar credenciales: 1. Llama a POST {API_URL}/gen-access-token/... con Bearer token interno 2. Recibe: token (JWT de acceso) + refreshToken 3. Retorna ambos tokens al cliente junto con la lista de proyectos
Nota de seguridad: El Bearer token usado para generar tokens JWT está hardcodeado en el código fuente. Debe migrarse a variable de entorno o vault.
Dependencias Externas
Servicio
Llamada
Propósito
API Gateway
POST /gen-access-token/...
Obtener JWT de acceso
Roles y Permisos
Campo
Tipo
Significado
scope[].views[]
array
Vistas de la plataforma accesibles (dashboard, gantt, digitaltwin, etc.)