应用对象授权

保存一个对象对一个角色的完整授权变更。保存会改变该角色在此对象上的可用操作。

PUT https://api.moi.matrixorigin.cn/v5/workspaces/{workspace_id}/iam/permissions/objects/{resource_type}/{resource_id}/roles/{role_id}/grants

调用前准备

先选择要授权的对象和角色,并查看对象权限视图,确认当前授权状态。再查看权限 Schema,选择当前支持的操作和授权范围。

准备具有目标工作区相应权限的个人访问令牌目标工作区 ID

请求参数

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

最后更新于