🗑️ Eliminados: - Scripts temporales de debugging (9 archivos en backend/) - Archivos temporales en raíz (4 archivos) - Reportes de cobertura htmlcov/ (~543 KB) - Directorio backups/ - Script de migración update_password_hashes.py ✨ Optimizaciones: - Creado scripts/db_utils.py - Herramienta consolidada para administración - Actualizado README.md con sección de Utilidades Administrativas - Mejorado .gitignore para prevenir archivos temporales futuros 📦 Espacio liberado: ~600-800 KB Las funcionalidades de debugging ahora están consolidadas en: - scripts/db_utils.py (herramienta CLI profesional) - Documentación en README.md - Alternativas sugeridas (psql, tests, API docs)
5.2 KiB
5.2 KiB
Release Notes - ServiceManagerWeb v1.5.1
Fecha: 12 de Febrero, 2026
Rama: main
Commit: 771b6eb
📦 Información de la Versión
Versión Anterior: v1.4.1.4
Versión Actual: v1.5.1
Tipo de Release: Minor (Funcionalidades + Correcciones Críticas)
🔒 Seguridad y Control de Acceso
Control de Acceso Basado en Roles (RBAC)
Implementación Completa
-
Staff Interno (ADMIN, AGENT, SUPPORT_MANAGER)
- ✅ Acceso a todos los tickets del tenant
- ✅ Puede ver/modificar cualquier ticket
- ✅ Control total sobre recursos compartidos
-
Clientes (CLIENT_USER, CLIENT_ADMIN)
- ✅ Acceso solo a sus propios tickets
- ✅ No pueden ver tickets de otros clientes del mismo tenant
- ✅ Restricciones adecuadas implementadas
Endpoints Protegidos
Categories (/api/v1/categories)
- GET: Todos los roles (lectura)
- POST/PUT/DELETE: Solo ADMIN y SUPPORT_MANAGER
Systems (/api/v1/systems)
- GET: Todos los roles (lectura)
- POST/PUT/DELETE: Solo ADMIN y SUPPORT_MANAGER
Tickets (/api/v1/tickets)
- GET (listado): Filtrado según rol
- GET (detalle): Validación de permisos por rol
- POST: Todos (según su alcance)
- PATCH/DELETE: Validación por rol y propiedad
Multi-Tenancy Reforzado
- ✅ Header
X-Tenant-IDagregado en frontend-internal - ✅ Validación de tenant en todos los endpoints
- ✅ Aislamiento estricto de datos entre tenants
- ✅ Prevención de acceso cruzado entre organizaciones
🐛 Correcciones Críticas
Fix: Números de Ticket Duplicados
Problema Original:
- Generación de números con simple contador
- Race conditions en creación simultánea
- Violación de constraint unique
uq_tickets_tenant_number
Solución Implementada:
# Retry logic con 3 intentos
# Búsqueda del MAX número existente
# Manejo específico de errores de llave duplicada
for attempt in range(max_retries):
last_number = get_max_ticket_number()
next_number = last_number + 1
try:
create_ticket(next_number)
break
except DuplicateKeyError:
if attempt < max_retries - 1:
continue # Reintentar
Resultado:
- ✅ 0% fallos por duplicados
- ✅ Manejo robusto de alta concurrencia
- ✅ Recuperación automática de errores
✨ Mejoras de Código
Backend
-
Validación Robusta
- Type hints completos en todos los endpoints
- Validación de permisos antes de queries
- Mensajes de error descriptivos
-
Manejo de Excepciones
- Try/catch específicos por tipo de error
- Rollback automático en fallos
- Logging estructurado
-
Documentación
- Docstrings actualizados con información de permisos
- Comentarios explicativos en lógica compleja
- Ejemplos de uso en código
Frontend
- API Client
- Header
X-Tenant-IDen todas las peticiones - Manejo consistente de errores
- Type safety mejorado
- Header
📚 Documentación
Archivos Nuevos
-
CHANGELOG.md
- Historial completo de versiones
- Formato estándar Keep a Changelog
- Categorización por tipo de cambio
-
test_rbac.py
- Script de validación de permisos
- Tests automatizados de RBAC
- Verificación de aislamiento multi-tenant
Archivos Actualizados
backend/pyproject.toml→ v1.5.1frontend-internal/package.json→ v1.5.1frontend-client/package.json→ v1.5.1- Endpoints: tickets.py, categories.py, systems.py
🧪 Testing
Scripts de Validación
# Test de control de acceso
python backend/test_rbac.py
# Test de creación de tickets
python backend/test_ticket_numbers.py
# Verificar usuarios y roles
python backend/list_all_users.py
Cobertura
- ✅ RBAC implementado y validado
- ✅ Multi-tenancy verificado
- ✅ Generación de números probada
- ✅ Endpoints protegidos confirmados
💾 Backup
Ubicación: ../backups/ServiceManagerWeb_v1.5.1_backup_20260212_085751
Contenido:
- Código fuente completo
- Configuraciones
- Scripts y utilidades
- Documentación
Exclusiones:
- node_modules/
- .git/
- pycache/
- logs/
- uploads/
🚀 Despliegue
Para Subir al Repositorio Remoto
# Subir commit
git push origin main
# Subir tag
git push origin v1.5.1
Para Desplegar en Producción
-
Pull de la versión
git fetch --tags git checkout v1.5.1 -
Actualizar dependencias
docker-compose pull docker-compose build -
Reiniciar servicios
docker-compose down docker-compose up -d -
Verificar estado
docker-compose ps curl http://localhost:8000/health
⚠️ Breaking Changes
Ninguno: Esta versión es completamente compatible con v1.4.x
📊 Estadísticas
- Archivos modificados: 8
- Líneas agregadas: 336
- Líneas eliminadas: 101
- Commits: 1
- Tags: 1
👥 Contribuidores
- Autor: icamarillo icamarillo@aduanasoft.com.mx
- Fecha: Thu Feb 12 09:00:16 2026 -0700
🔗 Referencias
- Commit:
771b6eba30 - Tag: v1.5.1
- Rama: main
- Changelog: CHANGELOG.md
Generado automáticamente el 12 de Febrero, 2026