Nouveautés

5 min de lecture

Nouveautés

De plus amples informations sur les changements apportés à chaque version se trouvent directement sur GitHub Releases.

v2.0.2

  • 🔒 Renforcement de la sécurité : Correction de plusieurs constats d’analyse statique — les clés de cache du pool d’authentification directe utilisent désormais HMAC (au lieu d’un simple SHA-256), une vérification explicite de confinement pour le service de fichiers statiques, un échappement HTML du texte de statut de connexion du SSE Tester, une liste blanche de schémas d’URL pour les liens de résultats de recherche du site de documentation, et des permissions de moindre privilège sur le workflow CI.
  • 📦 Mises à jour des dépendances : Mise à jour de toutes les dépendances Go, notamment gin-gonic/gin vers la v1.12.0 et lib/pq vers la v1.12.3 (nécessite désormais Go 1.25).
  • 🌐 3 nouvelles langues : Le site de documentation est désormais disponible en polonais, ukrainien et grec — 10 langues au total.

v2.0.1

  • 🔒 Correctif de sécurité : Mise à jour de la dépendance transitive HTTP/3 quic-go vers la v0.59.1, comblant une vulnérabilité d’expansion des trailers QPACK qui pouvait permettre à un pair malveillant d’épuiser la mémoire du serveur ou du client.
  • 🎨 Améliorations du site de documentation : Nouveau sélecteur de thème clair/sombre/auto et sélecteur de langue à icônes, liens icônes GitHub/Soutien dans la barre de navigation, correction des données structurées JSON-LD doublement encodées, et un llms.txt enrichi.

v2.0.0

  • 🔒 Valeurs par défaut sécurisées (rupture de compatibilité) : DB_SSLMODE vaut désormais require par défaut, ALLOWED_ORIGINS ne vaut plus * par défaut, et JWT_SECRET doit comporter au moins 32 octets. Les déploiements existants doivent revoir leur configuration avant la mise à jour.
  • 🧹 Nettoyage des éléments legacy : Suppression des routes de redirection /api/… et /sse/… ainsi que de l’alias JSON-RPC obsolète login. Utilisez directement /{prefix}/:database/… et get_jwt.
  • 🛡️ Authentification et gestion des erreurs renforcées : Une nouvelle limite de connexion par IP (LOGIN_RATE_LIMIT_PER_IP) comble une faille de credential spraying, et les erreurs des outils MCP ne révèlent plus le texte brut des erreurs PostgreSQL par défaut (réactivable via MCP_SQL_ERROR_DETAIL).
  • ⚙️ Limites de connexion configurables : La limite du pool de connexions en authentification directe est désormais configurable via DIRECT_POOL_LIMIT.
  • 🔑 Prise en charge des IdP externes (BYO JWT) : Les nouveaux paramètres JWT_ISSUER, JWT_AUDIENCE et JWT_LEEWAY lient les jetons émis à un émetteur/public spécifique et permettent d’ajuster la tolérance de décalage d’horloge.
  • 🧰 Nouveaux outils : Un JWT Getter (/tools/get-jwt) et un SSE Tester (/tools/test-sse) autonomes rejoignent l’Explorateur pour des tests manuels rapides.
  • 🐛 Corrections de fiabilité : Correction d’un blocage à l’arrêt du SSE et d’un bug de récupération des connexions mortes qui pouvait empêcher durablement le serveur de se reconnecter à PostgreSQL.
  • 🧪 Renforcement de la CI : Ajout de golangci-lint, du détecteur de races Go et de govulncheck à chaque build, ainsi qu’une couverture de tests étendue.
  • 📦 Processus de publication : Ajout de CHANGELOG.md et scission du workflow de publication en make release-local (build et vérification) et make release (tag, publication, mise à jour du tap Homebrew).

v1.3.0

  • 🌐 PgArachne Explorer – PWA moderne: Refonte visuelle et fonctionnelle complète – thème sombre/clair (automatique), mise en page adaptative en cartes, coloration syntaxique JSON, bouton de copie dans le presse-papiers, meilleure UX d’authentification (onglets mot de passe/jeton), prise en charge de l’installation PWA (manifeste, icônes, service worker), liens partageables via le paramètre ?url=….
  • 🛠️ Support du Model Context Protocol (MCP): Nouvel endpoint /{prefix}/{db}/mcp avec les méthodes standards resources/list, resources/read, prompts/list, prompts/get – entièrement pris en charge par les fonctions PostgreSQL et réutilisant l’authentification et la commutation de rôles existantes.
  • 🔧 Préfixe d’API configurable: La valeur par défaut a été remplacée par /db/{database}/jsonrpc et /db/{database}/sse, les anciennes routes /api/… et /sse/… restent disponibles en tant que redirections 307 pour la compatibilité. Contrôlé par la variable d’environnement API_PREFIX.
  • 🛡️ Protection d’idempotence: Champ optionnel idempotencyKey dans les requêtes JSON-RPC – détection automatique des doublons (HTTP 409 + code d’erreur en cas de collision) via pgarachne.save_idempotency_key().
  • 📚 Améliorations de la documentation: Nouvelle section /tools/ avec des cartes (Explorateur + future barre d’outils macOS), nouvelle page “Architectural Decisions”, SECURITY.md avec instructions pour signaler les vulnérabilités, meilleure typographie dans toutes les langues grâce à TypoLima, prise en charge améliorée de la page 404 pour GitHub Pages.
  • 📝 Renommage de la méthode de connexion: La méthode JSON-RPC login a été renommée en get_jwt (l’ancien nom reste comme alias obsolète avec avertissement dans les journaux).
  • 📊 Nettoyage de la journalisation: Lors de la journalisation dans un fichier, la console n’affiche que des informations minimales de démarrage → sortie plus propre dans les environnements de production/docker.

v1.2.0

  • 🛡️ Sécurité : La validation du token d’accès s’effectue avant d’établir une connexion à la base de données. Protection améliorée contre l’usurpation d’IP (ajout du paramètre TRUSTED_PROXIES) et dissimulation des erreurs internes de la base de données à l’utilisateur final.
  • 📊 Métriques isolées : L’endpoint Prometheus /metrics a été déplacé de l’API publique vers son propre port sécurisé (par défaut, disponible uniquement sur 127.0.0.1:9090).
  • 📦 Nouvelle option d’installation : Le projet dispose désormais d’un tap Homebrew officiel pour macOS et Linux. Les builds sont signés et générés via GoReleaser.
  • 📚 Documentation repensée : Un tout nouveau design basé sur le framework Hugo. Ajout d’une recherche plein texte ultra-rapide, de la copie de code et d’exemples de déploiement en production (Nginx hardening, BYO JWT).
  • ⚙️ Gestion du démon améliorée : Ajout de la prise en charge de la configuration personnalisée du chemin PID_FILE.

v1.1.0

  • 🔌 API unifiée : Appels via POST /api/<db> (la méthode appelée est spécifiée dans le corps JSON-RPC).
  • Notifications en temps réel : Nouvel endpoint GET /sse/<db>?channels=... pour écouter les événements de la base de données avec prise en charge multicanal.
  • 📈 Observabilité : Métriques Prometheus détaillées pour HTTP, auth, JSON-RPC et SSE.
  • 🏋️ Amélioration majeure de la stabilité : Protection contre les clients lents, délais d’attente stricts et nettoyage automatique des connexions.