Novedades
Novedades
Puede encontrar información más detallada sobre los cambios en cada versión directamente en GitHub Releases.
v2.0.2
- 🔒 Refuerzo de seguridad: Se cerraron varios hallazgos de análisis estático — las claves de caché del pool de autenticación directa ahora usan HMAC (en lugar de un SHA-256 simple), una comprobación explícita de contención para el servicio de archivos estáticos, escape HTML del texto de estado de inicio de sesión del SSE Tester, una lista blanca de esquemas de URL para los enlaces de resultados de búsqueda del sitio de documentación, y permisos de mínimo privilegio en el workflow de CI.
- 📦 Actualización de dependencias: Se actualizaron todas las dependencias de Go, incluyendo
gin-gonic/gina v1.12.0 ylib/pqa v1.12.3 (ahora requiere Go 1.25). - 🌐 3 idiomas nuevos: El sitio de documentación ya está disponible en polaco, ucraniano y griego — 10 idiomas en total.
v2.0.1
- 🔒 Corrección de seguridad: Se actualizó la dependencia transitiva de HTTP/3
quic-goa v0.59.1, cerrando una vulnerabilidad de expansión de trailers QPACK que podía permitir a un peer malicioso agotar la memoria del servidor o del cliente. - 🎨 Mejoras en el sitio de documentación: Nuevo selector de tema claro/oscuro/automático y selector de idioma solo con iconos, enlaces de icono a GitHub/Apoyo en la barra de navegación, corrección de los datos estructurados JSON-LD codificados por duplicado, y un
llms.txtampliado.
v2.0.0
- 🔒 Valores seguros por defecto (con cambios incompatibles):
DB_SSLMODEahora tiene por defectorequire,ALLOWED_ORIGINSya no usa*por defecto, yJWT_SECRETdebe tener al menos 32 bytes. Los despliegues existentes deben revisar su configuración antes de actualizar. - 🧹 Limpieza de elementos obsoletos: Se eliminaron las rutas de redirección
/api/…y/sse/…y el alias JSON-RPC obsoletologin. Use directamente/{prefix}/:database/…yget_jwt. - 🛡️ Autenticación y manejo de errores más estrictos: Un nuevo límite de inicio de sesión por IP (
LOGIN_RATE_LIMIT_PER_IP) cierra una brecha de credential spraying, y los errores de herramientas MCP ya no exponen texto de error de PostgreSQL sin procesar por defecto (puede reactivarse conMCP_SQL_ERROR_DETAIL). - ⚙️ Límites de conexión configurables: El límite del pool de conexiones de autenticación directa ahora es configurable mediante
DIRECT_POOL_LIMIT. - 🔑 Soporte para IdP externos (BYO JWT): Las nuevas opciones
JWT_ISSUER,JWT_AUDIENCEyJWT_LEEWAYvinculan los tokens emitidos a un emisor/audiencia específicos y permiten ajustar la tolerancia de desfase horario. - 🧰 Nuevas herramientas: Un JWT Getter (
/tools/get-jwt) y un SSE Tester (/tools/test-sse) independientes se unen al Explorador para pruebas manuales rápidas. - 🐛 Correcciones de fiabilidad: Se corrigió un cierre de SSE que podía quedar bloqueado y un error en la recuperación de conexiones muertas que podía dejar al servidor incapaz de reconectar con PostgreSQL.
- 🧪 Refuerzo de CI: Se añadieron
golangci-lint, el detector de carreras de Go ygovulnchecka cada build, junto con una mayor cobertura de pruebas. - 📦 Proceso de publicación: Se añadió
CHANGELOG.mdy se dividió el flujo de publicación enmake release-local(compilación y verificación) ymake release(etiquetado, publicación y actualización del tap de Homebrew).
v1.3.0
- 🌐 Explorador PgArachne – PWA moderno: Renovación visual y funcional completa – tema oscuro/claro (automático), diseño de tarjetas adaptable, resaltado de sintaxis JSON, botón de copiar al portapapeles, mejor UX de autenticación (pestañas de contraseña/token), soporte de instalación PWA (manifiesto, iconos, service worker), enlaces compartibles mediante el parámetro
?url=…. - 🛠️ Soporte para Model Context Protocol (MCP): Nuevo endpoint
/{prefix}/{db}/mcpcon métodos estándarresources/list,resources/read,prompts/list,prompts/get– completamente respaldado por funciones de PostgreSQL y reutilizando la autenticación y el cambio de roles existentes. - 🔧 Prefijo de API configurable: El valor predeterminado cambió a
/db/{database}/jsonrpcy/db/{database}/sse, las rutas antiguas/api/…y/sse/…se mantienen como redirecciones 307 por compatibilidad. Controlado mediante la variable de entornoAPI_PREFIX. - 🛡️ Protección de idempotencia: Campo opcional
idempotencyKeyen solicitudes JSON-RPC – detección automática de duplicados (HTTP 409 + código de error en caso de colisión) usandopgarachne.save_idempotency_key(). - 📚 Mejoras en la documentación: Nueva sección /tools/ con tarjetas (Explorador + próxima barra de herramientas para macOS), nueva página “Architectural Decisions”, SECURITY.md con instrucciones para reportar vulnerabilidades, mejor tipografía en todos los idiomas gracias a TypoLima, soporte mejorado para la página 404 en GitHub Pages.
- 📝 Cambio de nombre del método de inicio de sesión: El método JSON-RPC
loginpasó a llamarseget_jwt(el nombre antiguo se mantiene como alias obsoleto con advertencia en los registros). - 📊 Limpieza de registros (logging): Al registrar en un archivo, la consola muestra solo información mínima de inicio → salida más limpia en entornos de producción/docker.
v1.2.0
- 🛡️ Seguridad: La validación del token de acceso se realiza antes de establecer una conexión con la base de datos. Protección mejorada contra la suplantación de IP (añadida la configuración
TRUSTED_PROXIES) y ocultación de errores internos de la base de datos al usuario final. - 📊 Métricas aisladas: El endpoint de Prometheus
/metricsse trasladó de la API pública a su propio puerto seguro (por defecto, disponible solo en127.0.0.1:9090). - 📦 Nueva opción de instalación: El proyecto ahora tiene un tap de Homebrew oficial para macOS y Linux. Las compilaciones están firmadas y generadas a través de GoReleaser.
- 📚 Documentación rediseñada: Aspecto completamente nuevo basado en el framework Hugo. Se ha añadido búsqueda rápida de texto completo, opción de copiar código y ejemplos de despliegue en producción (Nginx hardening, BYO JWT).
- ⚙️ Gestión de demonio mejorada: Se agregó soporte para la configuración de la ruta personalizada de
PID_FILE.
v1.1.0
- 🔌 API unificada: Llamadas a través de
POST /api/<db>(el método invocado se especifica en el cuerpo JSON-RPC). - ⚡ Notificaciones en tiempo real: Nuevo endpoint
GET /sse/<db>?channels=...para escuchar eventos de la base de datos con soporte multicanal. - 📈 Observabilidad: Métricas detalladas de Prometheus para HTTP, auth, JSON-RPC y SSE.
- 🏋️ Gran mejora de estabilidad: Protección contra clientes lentos, tiempos de espera estrictos y limpieza automática de conexiones.