In GraphQL, directives are functions that enable to modify the result from a field. For instance, a directive @strUpperCase will transform the value of the field into uppercase format.
There are 2 types of directives: those that are applied to the schema and are executed always, on every query; and those that are applied to the query, by the user or the application on the client-side.
Gato GraphQL implements plenty of functionality through directives to be applied to the schema. The corresponding directives are added to the query via some user interface.
That is the case, for instance, with providing Cache Control and Access Control. Cache Control works by applying directive @cacheControl on the schema, and carried out by the plugin through the Cache Control List user interface:
Some examples of schema-type directives which regulate Access Control are: