应用权限策略¶
保存指定角色的完整应用权限策略。保存会替换该角色现有的应用权限策略;应先确认策略内容和角色状态。
PUT https://api.moi.matrixorigin.cn/v5/workspaces/{workspace_id}/iam/roles/{role_id}/application-policy
调用前准备¶
先选择角色,确认该角色允许修改策略。再查看权限 Schema,选择当前支持的操作、资源类型和授权范围;最后查看角色权限视图,以当前策略状态为准准备完整变更。
请求参数¶
curl -X PUT "https://api.moi.matrixorigin.cn/v5/workspaces/$WORKSPACE_ID/iam/roles/$ROLE_ID/application-policy" \
-H "X-API-Key: $AI_STUDIO_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d "{
\"schema_version\": \"$SCHEMA_VERSION\",
\"expected_policy_version\": 1,
\"expected_role_lifecycle_version\": 1,
\"request_id\": \"req-001\",
\"statements\": [
{
\"action_id\": \"workflow.read\",
\"resource_type\": \"workflow\",
\"scope_mode\": \"all\"
}
]
}"
路径参数
参数 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
workspace_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。 |
statements |
array of object |
是 |
要保存的完整策略语句;空数组会保存为空策略。 |
statements[].statement_id |
string |
否 |
语句 ID;省略时由服务生成。 |
statements[].action_id |
string |
是 |
权限 Schema 中的操作 ID。 |
statements[].resource_type |
string |
是 |
与操作匹配的资源类型。 |
statements[].scope_mode |
string |
是 |
资源范围,只能为 all 或 resources。 |
statements[].resource_id |
string |
否 |
scope_mode 为 resources 时使用的资源 ID。 |
statements[].condition_hash |
string |
否 |
条件表达式的哈希值。 |
statements[].target_action_id |
string |
否 |
授予权限时的目标操作 ID。 |
statements[].grant_scope_mode |
string |
否 |
可转授范围,只能为 all 或 resources。 |
statements[].grant_delegatable |
boolean |
否 |
是否允许继续转授。 |
成功响应¶
成功时策略已按请求内容保存,并返回新的策略版本。相同请求 ID 和相同内容重放时不会重复增加版本。
{
"code": "OK",
"msg": "OK",
"data": {
"role_id": "role-001",
"policy_version": 2,
"idempotent_replay": false,
"request_id": "req-001",
"trace_id": "trace-001"
}
}
字段 |
类型 |
说明 |
|---|---|---|
code |
string |
成功时为 OK。 |
msg |
string |
成功时为 OK。 |
data.role_id |
string |
已更新策略的角色 ID。 |
data.policy_version |
integer |
保存后的策略版本。 |
data.idempotent_replay |
boolean |
是否为同一请求的幂等重放。 |
data.request_id |
string |
请求关联 ID。 |
data.trace_id |
string |
链路追踪 ID。 |
错误响应¶
{
"code": "ErrParamInvalid",
"msg": "请求参数无效",
"data": null
}
字段 |
类型 |
说明 |
|---|---|---|
code |
string |
错误代码。 |
msg |
string |
错误信息。 |
data |
null |
— |