kukuy 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.ssl +22 -0
- package/README.md +107 -171
- package/balancer.log +2 -0
- package/certs/auto/certificate.crt +22 -0
- package/certs/auto/private.key +28 -0
- package/kukuy-plugins/README.md +91 -0
- package/kukuy-plugins/ejemplo-plugin/index.js +39 -0
- package/kukuy-plugins/ejemplo-plugin/manifest.json +11 -0
- package/kukuy.js +51 -5
- package/package.json +8 -2
- package/servers_real.json +5 -0
- package/src/algorithms/IPHashAlgorithm.js +25 -13
- package/src/algorithms/RoundRobinAlgorithm.js +25 -27
- package/src/core/Balancer.js +201 -128
- package/src/core/ServerPool.js +46 -5
- package/src/extensibility/ExtendedFilterChain.js +90 -0
- package/src/extensibility/ExtendedHookManager.js +87 -0
- package/src/extensibility/PostStartupExtension.js +97 -0
- package/src/plugins/PluginManager.js +183 -0
- package/src/utils/HealthChecker.js +11 -5
- package/src/utils/ProfessionalMetrics.js +41 -24
- package/start-ssl-config.sh +24 -0
- package/start-ssl.sh +26 -0
- package/webpage/index.html +1 -1
- package/.ctagsd/ctagsd.json +0 -954
- package/.ctagsd/file_list.txt +0 -100
- package/.ctagsd/tags.db +0 -0
- package/CHANGELOG.md +0 -101
- package/LICENSE +0 -680
- package/captura.png +0 -0
- package/kukuy.workspace +0 -11
- package/restart-balancer.sh +0 -10
- package/scripts/load_test.py +0 -151
- package/stress-test.js +0 -190
package/.ctagsd/file_list.txt
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/home/bds/kukuy/src/algorithms/AlgorithmManager.js
|
|
2
|
-
/home/bds/kukuy/src/algorithms/IPHashAlgorithm.js
|
|
3
|
-
/home/bds/kukuy/src/algorithms/LoadBalancingAlgorithm.js
|
|
4
|
-
/home/bds/kukuy/src/algorithms/RoundRobinAlgorithm.js
|
|
5
|
-
/home/bds/kukuy/src/extensibility/HookManager.js
|
|
6
|
-
/home/bds/kukuy/src/extensibility/FilterChain.js
|
|
7
|
-
/home/bds/kukuy/src/extensibility/CachingFilter.js
|
|
8
|
-
/home/bds/kukuy/src/protocol/HttpsBalancer.js
|
|
9
|
-
/home/bds/kukuy/src/protocol/HttpBalancer.js
|
|
10
|
-
/home/bds/kukuy/src/utils/HealthChecker.js
|
|
11
|
-
/home/bds/kukuy/src/utils/MetricsCollector.js
|
|
12
|
-
/home/bds/kukuy/src/utils/Logger.js
|
|
13
|
-
/home/bds/kukuy/src/utils/BalancerLogger.js
|
|
14
|
-
/home/bds/kukuy/src/utils/ProfessionalMetrics.js
|
|
15
|
-
/home/bds/kukuy/src/config/RouteLoader.js
|
|
16
|
-
/home/bds/kukuy/src/config/ConfigManager.js
|
|
17
|
-
/home/bds/kukuy/src/dashboard/WebDashboard.js
|
|
18
|
-
/home/bds/kukuy/src/dashboard/WebSocketServer.js
|
|
19
|
-
/home/bds/kukuy/src/core/ServerPool.js
|
|
20
|
-
/home/bds/kukuy/src/core/Balancer.js
|
|
21
|
-
/home/bds/kukuy/src/core/RoundRobinAlgorithm.js
|
|
22
|
-
/home/bds/kukuy/.ctagsd/ctagsd.json
|
|
23
|
-
/home/bds/kukuy/.git/refs/remotes/origin/HEAD
|
|
24
|
-
/home/bds/kukuy/.git/refs/heads/main
|
|
25
|
-
/home/bds/kukuy/.git/objects/pack/pack-d6c235a42601cf3587ab120cc8b47a69c2a7ee60.pack
|
|
26
|
-
/home/bds/kukuy/.git/objects/pack/pack-d6c235a42601cf3587ab120cc8b47a69c2a7ee60.idx
|
|
27
|
-
/home/bds/kukuy/.git/hooks/pre-rebase.sample
|
|
28
|
-
/home/bds/kukuy/.git/hooks/applypatch-msg.sample
|
|
29
|
-
/home/bds/kukuy/.git/hooks/pre-commit.sample
|
|
30
|
-
/home/bds/kukuy/.git/hooks/commit-msg.sample
|
|
31
|
-
/home/bds/kukuy/.git/hooks/pre-push.sample
|
|
32
|
-
/home/bds/kukuy/.git/hooks/pre-merge-commit.sample
|
|
33
|
-
/home/bds/kukuy/.git/hooks/pre-receive.sample
|
|
34
|
-
/home/bds/kukuy/.git/hooks/fsmonitor-watchman.sample
|
|
35
|
-
/home/bds/kukuy/.git/hooks/post-update.sample
|
|
36
|
-
/home/bds/kukuy/.git/hooks/push-to-checkout.sample
|
|
37
|
-
/home/bds/kukuy/.git/hooks/update.sample
|
|
38
|
-
/home/bds/kukuy/.git/hooks/prepare-commit-msg.sample
|
|
39
|
-
/home/bds/kukuy/.git/hooks/pre-applypatch.sample
|
|
40
|
-
/home/bds/kukuy/.git/info/exclude
|
|
41
|
-
/home/bds/kukuy/.git/logs/refs/remotes/origin/HEAD
|
|
42
|
-
/home/bds/kukuy/.git/logs/refs/heads/main
|
|
43
|
-
/home/bds/kukuy/.git/logs/HEAD
|
|
44
|
-
/home/bds/kukuy/.git/HEAD
|
|
45
|
-
/home/bds/kukuy/.git/description
|
|
46
|
-
/home/bds/kukuy/.git/packed-refs
|
|
47
|
-
/home/bds/kukuy/.git/config
|
|
48
|
-
/home/bds/kukuy/.git/index
|
|
49
|
-
/home/bds/kukuy/node_modules/ws/lib/stream.js
|
|
50
|
-
/home/bds/kukuy/node_modules/ws/lib/validation.js
|
|
51
|
-
/home/bds/kukuy/node_modules/ws/lib/receiver.js
|
|
52
|
-
/home/bds/kukuy/node_modules/ws/lib/sender.js
|
|
53
|
-
/home/bds/kukuy/node_modules/ws/lib/buffer-util.js
|
|
54
|
-
/home/bds/kukuy/node_modules/ws/lib/limiter.js
|
|
55
|
-
/home/bds/kukuy/node_modules/ws/lib/permessage-deflate.js
|
|
56
|
-
/home/bds/kukuy/node_modules/ws/lib/event-target.js
|
|
57
|
-
/home/bds/kukuy/node_modules/ws/lib/websocket-server.js
|
|
58
|
-
/home/bds/kukuy/node_modules/ws/lib/extension.js
|
|
59
|
-
/home/bds/kukuy/node_modules/ws/lib/constants.js
|
|
60
|
-
/home/bds/kukuy/node_modules/ws/lib/subprotocol.js
|
|
61
|
-
/home/bds/kukuy/node_modules/ws/lib/websocket.js
|
|
62
|
-
/home/bds/kukuy/node_modules/ws/README.md
|
|
63
|
-
/home/bds/kukuy/node_modules/ws/package.json
|
|
64
|
-
/home/bds/kukuy/node_modules/ws/wrapper.mjs
|
|
65
|
-
/home/bds/kukuy/node_modules/ws/LICENSE
|
|
66
|
-
/home/bds/kukuy/node_modules/ws/index.js
|
|
67
|
-
/home/bds/kukuy/node_modules/ws/browser.js
|
|
68
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/examples/ejemplo_practico.js
|
|
69
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/examples/ejemplos_nuevas_funcionalidades.js
|
|
70
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/examples/ejemplo_eliminar_por_id.js
|
|
71
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/examples/ejemplos_eliminacion_v2.js
|
|
72
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/examples/ejemplos_prioridades.js
|
|
73
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/examples/ejemplos_eliminacion.js
|
|
74
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/examples/ejemplos_filtros.js
|
|
75
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/examples/ejemplos_utilidad.js
|
|
76
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/examples/ejemplos_basicos.js
|
|
77
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/README.md
|
|
78
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/package.json
|
|
79
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/LICENSE
|
|
80
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/hooks.js
|
|
81
|
-
/home/bds/kukuy/node_modules/jerk-hooked-lib/hooked.png
|
|
82
|
-
/home/bds/kukuy/node_modules/.package-lock.json
|
|
83
|
-
/home/bds/kukuy/webpage/README.md
|
|
84
|
-
/home/bds/kukuy/webpage/index.html
|
|
85
|
-
/home/bds/kukuy/kukuy.js
|
|
86
|
-
/home/bds/kukuy/load_test.py
|
|
87
|
-
/home/bds/kukuy/CHANGELOG.md
|
|
88
|
-
/home/bds/kukuy/README.md
|
|
89
|
-
/home/bds/kukuy/stress-test.js
|
|
90
|
-
/home/bds/kukuy/package.json
|
|
91
|
-
/home/bds/kukuy/servers_real.json
|
|
92
|
-
/home/bds/kukuy/LICENSE
|
|
93
|
-
/home/bds/kukuy/start-roundrobin.sh
|
|
94
|
-
/home/bds/kukuy/restart-balancer.sh
|
|
95
|
-
/home/bds/kukuy/start-iphash.sh
|
|
96
|
-
/home/bds/kukuy/routes.json
|
|
97
|
-
/home/bds/kukuy/.gitignore
|
|
98
|
-
/home/bds/kukuy/kukuy.workspace
|
|
99
|
-
/home/bds/kukuy/servers.json
|
|
100
|
-
/home/bds/kukuy/captura.png
|
package/.ctagsd/tags.db
DELETED
|
Binary file
|
package/CHANGELOG.md
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
# CHANGELOG
|
|
2
|
-
|
|
3
|
-
## [Versión 1.3.0] - 2026-01-24
|
|
4
|
-
|
|
5
|
-
### Added
|
|
6
|
-
- Implementación completa de KUKUY
|
|
7
|
-
- Arquitectura modular según documento de arquitectura
|
|
8
|
-
- Soporte para HTTP y HTTPS
|
|
9
|
-
- Sistema de hooks y filters usando jerk-hooked-lib
|
|
10
|
-
- Configuración mediante variables de entorno
|
|
11
|
-
- Algoritmo RoundRobin para distribución de carga
|
|
12
|
-
- Gestión de pool de servidores backend
|
|
13
|
-
- Sistema de logging detallado para servidores online/offline
|
|
14
|
-
- Verificación de salud de servidores backend
|
|
15
|
-
- Soporte para rutas y paths configurables
|
|
16
|
-
- Implementación de todos los componentes arquitectónicos:
|
|
17
|
-
- Core (Balancer, ServerPool)
|
|
18
|
-
- Algoritmos (LoadBalancingAlgorithm, RoundRobinAlgorithm, IPHashAlgorithm, AlgorithmManager)
|
|
19
|
-
- Configuración (ConfigManager, RouteLoader)
|
|
20
|
-
- Protocolos (HttpBalancer, HttpsBalancer)
|
|
21
|
-
- Extensibilidad (HookManager, FilterChain)
|
|
22
|
-
- Utilidades (Logger, HealthChecker, MetricsCollector, BalancerLogger)
|
|
23
|
-
- Página web de dashboard para el balanceador
|
|
24
|
-
- Script de pruebas de estrés
|
|
25
|
-
- Documentación completa del proyecto
|
|
26
|
-
- CachingFilter para almacenamiento en caché de respuestas
|
|
27
|
-
- Sistema de reintentos automático con redirección inteligente
|
|
28
|
-
- Algoritmo RoundRobin mejorado con detección de servidores online/offline
|
|
29
|
-
- Sistema de plugins para algoritmos de balanceo de carga
|
|
30
|
-
- Algoritmo IPHash para persistencia de sesión basada en IP
|
|
31
|
-
- Sistema de configuración para seleccionar algoritmo de balanceo dinámicamente
|
|
32
|
-
- Implementación corregida del algoritmo IPHash con asociación persistente IP-servidor
|
|
33
|
-
- Sistema de logging detallado para seguimiento de asignación IP-servidor
|
|
34
|
-
- Métricas profesionales con estadísticas detalladas por servidor
|
|
35
|
-
- Endpoint API dedicado para estadísticas por servidor (/api/server-stats)
|
|
36
|
-
- Estadísticas avanzadas por servidor incluyendo percentiles, tiempos de respuesta detallados y códigos de respuesta
|
|
37
|
-
- Sistema de recolección de métricas por servidor con tiempos de respuesta individuales
|
|
38
|
-
- Panel web actualizado con visualización de estadísticas por servidor
|
|
39
|
-
|
|
40
|
-
### Changed
|
|
41
|
-
- Actualización del sistema de logging para distinguir entre servidores online y offline
|
|
42
|
-
- Implementación de logging estructurado con metadatos
|
|
43
|
-
- Mejora en la detección y manejo de servidores caídos
|
|
44
|
-
- Optimización del algoritmo de selección de servidores
|
|
45
|
-
- Integración del CachingFilter en la cadena de filtros
|
|
46
|
-
- Redirección automática de solicitudes a servidores disponibles cuando uno está offline
|
|
47
|
-
- Implementación de lógica de reintento con failover automático
|
|
48
|
-
- Transformación del algoritmo RoundRobin en plugin configurable
|
|
49
|
-
- Implementación de sistema de plugins para algoritmos de balanceo
|
|
50
|
-
- Corrección del algoritmo IPHash para mantener asociación persistente IP-servidor
|
|
51
|
-
- Mejora en la consistencia del algoritmo IPHash con tolerancia a fallos
|
|
52
|
-
- Reemplazo del sistema de métricas básico por métricas profesionales con estadísticas por servidor
|
|
53
|
-
- Actualización del panel web para mostrar estadísticas detalladas por servidor
|
|
54
|
-
- Mejora en la estructura de datos para almacenar métricas detalladas por servidor
|
|
55
|
-
|
|
56
|
-
### Fixed
|
|
57
|
-
- Corrección en el uso de la librería jerk-hooked-lib
|
|
58
|
-
- Implementación correcta de los componentes faltantes según arquitectura
|
|
59
|
-
- Manejo adecuado de errores de conexión a servidores backend
|
|
60
|
-
- Registro preciso de eventos de servidor online/offline
|
|
61
|
-
- Problema de redirección automática cuando un target está offline
|
|
62
|
-
- Problema de consistencia en el algoritmo IPHash para mantener la asociación IP-servidor
|
|
63
|
-
|
|
64
|
-
### Security
|
|
65
|
-
- Implementación de sistema de logging seguro para auditoría de eventos
|
|
66
|
-
- Registro de intentos de conexión a servidores caídos
|
|
67
|
-
|
|
68
|
-
## [Versión 1.4.0] - 2026-01-24
|
|
69
|
-
|
|
70
|
-
### Added
|
|
71
|
-
- Implementación de RPS acumulado e instantáneo para monitoreo de rendimiento en tiempo real
|
|
72
|
-
- Sistema de redirección automática cuando un servidor está offline
|
|
73
|
-
- Algoritmo RoundRobin con reintento automático y failover inteligente
|
|
74
|
-
- Visualización de RPS instantáneo en el panel web del dashboard
|
|
75
|
-
- Sistema de reintento con redirección inteligente para manejo de servidores caídos
|
|
76
|
-
- Métricas profesionales con estadísticas detalladas por servidor
|
|
77
|
-
- Endpoint API dedicado para estadísticas por servidor (/api/server-stats)
|
|
78
|
-
- Estadísticas avanzadas por servidor incluyendo percentiles, tiempos de respuesta detallados y códigos de respuesta
|
|
79
|
-
- Sistema de recolección de métricas por servidor con tiempos de respuesta individuales
|
|
80
|
-
- Panel web actualizado con visualización de estadísticas por servidor
|
|
81
|
-
- Implementación de lógica para detectar y actualizar el estado real de los servidores en tiempo real
|
|
82
|
-
|
|
83
|
-
### Changed
|
|
84
|
-
- Implementación de sistema de reintento con redirección inteligente
|
|
85
|
-
- Actualización del panel web para mostrar RPS acumulado e instantáneo
|
|
86
|
-
- Mejora en la estructura de datos para almacenar métricas detalladas por servidor
|
|
87
|
-
- Actualización del panel web para mostrar estadísticas detalladas por servidor
|
|
88
|
-
- Implementación de RPS acumulado e instantáneo para monitoreo de rendimiento
|
|
89
|
-
- Mejora en la detección y manejo de servidores caídos
|
|
90
|
-
|
|
91
|
-
### Fixed
|
|
92
|
-
- Problema de conteo de servidores activos para que no exceda el número de servidores verificados como online
|
|
93
|
-
- Implementación de lógica para detectar y actualizar el estado real de los servidores
|
|
94
|
-
- Problema de redirección automática cuando un target está offline
|
|
95
|
-
- Problema de consistencia en el algoritmo IPHash para mantener la asociación IP-servidor
|
|
96
|
-
- Manejo adecuado de errores de conexión a servidores backend
|
|
97
|
-
- Registro preciso de eventos de servidor online/offline
|
|
98
|
-
|
|
99
|
-
### Known Issues
|
|
100
|
-
- El dashboard no refleja en tiempo real cuando servidores se vuelven offline o se levantan después de iniciar el balanceador
|
|
101
|
-
- La información de estado de los servidores puede no actualizar inmediatamente cuando un servidor backend cambia de estado
|