title: How to limit query introspection
body: <p>I have a node.js project powered by apollo-server. I use custom <code>@admin</code> directive that does permission checking on queries, mutations and object fields. For queries and mutation this directive throws errors, for fields it returns null instead of real value. </p>
  
  <p>Now, I want to add graphiql ui to my project, so fellow developers can explore my graphql schema. However, I want them to see the schema as anonymous user sees it, i.e. they should not know about existence of <code>@admin</code> fields and <code>@admin</code> queries and all mutations (even non-admin ones). Even those who have credentials to execute these operations (i.e. logged in as admin) should not see those parts of schema.</p>
  
  <p>As far as I understand, graphiql sends special introspection query, which contains <code>__schema</code> and <code>__type</code> fields to display schema and its documentation.</p>
  
  <p>Is it possible to somehow modify my schema, which is constructed using <code>makeExecutableSchema</code> from <code>graphql-tools</code> to achieve my goal?</p>