Используйте 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.

Вероятно, вам следует реализовать некоторую форму безопасности, а не использовать для них «разрешить», но я надеюсь, что это ответит на ваш вопрос...

Другие вопросы по тегам