🚀 Wydano Gato GraphQL v18.0: cache parsowanych queries, wzmocnione bezpieczeństwo i nowy provider tłumaczeń Gemini
Gato GraphQL v18.0 jest już dostępna 🎉
Ta wersja jest zauważalnie szybsza i zużywa znacznie mniej pamięci, umożliwia cache parsowanych queries GraphQL na dysku w celu wyeliminowania powtarzanej pracy parsowania i kompilacji, wzmacnia domyślne weryfikacje capability dla pól Email Sender, HTTP Client i Environment Variable, zawiera kilka poprawek błędów i łatek bezpieczeństwa, a także dodaje nowego providera tłumaczeń Gemini oraz konfigurowalne limity czasu Request i Connection dla tłumaczeń.
Czytaj dalej, aby zapoznać się z najważniejszymi zmianami.
⚡ Cache parsowanych queries GraphQL na dysku
Każde żądanie musi przeparsować query GraphQL, zwalidować ją względem schematu i zbudować plan wykonania. W v18 można teraz utrwalić przygotowaną query na dysku i ponownie ją załadować przy kolejnych wywołaniach — całkowicie pomijając powtarzaną pracę parsowania i kompilacji.
Włącz tę opcję na stronie Settings, w sekcji Server Configuration > Caching > Cache parsed GraphQL queries?:

Opcja ta buforuje przygotowanie query (parsowanie i kompilację), a nie dane odpowiedzi. W przypadku cache HTTP odpowiedzi zapoznaj się z artykułem Dodawanie cache HTTP.
Pliki trafiają do katalogu cache wtyczki. Jeśli folder wtyczki nie ma uprawnień do zapisu, możesz wskazać inną lokalizację cache — zapoznaj się z artykułem Nadpisywanie folderu cache.
➡️ Pełne szczegóły w artykule Cache parsowanych queries GraphQL.
⚡ Szybciej i lżej — wszędzie
Poza cache parsowanych queries, wewnętrzna architektura wtyczki została gruntownie przeprojektowana w v18: każde żądanie GraphQL jest zauważalnie szybsze i zużywa znacznie mniej pamięci.
Korzyści są globalne — dotyczą każdej query, każdej dyrektywy, każdych utrwalonych queries — i są szczególnie widoczne na dużych schematach, długich queries oraz stronach wykonujących wiele żądań GraphQL na stronę (np. WordPress headless, wewnętrzne API).
Duże strony, które wcześniej napotykały limity pamięci PHP lub odnotowywały wolne czasy odpowiedzi, powinny odczuć realną różnicę bez konieczności zmiany konfiguracji — wystarczy zaktualizować wtyczkę.
🔒 Wzmocnione domyślne ustawienia bezpieczeństwa
Trzy obszary otrzymały bardziej rygorystyczne ustawienia domyślne, aby wtyczka była bezpieczniejsza od razu po instalacji.
Email Sender — Wymagana capability
Mutacja _sendEmail może być teraz ograniczona do użytkowników posiadających określoną capability WordPress, skonfigurowaną w sekcji Plugin Configuration > Email Sender.

Domyślnie ustawiona jest manage_options, aby subskrybenci nie mogli używać mutacji do spamowania dowolnych odbiorców. Wybierz (any logged-in user), aby wyłączyć weryfikację.
HTTP Client — Wymagana capability do dostępu do wewnętrznych URL
Niektóre URL rozwiązują się do adresów wewnętrznych (127.0.0.1, zakresy link-local, endpointy cloud-metadata itp.), które mogą ujawnić wewnętrzne usługi w przypadku dostępu do nich. Nowe ustawienie w sekcji Plugin Configuration > HTTP Client ogranicza dostęp do tych adresów do użytkowników posiadających określoną capability WordPress.

Domyślnie ustawiona jest manage_options, aby użytkownicy bez uprawnień administratora nie mogli uzyskiwać dostępu do wewnętrznych usług przez pola HTTP Client. Wybierz (any logged-in user), aby wyłączyć weryfikację.
Environment Variables — denylist dla użytkowników bez uprawnień administratora
Pole _env już wymagało jawnej allow-listy, a lista ta jest domyślnie pusta. V18 dodaje dodatkową warstwę bezpieczeństwa dla użytkowników bez uprawnień administratora: nawet jeśli te nazwy znajdują się na allow-liście w konfiguracji, dostęp do nich jest im blokowany.
Zawsze blokowane (sekrety 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.
Również blokowane — każda zmienna, której nazwa zawiera: PASSWORD, PASSWD, SECRET, PRIVATE_KEY, API_KEY, APIKEY, ACCESS_KEY, ACCESS_TOKEN, AUTH_TOKEN, BEARER, CREDENTIAL, SALT.
Użytkownicy z uprawnieniami administratora nadal mają pełny dostęp.
➡️ Zapoznaj się z sekcją Security dokumentacji, aby zobaczyć pełną listę.
🌐 Tłumaczenia: nowy provider Gemini
Dyrektywa @strTranslate obsługuje teraz Google Gemini jako providera tłumaczeń, obok ChatGPT, Claude, DeepL, DeepSeek, Google Translate, Mistral, OpenRouter oraz self-hosted LLM.
Przetłumacz dowolne pole String na wybrany język:
{
posts {
title @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
content @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
}
}Obsługiwane są następujące modele Gemini:
- 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)
Skonfiguruj swój klucz API Google (przez Settings, wp-config.php lub zmienną środowiskową), wybierz model i możesz już tłumaczyć.
➡️ Zapoznaj się z dokumentacją referencyjną Gemini Translation.
⏱️ Tłumaczenia: limity czasu Request i Connection
Tłumaczenie długiego dokumentu przez zewnętrznego providera może być czasochłonne, a zawieszony upstream blokował worker PHP do momentu, aż PHP sam zakończy żądanie — co skutkuje ogólnym błędem HTTP 502 / 504 lub pustą stroną "Maximum execution time exceeded".
V18 udostępnia dwa ustawienia limitu czasu w sekcji Plugin Configuration > Translation:
- Request timeout: maksymalny czas (w sekundach) oczekiwania na pełną odpowiedź od providera tłumaczeń.
- Connection timeout: maksymalny czas (w sekundach) oczekiwania podczas nawiązywania połączenia.

Ustaw obie wartości nieznacznie poniżej max_execution_time swojego serwera, aby zablokowane tłumaczenie kończyło się w sposób kontrolowany z błędem w logach zamiast wyzwalać ogólny timeout serwera. Jeśli Twoje tłumaczenia regularnie przekraczają limit czasu, zwiększ obie te wartości oraz max_execution_time swojego serwera jednocześnie.
🐛 Poprawki błędów i łatki bezpieczeństwa
Oprócz nowych funkcji opisanych powyżej, v18.0 zawiera również kilka poprawek błędów oraz łata kilka luk bezpieczeństwa. Zdecydowanie zalecamy jak najszybszą aktualizację do v18.
Aktualizacja
Wersja jest teraz wdrażana przez katalog wtyczek WordPress oraz panel klienta. Zaktualizuj przez panel administracyjny WordPress (Plugins → Updates) lub pobierz najnowszą wersję ze swojego konta.
Zapoznaj się z changelogiem, aby zobaczyć pełną listę zmian.
Ciesz się wersją v18! 🎉