# 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