Включение низкоуровневого редактирования persisted queries
В GraphQL директивы — это функции, позволяющие изменять результат поля. Например, директива @strUpperCase преобразует значение поля в верхний регистр.
Существует 2 типа директив: те, что применяются к схеме и выполняются всегда при каждом запросе; и те, что применяются к запросу пользователем или приложением на стороне клиента.
Gato GraphQL реализует большой объём функциональности через директивы, применяемые к схеме. Соответствующие директивы добавляются в запрос через пользовательский интерфейс.
Именно так, например, работают Cache Control и Access Control. Cache Control функционирует путём применения директивы @cacheControl к схеме и управляется плагином через интерфейс Cache Control List:

Некоторые примеры директив типа «схема», регулирующих Access Control:
@disableAccess@validateIsUserLoggedIn@validateIsUserNotLoggedIn@validateDoesLoggedInUserHaveAnyRole.@validateDoesLoggedInUserHaveAnyCapability
Включение низкоуровневого редактирования
Модуль «Low-Level Persisted Query Editing» отключён по умолчанию. При включении все директивы, применяемые к схеме, становятся доступны в редакторе GraphiQL при редактировании persisted queries.

Таким образом, можно добавлять директивы типа «схема» непосредственно в GraphQL-запрос при редактировании persisted query, минуя пользовательский интерфейс.
Например, Cache Control можно настроить прямо в persisted query, задав директиву @cacheControl с аргументом maxAge для нужного поля:
