Nouveautés
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/ginvers la v1.12.0 etlib/pqvers 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-govers 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.txtenrichi.
v2.0.0
- 🔒 Valeurs par défaut sécurisées (rupture de compatibilité) :
DB_SSLMODEvaut désormaisrequirepar défaut,ALLOWED_ORIGINSne vaut plus*par défaut, etJWT_SECRETdoit 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ètelogin. Utilisez directement/{prefix}/:database/…etget_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 viaMCP_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_AUDIENCEetJWT_LEEWAYlient 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 degovulncheckà chaque build, ainsi qu’une couverture de tests étendue. - 📦 Processus de publication : Ajout de
CHANGELOG.mdet scission du workflow de publication enmake release-local(build et vérification) etmake 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}/mcpavec les méthodes standardsresources/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}/jsonrpcet/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’environnementAPI_PREFIX. - 🛡️ Protection d’idempotence: Champ optionnel
idempotencyKeydans les requêtes JSON-RPC – détection automatique des doublons (HTTP 409 + code d’erreur en cas de collision) viapgarachne.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
logina été renommée enget_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
/metricsa été déplacé de l’API publique vers son propre port sécurisé (par défaut, disponible uniquement sur127.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.