应用对象授权¶
保存一个对象对一个角色的完整授权变更。保存会改变该角色在此对象上的可用操作。
PUT https://api.moi.matrixorigin.cn/v5/workspaces/{workspace_id}/iam/permissions/objects/{resource_type}/{resource_id}/roles/{role_id}/grants
调用前准备¶
先选择要授权的对象和角色,并查看对象权限视图,确认当前授权状态。再查看权限 Schema,选择当前支持的操作和授权范围。
请求参数¶
curl -X PUT "https://api.moi.matrixorigin.cn/v5/workspaces/$WORKSPACE_ID/iam/permissions/objects/$RESOURCE_TYPE/$RESOURCE_ID/roles/$ROLE_ID/grants" \
-H "X-API-Key: $AI_STUDIO_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"schema_version": "current-schema-version",
"expected_policy_version": 1,
"expected_role_lifecycle_version": 1,
"request_id": "req-001",
"changes": [
{
"remove": false,
"action_id": "workflow.read"
}
]
}'
路径参数
参数 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
workspace_id |
string |
是 |
目标工作区 ID。 |
resource_type |
string |
是 |
目标对象的资源类型。 |
resource_id |
string |
是 |
目标对象的资源 ID。 |
role_id |
string |
是 |
接受授权变更的角色 ID。 |
请求体
参数 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
schema_version |
string |
是 |
本次变更使用的权限 Schema 版本。 |
expected_policy_version |
integer |
否 |
并发检查使用的策略版本;值不能小于 0。 |
expected_role_lifecycle_version |
integer |
是 |
当前角色生命周期版本,必须大于 0。 |
request_id |
string |
是 |
调用方生成的幂等请求 ID。 |
changes |
array of object |
是 |
要保存的授权变更,至少包含一项。 |
changes[].remove |
boolean |
否 |
true 表示移除授权;省略或为 false 表示添加授权。 |
changes[].action_id |
string |
是 |
权限 Schema 中的操作 ID。 |
changes[].condition_hash |
string |
否 |
条件表达式的哈希值。 |
成功响应¶
成功时授权变更已经保存,并返回新的策略版本。相同请求 ID 和相同内容重放时不会重复应用。
{
"code": "OK",
"msg": "OK",
"data": {
"workspace_id": "workspace-001",
"resource_type": "workflow",
"resource_id": "workflow-001",
"target_role_id": "role-001",
"previous_policy_version": 1,
"policy_version": 2,
"statement_count": 1,
"added_count": 1,
"removed_count": 0,
"idempotent_replay": false,
"canonical_policy_hash": "sha256:example",
"validate_only": false,
"request_id": "req-001",
"trace_id": "trace-001"
}
}
字段 |
类型 |
说明 |
|---|---|---|
code |
string |
成功时为 OK。 |
msg |
string |
成功时为 OK。 |
data.workspace_id |
string |
目标工作区 ID。 |
data.resource_type |
string |
目标资源类型。 |
data.resource_id |
string |
目标资源 ID。 |
data.target_role_id |
string |
接受授权变更的角色 ID。 |
data.previous_policy_version |
integer |
更新前的策略版本。 |
data.policy_version |
integer |
更新后的策略版本。 |
data.statement_count |
integer |
更新后的策略语句数量。 |
data.added_count |
integer |
新增的语句数量。 |
data.removed_count |
integer |
移除的语句数量。 |
data.idempotent_replay |
boolean |
是否为同一请求的幂等重放。 |
data.canonical_policy_hash |
string |
保存后策略的哈希值。 |
data.validate_only |
boolean |
此接口固定为 false。 |
data.request_id |
string |
请求关联 ID。 |
data.trace_id |
string |
链路追踪 ID。 |
错误响应¶
{
"code": "ErrParamInvalid",
"msg": "请求参数无效",
"data": null
}
字段 |
类型 |
说明 |
|---|---|---|
code |
string |
错误代码。 |
msg |
string |
错误信息。 |
data |
null |
— |