Как можно использовать переменную graphql в разрешении в Hasura?

У меня мутация. Как я могу создать разрешение в hasura, используя переменные в запросе graphql?

например:

mutation MyMutation($name:String!) {
  insert_post(objects: {name:$name}){
    name
  }
}

Как я могу использовать name переменная в разрешении?

2 ответа

Hasura v2 теперь позволяет использовать такой шаблон.

Например, если у вас есть таблица со списком разрешенных имен, вы можете проверить, находится ли вставляемое имя в списке разрешенных имен, выполнив что-то вроде этого:

      insert_permissions:
  - role: user
    permission:
      check:
        _exists:
          _table:
            name: allowed_names
            schema: public
          _where:
            name:
              _ceq: ["$", "name"]

Смотрите также:

https://github.com/hasura/graphql-engine/issues/3459#issuecomment-1085666541

https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs/

Это я в Discord.

Просто у кого-то такой же вопрос. В настоящее время Hasura не поддерживает проверку разрешения на ввод значения пользователем, она принимает только значение изsession variables подобно x-hasura-user-id, так далее.

Но я думаю, что подход Хасуры верен, когда не позволяет устанавливать базу разрешений при вводе пользователем.

Если мой ответ неправильный, исправьте, спасибо.

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