đ Lancement de Gato GraphQL v18.0 : Mise en cache des requĂȘtes parsĂ©es, sĂ©curitĂ© renforcĂ©e et nouveau fournisseur de traduction Gemini
Gato GraphQL v18.0 est disponible đ
Cette version est notablement plus rapide et utilise considĂ©rablement moins de mĂ©moire, vous permet de mettre en cache les requĂȘtes GraphQL parsĂ©es sur disque pour Ă©viter le parsage et la compilation rĂ©pĂ©tĂ©s, renforce les vĂ©rifications de capacitĂ© par dĂ©faut pour les champs Email Sender, HTTP Client et Environment Variable, inclut plusieurs corrections de bugs et quelques correctifs de sĂ©curitĂ©, et ajoute un nouveau fournisseur de traduction Gemini ainsi que des dĂ©lais configurables de Request et Connection pour les traductions.
Lisez la suite pour découvrir les nouveautés.
⥠Mettre en cache les requĂȘtes GraphQL parsĂ©es sur disque
Chaque requĂȘte doit parser la requĂȘte GraphQL, la valider par rapport au schĂ©ma et construire le plan d'exĂ©cution. v18 peut dĂ©sormais persister la requĂȘte prĂ©parĂ©e sur disque et la recharger lors des exĂ©cutions ultĂ©rieures â en sautant entiĂšrement le travail rĂ©pĂ©tĂ© de parsage et de compilation.
Activez-le sur la page Settings, sous Server Configuration > Caching > Cache parsed GraphQL queries? :

Cela met en cache la prĂ©paration de la requĂȘte (parsage et compilation), pas les donnĂ©es de rĂ©ponse. Pour la mise en cache HTTP des rĂ©ponses, consultez Ajout de la mise en cache HTTP.
Les fichiers sont placĂ©s dans le rĂ©pertoire de cache du plugin. Si le dossier du plugin n'est pas accessible en Ă©criture, vous pouvez pointer le cache ailleurs â consultez Remplacement du dossier de cache.
âĄïž Tous les dĂ©tails dans Mise en cache des requĂȘtes GraphQL parsĂ©es.
⥠Plus rapide et plus lĂ©ger â Ă tous les niveaux
Au-delĂ du cache des requĂȘtes parsĂ©es, les composants internes du plugin ont Ă©tĂ© revus en profondeur dans v18 : chaque requĂȘte GraphQL est notablement plus rapide et consomme considĂ©rablement moins de mĂ©moire.
Les gains sont globaux â ils s'appliquent Ă chaque requĂȘte, chaque directive, chaque persisted query â et ils sont particuliĂšrement visibles sur les grands schĂ©mas, les longues requĂȘtes, et les sites qui exĂ©cutent de nombreuses requĂȘtes GraphQL par page (p. ex. WordPress headless, APIs internes).
Les grands sites qui se heurtaient auparavant aux limites mĂ©moire PHP ou constataient des temps de rĂ©ponse lents devraient ressentir une vraie diffĂ©rence, sans aucun changement de configuration requis â il suffit de mettre Ă jour le plugin.
đ Valeurs par dĂ©faut de sĂ©curitĂ© renforcĂ©es
Trois domaines ont reçu des valeurs par défaut plus strictes afin que le plugin soit plus sûr d'emblée.
Email Sender â CapacitĂ© requise
La mutation _sendEmail peut dĂ©sormais ĂȘtre restreinte aux utilisateurs disposant d'une capacitĂ© WordPress spĂ©cifique, configurĂ©e sous Plugin Configuration > Email Sender.

Par défaut manage_options afin que les abonnés ne puissent pas utiliser la mutation pour envoyer des spams à des destinataires arbitraires. Sélectionnez (any logged-in user) pour désactiver la vérification.
HTTP Client â CapacitĂ© requise pour accĂ©der aux URLs internes
Certaines URLs résolvent vers des adresses internes (127.0.0.1, plages link-local, endpoints cloud-metadata, etc.) qui peuvent exposer des services internes si elles sont atteintes. Un nouveau paramÚtre sous Plugin Configuration > HTTP Client restreint le ciblage de ces adresses aux utilisateurs disposant d'une capacité WordPress spécifique.

