siip-available-ips/CHANGELOG.md

174 lines
6.4 KiB
Markdown

# Changelog
Todos los cambios notables en este proyecto serán documentados en este archivo.
El formato está basado en [Keep a Changelog](https://keepachangelog.com/es-ES/1.0.0/),
y este proyecto adhiere a [Semantic Versioning](https://semver.org/lang/es/).
---
## [1.1.0] - 2025-11-26
### ✨ Añadido
#### API REST Completa
- **Endpoint `event.ip_request`**: Búsqueda de IPs disponibles en un segmento de red
- Acepta parámetro `segment` para especificar el tercer octeto (0-255)
- Retorna lista de IPs disponibles y en uso
- Filtra automáticamente IPs administrativas (1-30, 254)
- Incluye contadores de IPs disponibles, en uso y filtradas
- **Endpoint `event.ip_check`**: Verificación de estado de una IP específica
- Acepta parámetro `ip` con dirección completa (172.16.X.X)
- Retorna estado: disponible, en uso o desconocido
- Incluye información del tipo de IP (administrativa vs. cliente)
- Proporciona recomendaciones de uso
- **Soporte para webhooks**: Habilitado `supportsWebhookEvents: true` en manifest
- **Manejo de peticiones JSON**: Detección automática de Content-Type para API vs Frontend
#### Arquitectura y Código
- **Clase `ApiHandlers.php`**: Manejadores dedicados para eventos de API REST
- `handleApiRequest()`: Router principal de eventos
- `handleIpRequest()`: Procesamiento de búsqueda de IPs
- `handleIpCheck()`: Procesamiento de verificación de IPs
- **Clase `IpSearchService.php`**: Servicio de búsqueda de IPs con lógica de negocio
- `buscarIpsDisponibles()`: Búsqueda de IPs en segmento específico
- `obtenerIpsEnUso()`: Obtención de IPs desde API UNMS
- `isAdminIp()`: Método estático para detectar IPs administrativas
- `getIpType()`: Método estático para obtener información del tipo de IP
- **Sistema de filtrado de IPs**: Clasificación automática de IPs administrativas vs. cliente
- Rango administrativo: .1-.30 y .254
- Rango cliente: .31-.253
- Etiquetas visuales en frontend
- Filtrado automático en API REST
#### Documentación
- **README.md completo**: Documentación profesional del plugin
- Guía de instalación y configuración
- Documentación completa de API REST
- Ejemplos de uso en múltiples lenguajes (cURL, PHP, JavaScript, Python)
- Tabla de códigos de error
- Troubleshooting y soporte
- **CHANGELOG.md**: Archivo dedicado para control de versiones
### 🔄 Mejorado
- **Separación de responsabilidades**: Lógica de negocio separada en clases dedicadas
- **Manejo de errores mejorado**: Respuestas JSON estructuradas con códigos de error descriptivos
- **Sistema de logging**: Logs más detallados y organizados para debugging
- Registro de tipo de petición (HTML vs JSON)
- Logging de eventos API procesados
- Información de errores con stack traces
- **Compatibilidad dual**: Frontend HTML y API REST funcionan simultáneamente
- Detección automática del tipo de petición
- Sin interferencia entre modos
- **Validación de datos**: Validación robusta de parámetros en API
- Validación de formato de IP
- Validación de rangos de segmento
- Mensajes de error descriptivos
### 🔧 Técnico
- **Namespace PHP**: `SiipAvailableIps` para evitar conflictos
- **Manejo global de errores**: Error handler para convertir errores PHP en respuestas JSON
- **Configuración SSL**: Soporte para certificados autofirmados en desarrollo
- **Timeouts configurados**: Timeouts de conexión y ejecución para API UNMS
---
## [1.0.1] - 2025-11-25
### ✨ Añadido
- **Frontend web moderno**: Interfaz de usuario con diseño responsive y atractivo
- Diseño con gradientes y glassmorphism
- Tipografía Google Fonts (Inter)
- Animaciones suaves y micro-interacciones
- Modo oscuro integrado
- **Búsqueda de IPs por segmento**: Campo de entrada para tercer octeto
- **Función copiar al portapapeles**: Botón de copia rápida para cada IP
- Feedback visual al copiar
- Compatible con navegadores modernos
- **Estadísticas en tiempo real**: Contadores de IPs disponibles y en uso
- Tarjetas de estadísticas visuales
- Actualización dinámica tras búsqueda
- **Integración con API UNMS**: Conexión directa con UISP Network
- Obtención de IPs en uso desde dispositivos
- Soporte para HTTPS
- Manejo de errores de conexión
### 🔄 Mejorado
- **Conexión con API UNMS**: Optimización de peticiones HTTP
- Timeouts configurables
- Mejor manejo de errores de red
- Logging de respuestas
- **Búsqueda de IPs**: Algoritmo optimizado para comparación de rangos
- Ordenamiento de IPs por último octeto
- Cálculo eficiente de IPs disponibles
- Validación de segmentos (0-255)
### 🐛 Corregido
- Mejoras en la estabilidad de conexión con API UNMS
- Corrección de validación de segmentos fuera de rango
- Fix en ordenamiento de IPs en tabla de resultados
---
## [1.0.0] - 2025-11-25
### ✨ Lanzamiento Inicial
#### Funcionalidades Core
- **Búsqueda básica de IPs**: Funcionalidad principal del plugin
- Búsqueda en rangos 172.16.X.x
- Detección de IPs en uso
- Cálculo de IPs disponibles
- **Integración con UISP CRM**: Plugin nativo para UCRM
- Instalación vía interfaz de plugins
- Configuración desde panel de administración
- Acceso desde menú de reportes
- **Interfaz web básica**: Primera versión del frontend
- Formulario de búsqueda simple
- Tabla de resultados
- Diseño básico responsive
#### Configuración
- **Parámetros de configuración**:
- Dirección IP/dominio del servidor
- Token de API UCRM
- Token de API UNMS (opcional)
- Modo debug
- Nivel de logging
#### Integración
- **API UNMS**: Conexión con UISP Network para obtener IPs
- **Sistema de logs**: Archivo `plugin.log` para debugging
- **Compatibilidad**: UCRM 1.0.0+ y UNMS 1.0.0+
---
## Tipos de Cambios
- **✨ Añadido**: Para nuevas funcionalidades
- **🔄 Mejorado**: Para cambios en funcionalidades existentes
- **🐛 Corregido**: Para corrección de bugs
- **🔧 Técnico**: Para cambios técnicos internos
- **🗑️ Eliminado**: Para funcionalidades removidas
- **⚠️ Deprecado**: Para funcionalidades que serán removidas
- **🔒 Seguridad**: Para parches de seguridad
---
## Versionamiento
Este proyecto sigue [Semantic Versioning](https://semver.org/lang/es/):
- **MAJOR** (X.0.0): Cambios incompatibles con versiones anteriores
- **MINOR** (0.X.0): Nueva funcionalidad compatible con versiones anteriores
- **PATCH** (0.0.X): Correcciones de bugs compatibles con versiones anteriores
---
**Última actualización**: 26 de noviembre de 2025