🚀 Выпущен Gato GraphQL v18.0: кэширование разобранных queries, усиленная безопасность и новый провайдер перевода Gemini
Gato GraphQL v18.0 вышел 🎉
Этот релиз заметно быстрее и значительно экономнее по памяти, позволяет кэшировать разобранные GraphQL queries на диск, чтобы пропускать повторный разбор и компиляцию, ужесточает проверки возможностей по умолчанию для полей Email Sender, HTTP Client и Environment Variable, включает несколько исправлений ошибок и несколько патчей безопасности, а также добавляет новый провайдер перевода Gemini и настраиваемые таймауты Request и Connection для переводов.
Читайте дальше об основных новшествах.
⚡ Кэширование разобранных GraphQL queries на диск
Каждый запрос должен разобрать GraphQL query, проверить её против схемы и построить план выполнения. В v18 теперь можно сохранять подготовленную query на диск и загружать её при последующих запусках — полностью пропуская повторный разбор и компиляцию.
Включите это на странице Settings в разделе Server Configuration > Caching > Cache parsed GraphQL queries?:

Это кэширует подготовку query (разбор и компиляцию), а не данные ответа. Для HTTP-кэширования ответов см. Добавление HTTP-кэширования.
Файлы хранятся в директории кэша плагина. Если папка плагина недоступна для записи, вы можете указать другое место для кэша — см. Переопределение папки кэша.
➡️ Подробности в Кэширование разобранных GraphQL queries.
⚡ Быстрее и легче — повсеместно
Помимо кэша разобранных queries, внутренние механизмы плагина были переработаны в v18: каждый GraphQL-запрос заметно быстрее и значительно экономнее по памяти.
Улучшения глобальны — они применяются к каждой query, каждой директиве, каждому persisted query — и особенно заметны на больших схемах, длинных queries и сайтах, выполняющих много GraphQL-запросов на страницу (например, headless WordPress, внутренние API).
Крупные сайты, которые раньше упирались в лимиты памяти PHP или страдали от медленного времени ответа, должны ощутить реальную разницу — никаких изменений конфигурации не требуется, просто обновите плагин.
🔒 Усиленные настройки безопасности по умолчанию
В трёх областях были ужесточены настройки по умолчанию, чтобы плагин был более безопасным «из коробки».
Email Sender — Требуемая возможность
Мутация _sendEmail теперь может быть ограничена для пользователей с определённой возможностью WordPress, настраиваемой в разделе Plugin Configuration > Email Sender.

По умолчанию установлена manage_options, чтобы подписчики не могли использовать мутацию для рассылки спама произвольным получателям. Выберите (any logged-in user), чтобы отключить проверку.
HTTP Client — Требуемая возможность для доступа к внутренним URL
Некоторые URL разрешаются в внутренние адреса (127.0.0.1, диапазоны link-local, конечные точки cloud-metadata и т. д.), которые могут раскрывать внутренние сервисы при обращении к ним. Новая настройка в разделе Plugin Configuration > HTTP Client ограничивает обращение к таким адресам для пользователей с определённой возможностью WordPress.

По умолчанию установлена manage_options, чтобы пользователи без прав администратора не могли обращаться к внутренним сервисам через поля HTTP Client. Выберите (any logged-in user), чтобы отключить проверку.
Environment Variables — список запрещённых для не-администраторов
Поле _env уже требовало явного списка разрешённых, который по умолчанию пуст. В v18 добавлена дополнительная защита для не-администраторов: даже если эти имена включены в список разрешённых в конфигурации, им будет отказано в доступе.
Всегда запрещены (секреты 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.
Также запрещены — любые переменные, имя которых содержит: PASSWORD, PASSWD, SECRET, PRIVATE_KEY, API_KEY, APIKEY, ACCESS_KEY, ACCESS_TOKEN, AUTH_TOKEN, BEARER, CREDENTIAL, SALT.
Пользователи с правами администратора по-прежнему имеют полный доступ.
➡️ См. раздел Security в документации для полного списка.
🌐 Перевод: новый провайдер Gemini
Директива @strTranslate теперь поддерживает Google Gemini в качестве провайдера перевода наряду с ChatGPT, Claude, DeepL, DeepSeek, Google Translate, Mistral, OpenRouter и самостоятельно размещёнными LLM.
Переводите любое поле String на нужный язык:
{
posts {
title @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
content @strTranslate(
from: "en",
to: "fr",
provider: gemini
)
}
}Поддерживаются следующие модели 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)
Настройте ваш Google API key (через Settings, wp-config.php или переменную окружения), выберите модель — и вы готовы переводить.
➡️ См. справочную документацию по Gemini Translation.
⏱️ Перевод: таймауты Request и Connection
Перевод длинного документа через сторонний провайдер может быть медленным, а зависший upstream иначе удерживал бы PHP-воркер до тех пор, пока PHP сам не прервёт запрос — что приводит к обобщённой ошибке HTTP 502 / 504 или пустой странице «Maximum execution time exceeded».
В v18 доступны два параметра таймаута в разделе Plugin Configuration > Translation:
- Request timeout: максимальное время ожидания (в секундах) полного ответа от провайдера перевода.
- Connection timeout: максимальное время ожидания (в секундах) при установке соединения.

Держите оба значения немного ниже max_execution_time вашего сервера, чтобы зависший перевод завершался с контролируемой ошибкой в логах вместо срабатывания общего серверного таймаута. Если переводы регулярно прерываются по таймауту, увеличьте оба этих значения и max_execution_time вашего сервера одновременно.
🐛 Исправления ошибок и патчи безопасности
Помимо новых функций, v18.0 также включает несколько исправлений ошибок и закрывает ряд уязвимостей безопасности. Настоятельно рекомендуем обновиться до v18 как можно скорее.
Обновление
Релиз распространяется через директорию плагинов WordPress и панель управления клиента. Обновите плагин из административной панели WordPress (Plugins → Updates) или загрузите последнюю версию из своего аккаунта.
Смотрите changelog для полного списка изменений.
Наслаждайтесь v18! 🎉