Par défaut manage_options afin que les utilisateurs non-admin ne puissent pas atteindre les services internes via les champs HTTP Client. Sélectionnez (any logged-in user) pour désactiver la vérification.
Environment Variables â liste de refus pour les utilisateurs non-admin
Le champ _env nĂ©cessitait dĂ©jĂ une allow-list explicite, et cette liste est vide par dĂ©faut. v18 ajoute un filet de sĂ©curitĂ© supplĂ©mentaire pour les utilisateurs non-admin : mĂȘme si ces noms figurent dans la allow-list de la configuration, l'accĂšs leur est refusĂ©.
Toujours refusés (secrets WordPress) :
AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALT, DB_NAME, DB_USER, DB_PASSWORD, DB_HOST, DB_CHARSET, DB_COLLATE.
Ăgalement refusĂ©s â toute variable dont le nom contient : PASSWORD, PASSWD, SECRET, PRIVATE_KEY, API_KEY, APIKEY, ACCESS_KEY, ACCESS_TOKEN, AUTH_TOKEN, BEARER, CREDENTIAL, SALT.
Les utilisateurs admin conservent un accĂšs complet.
âĄïž Consultez la section Security de la documentation pour la liste complĂšte.
đ Traduction : nouveau fournisseur Gemini
La directive @strTranslate prend désormais en charge Google Gemini comme fournisseur de traduction, aux cÎtés de ChatGPT, Claude, DeepL, DeepSeek, Google Translate, Mistral, OpenRouter et les LLMs auto-hébergés.
Traduisez n'importe quel champ String dans la langue souhaitée :
{
posts {
title @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
content @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
}
}Les modĂšles Gemini suivants sont pris en charge :
- Gemini 2.0 Flash (
gemini-2.0-flash) - Gemini 2.0 Flash-Lite (
gemini-2.0-flash-lite) - Gemini 2.5 Flash (
gemini-2.5-flash) - Gemini 2.5 Flash-Lite (
gemini-2.5-flash-lite) - Gemini 2.5 Pro (
gemini-2.5-pro) - Gemini 3.1 Flash-Lite (
gemini-3.1-flash-lite)
Configurez votre clĂ© API Google (via Settings, wp-config.php, ou une variable d'environnement), choisissez un modĂšle, et vous ĂȘtes prĂȘt Ă traduire.
âĄïž Consultez la documentation de rĂ©fĂ©rence de Gemini Translation.
â±ïž Traduction : dĂ©lais de Request et Connection
La traduction d'un long document via un fournisseur tiers peut ĂȘtre lente, et un upstream bloquĂ© retiendrait sinon un worker PHP jusqu'Ă ce que PHP lui-mĂȘme tue la requĂȘte â produisant un HTTP 502 / 504 gĂ©nĂ©rique ou une page blanche "Maximum execution time exceeded".
v18 expose deux paramÚtres de délai sous Plugin Configuration > Translation :
- Request timeout : durée maximale (en secondes) d'attente pour la réponse complÚte du fournisseur de traduction.
- Connection timeout : durée maximale (en secondes) d'attente lors de l'établissement de la connexion.

Maintenez les deux valeurs légÚrement en dessous du max_execution_time de votre serveur afin qu'une traduction bloquée échoue proprement avec une erreur contrÎlée dans les logs plutÎt que de déclencher le délai générique du serveur. Si vos traductions expirent réguliÚrement, augmentez ces deux valeurs et le max_execution_time de votre serveur en tandem.
đ Corrections de bugs et correctifs de sĂ©curitĂ©
En plus des nouvelles fonctionnalités ci-dessus, v18.0 inclut également plusieurs corrections de bugs et corrige quelques vulnérabilités de sécurité. Nous recommandons vivement de mettre à jour vers v18 dÚs que possible.
Mise Ă jour
La version est dĂ©ployĂ©e maintenant via le rĂ©pertoire de plugins WordPress et votre tableau de bord client. Mettez Ă jour depuis votre administration WordPress (Plugins â Updates), ou tĂ©lĂ©chargez la derniĂšre version depuis votre compte.
Consultez le changelog pour la liste complĂšte des changements.
Profitez de v18 ! đ