Используйте Rover с graphql-shield
Я использую на подграфе и для создания схемы.
Я установил резервное правило, чтобы запретить все, поскольку я не хочу, чтобы что-либо было доступно по умолчанию. Но сейчас
rover-cli
терпит неудачу при самоанализе подграфа. Я знаю, что вы можете передать токен роверу, но я не могу сделать это во время процесса сборки.
Я уже рассматривал этот вопрос: Федерация серверов Apollo с graphql-shield и на обоих
graphql-shield
&
rover
Репозиторий GitHub, но пока не повезло.
Я также пытался явно добавить
SubgraphIntrospectQuery
вот так:
export const permissions = shield(
{
Query: {
SubgraphIntrospectQuery: allow,
},
},
{
fallbackRule: deny,
debug: true,
allowExternalErrors: true,
}
);
1 ответ
Попробуй это:
export const permissions = shield({
Query: {
_service: allow,
},
_Service: {
sdl: allow
}
},{
fallbackRule: deny,
debug: true,
allowExternalErrors: true,
});
Кажется, это то, что Аполлон использует при самоанализе. Вам также может потребоваться разрешить: "Query._entities", "Query._service", "_Entity.*", "_Service.*", "_Any.*", поскольку они также используются Apollo.
Вероятно, вам следует реализовать некоторую форму безопасности, а не использовать для них «разрешить», но я надеюсь, что это ответит на ваш вопрос...