是否可通过Hasura metadata API的REST接口创建非继承类新角色
Hasura 通过 Metadata REST API 创建独立角色的实现方案
Hasura 原生支持通过 Metadata REST API 直接创建独立角色,不需要使用继承角色功能,完全可以满足你的需求,具体实现方式如下:
接口基本要求
- 请求地址:
https://<你的Hasura实例域名>/v1/metadata - 请求方法:
POST - 必传请求头:
Content-Type: application/jsonX-Hasura-Admin-Secret: <你的管理员密钥>(必须使用管理员权限调用该接口)
创建独立角色的逻辑
注意:Hasura 没有单独的「新增角色」接口,角色不需要提前声明,只要你首次为某个不存在的角色名配置任意资源的权限规则,该角色就会自动创建,完全独立,不需要继承任何现有角色。
示例请求
以下示例会创建一个名为 ordinary_user 的独立角色,并且为其配置 users 表的查询权限:
{ "type": "pg_create_select_permission", "args": { "source": "default", "table": "users", "role": "ordinary_user", "permission": { "columns": ["id", "username", "avatar"], "filter": { "id": "X-Hasura-User-Id" } } } }
如果需要为该角色新增其他操作权限,只需要调用对应的 pg_create_insert_permission、pg_create_update_permission、pg_create_delete_permission 接口,保持role字段值和你创建的角色名一致即可。
验证角色创建结果
调用 Metadata 导出接口即可查看所有已存在的角色:
{ "type": "export_metadata", "args": {} }
在返回结果的 metadata.permissions 字段下,可以查看到你创建的角色对应的权限配置,确认存在即为创建成功。
内容的提问来源于stack exchange,提问作者Nishad Ceroen
相关产品推荐
相关产品推荐

