Abilitare la modifica a basso livello delle persisted queries
In GraphQL, le direttive sono funzioni che permettono di modificare il risultato di un campo. Ad esempio, una direttiva @strUpperCase trasformerà il valore del campo in maiuscolo.
Esistono 2 tipi di direttive: quelle che si applicano allo schema e vengono eseguite sempre, su ogni query; e quelle che si applicano alla query, dall'utente o dall'applicazione lato client.
Gato GraphQL implementa numerose funzionalità tramite direttive da applicare allo schema. Le direttive corrispondenti vengono aggiunte alla query tramite un'interfaccia utente.
È il caso, ad esempio, del Cache Control e dell'Access Control. Il Cache Control funziona applicando la direttiva @cacheControl allo schema, ed è gestito dal plugin tramite l'interfaccia utente di Cache Control List:

Alcuni esempi di direttive di tipo schema che regolano l'Access Control:
@disableAccess@validateIsUserLoggedIn@validateIsUserNotLoggedIn@validateDoesLoggedInUserHaveAnyRole.@validateDoesLoggedInUserHaveAnyCapability
Abilitare la modifica a basso livello
Il modulo "Low-Level Persisted Query Editing" è disabilitato per impostazione predefinita. Quando è abilitato, tutte le direttive da applicare allo schema diventano disponibili nell'editor GraphiQL durante la modifica delle persisted queries.

In questo modo, possiamo aggiungere le direttive di tipo schema direttamente nella query GraphQL durante la modifica della persisted query, evitando l'interfaccia utente.
Ad esempio, definire il Cache Control può essere fatto direttamente nella persisted query, impostando la direttiva @cacheControl con l'argomento maxAge sul campo:
