Hasura 是否生成基于角色的内省?

Does Hasura generate Role-based introspection?

我想构建一个基于 Hasura 后端的管理工具。 不同的用户将根据角色具有不同级别的访问权限。

我是否能够每个角色进行内省,从而知道要显示哪些字段(来自查询)和按钮(用于突变)?

经过 OP 的澄清后,才有可能回答这个问题。

是的。 Hasura 为不同的角色生成不同的架构。

如何查看?

一个。权限摘要

进入 hasura 控制台 https://[hasura address]/console/data/schema/public/permissions

您会看到类似以下内容:

这里注意:

  • admin 角色可以访问所有已注册的 objects 和所有字段
  • 其他角色可以访问不同的 objects 组和具有不同行安全检查的不同字段组。

乙。哈苏拉 API 探险家

前往:https://[your hasura]/console/api-explorer.

在请求中设置 x-hasura-role Headers:

尝试进行查询和变更。

您会看到 objects 和字段的集合对于不同的角色是不同的。

C。允许列表

如果您激活了允许列表(推荐用于生产) (如果 graphql 检查查询不在您的允许列表中

然后将对除 admin 之外的所有角色禁用 graphql 检查:

对于那些有兴趣启用内省查询的人 - 检查 https://github.com/hasura/graphql-engine/blob/master/server/src-rsr/introspection.json