🗑️ 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)
255 lines
5.2 KiB
Markdown
255 lines
5.2 KiB
Markdown
# 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-ID` agregado 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**:
|
|
```python
|
|
# 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
|
|
|
|
1. **Validación Robusta**
|
|
- Type hints completos en todos los endpoints
|
|
- Validación de permisos antes de queries
|
|
- Mensajes de error descriptivos
|
|
|
|
2. **Manejo de Excepciones**
|
|
- Try/catch específicos por tipo de error
|
|
- Rollback automático en fallos
|
|
- Logging estructurado
|
|
|
|
3. **Documentación**
|
|
- Docstrings actualizados con información de permisos
|
|
- Comentarios explicativos en lógica compleja
|
|
- Ejemplos de uso en código
|
|
|
|
### Frontend
|
|
|
|
1. **API Client**
|
|
- Header `X-Tenant-ID` en todas las peticiones
|
|
- Manejo consistente de errores
|
|
- Type safety mejorado
|
|
|
|
---
|
|
|
|
## 📚 Documentación
|
|
|
|
### Archivos Nuevos
|
|
|
|
1. **CHANGELOG.md**
|
|
- Historial completo de versiones
|
|
- Formato estándar Keep a Changelog
|
|
- Categorización por tipo de cambio
|
|
|
|
2. **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.1
|
|
- `frontend-internal/package.json` → v1.5.1
|
|
- `frontend-client/package.json` → v1.5.1
|
|
- Endpoints: tickets.py, categories.py, systems.py
|
|
|
|
---
|
|
|
|
## 🧪 Testing
|
|
|
|
### Scripts de Validación
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# Subir commit
|
|
git push origin main
|
|
|
|
# Subir tag
|
|
git push origin v1.5.1
|
|
```
|
|
|
|
### Para Desplegar en Producción
|
|
|
|
1. Pull de la versión
|
|
```bash
|
|
git fetch --tags
|
|
git checkout v1.5.1
|
|
```
|
|
|
|
2. Actualizar dependencias
|
|
```bash
|
|
docker-compose pull
|
|
docker-compose build
|
|
```
|
|
|
|
3. Reiniciar servicios
|
|
```bash
|
|
docker-compose down
|
|
docker-compose up -d
|
|
```
|
|
|
|
4. Verificar estado
|
|
```bash
|
|
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**: 771b6eba30e183fafbff6d2f074a41c378170730
|
|
- **Tag**: v1.5.1
|
|
- **Rama**: main
|
|
- **Changelog**: CHANGELOG.md
|
|
|
|
---
|
|
|
|
_Generado automáticamente el 12 de Febrero, 2026_
|