๐ Gato GraphQL v18.0 uitgebracht: caching van geparseerde queries, verbeterde beveiliging en een nieuwe Gemini-vertaalprovider
Gato GraphQL v18.0 is beschikbaar ๐
Deze release is merkbaar sneller en gebruikt aanzienlijk minder geheugen, laat je geparseerde GraphQL-queries op schijf cachen om herhaald parse- en compilewerk over te slaan, versterkt de standaard capability-controles voor de velden Email Sender, HTTP Client en Environment Variable, levert diverse bugfixes en een aantal beveiligingspatches, en voegt een nieuwe Gemini-vertaalprovider toe plus configureerbare Request- en Connection-time-outs voor vertalingen.
Lees verder voor de hoogtepunten.
โก Cache geparseerde GraphQL-queries op schijf
Elk verzoek moet de GraphQL-query parsen, valideren tegen het schema en een uitvoeringsplan bouwen. Vanaf v18 kun je de voorbereide query op schijf bewaren en bij volgende uitvoeringen opnieuw laden โ het herhaalde parse- en compilewerk wordt volledig overgeslagen.
Activeer dit op de pagina Settings, onder Server Configuration > Caching > Cache parsed GraphQL queries?:

Dit cachet de voorbereiding van de query (parsen en compileren), niet de responsdata. Voor HTTP-caching van responses, zie HTTP-caching toevoegen.
Bestanden worden opgeslagen in de cache-map van de plugin. Als de plugin-map niet beschrijfbaar is, kun je de cache ergens anders laten opslaan โ zie De cache-map overschrijven.
โก๏ธ Volledige details in Geparseerde GraphQL-queries cachen.
โก Sneller en slanker โ over de hele linie
Naast de cache voor geparseerde queries zijn de plugininternen in v18 grondig herzien: elk GraphQL-verzoek is merkbaar sneller en verbruikt aanzienlijk minder geheugen.
De winst is globaal โ hij geldt voor elke query, elke directive, elke persisted query โ en is vooral zichtbaar bij grote schema's, lange queries en sites die veel GraphQL-verzoeken per pagina uitvoeren (bijv. headless WordPress, interne API's).
Grote sites die eerder tegen PHP-geheugenlimieten aanliepen of trage responstijden ervoeren, zullen een duidelijk verschil merken zonder dat er configuratiewijzigingen nodig zijn โ update gewoon de plugin.
๐ Verbeterde standaardbeveiliging
Drie gebieden hebben strengere standaardinstellingen gekregen zodat de plugin direct veiliger is na installatie.
Email Sender โ Vereiste capability
De _sendEmail-mutatie kan nu worden beperkt tot gebruikers met een specifieke WordPress-capability, geconfigureerd onder Plugin Configuration > Email Sender.

Standaard ingesteld op manage_options zodat abonnees de mutatie niet kunnen gebruiken om willekeurige ontvangers te spammen. Selecteer (any logged-in user) om de controle uit te schakelen.
HTTP Client โ Vereiste capability voor toegang tot interne URL's
Sommige URL's verwijzen naar interne adressen (127.0.0.1, link-local-bereiken, cloud-metadata-endpoints, enz.) die interne services kunnen blootstellen als ze bereikt worden. Een nieuwe instelling onder Plugin Configuration > HTTP Client beperkt het bereiken van die adressen tot gebruikers met een specifieke WordPress-capability.

Standaard ingesteld op manage_options zodat niet-beheerders geen interne services kunnen bereiken via de HTTP Client-velden. Selecteer (any logged-in user) om de controle uit te schakelen.
Environment Variables โ denylist voor niet-beheerders
Het veld _env vereiste al een expliciete allow-list, en die lijst is standaard leeg. v18 voegt een extra veiligheidslaag toe voor niet-beheerders: zelfs als deze namen op de allow-list staan in de configuratie, wordt hun toegang geweigerd.
Altijd geweigerd (WordPress-geheimen):
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.
Ook geweigerd โ elke variabele waarvan de naam het volgende bevat: PASSWORD, PASSWD, SECRET, PRIVATE_KEY, API_KEY, APIKEY, ACCESS_KEY, ACCESS_TOKEN, AUTH_TOKEN, BEARER, CREDENTIAL, SALT.
Beheerders hebben nog steeds volledige toegang.
โก๏ธ Zie de sectie Beveiliging van de documentatie voor de volledige lijst.
๐ Vertalingen: nieuwe Gemini-provider
De directive @strTranslate ondersteunt nu Google Gemini als vertaalprovider, naast ChatGPT, Claude, DeepL, DeepSeek, Google Translate, Mistral, OpenRouter en self-hosted LLM's.
Vertaal elk String-veld naar de gewenste taal:
{
posts {
title @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
content @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
}
}De volgende Gemini-modellen worden ondersteund:
- 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)
Configureer je Google API-sleutel (via Settings, wp-config.php of een omgevingsvariabele), kies een model en je kunt beginnen met vertalen.
โก๏ธ Zie de referentiedocumentatie voor Gemini Translation.
โฑ๏ธ Vertalingen: time-outs voor Request en Connection
Het vertalen van een lang document via een externe provider kan traag zijn, en een vastgelopen upstream zou een PHP-worker bezet houden totdat PHP zelf het verzoek afbreekt โ wat resulteert in een generieke HTTP 502/504 of een lege pagina met "Maximum execution time exceeded".
v18 biedt twee time-outinstellingen onder Plugin Configuration > Translation:
- Request timeout: maximale tijd (in seconden) om te wachten op de volledige response van de vertaalprovider.
- Connection timeout: maximale tijd (in seconden) om te wachten bij het opzetten van de verbinding.

Stel beide waarden iets lager in dan de max_execution_time van je server, zodat een vastgelopen vertaling netjes mislukt met een gecontroleerde foutmelding in de logs in plaats van de generieke server-time-out te activeren. Als je vertalingen regelmatig een time-out geven, verhoog dan beide waarden en de max_execution_time van je server tegelijkertijd.
๐ Bugfixes en beveiligingspatches
Naast de nieuwe functies hierboven levert v18.0 ook diverse bugfixes en patches voor een aantal beveiligingslekken. We raden je sterk aan zo snel mogelijk bij te werken naar v18.
Updaten
De release wordt nu uitgerold via de WordPress-plugindirectory en je klantenarchiefpagina. Update via je WordPress-beheerpaneel (Plugins โ Updates) of download de nieuwste versie vanuit je account.
Zie de changelog voor de volledige lijst met wijzigingen.
Geniet van v18! ๐