接口介绍
MetadataClient 提供以下访问控制(ACL)接口,用于管理资产级别的细粒度访问权限。
grant_acl:授予用户对资产的访问权限。
revoke_acl:撤销已有的授权记录。
list_acl:列出资产的访问控制列表。
check_acl:检查用户对资产是否具有指定权限。
导入
from tencentdb_agent_memory.v3 import MetadataClient
方法签名
def grant_acl(self, p: Dict[str, Any]) -> Dict[str, Any]
def revoke_acl(self, acl_id: str) -> Dict[str, Any]
def list_acl(self,asset_id_or_request: Union[str, Dict[str, Any], None] = None,*,pagination: Optional[Dict[str, Any]] = None,) -> Dict[str, Any]
def check_acl(self, p: Dict[str, Any]) -> Dict[str, Any]
使用示例
grant_acl
from tencentdb_agent_memory.v3 import MetadataClientmetadata = MetadataClient(endpoint="https://memory.tdai.tencentyun.com",api_key="sk-xxxxxxxxxxxxxxxx",service_id="tdai-mem-xxxxxxxx",)resp = metadata.grant_acl({"asset_id": "asset-456", # 必填,资产 ID"user_id": "user-123", # 必填,被授权的用户 ID"permission": "read", # 必填,权限类型(read/write/admin)})print(resp)
check_acl
resp = metadata.check_acl({"asset_id": "asset-456","user_id": "user-123",})print(resp["allowed"])
list_acl
resp = metadata.list_acl("asset-456", pagination={"limit": 50})for acl in resp["items"]:print(acl["user_id"], acl["permission"])
revoke_acl
resp = metadata.revoke_acl("acl-001")print(resp)
请求参数
grant_acl
参数名 | 类型 | 必填 | 描述说明 |
asset_id | str | 是 | 资产 ID |
user_id | str | 是 | 被授权的用户 ID |
permission | str | 是 | 权限类型,如 read、write、admin |
revoke_acl
参数名 | 类型 | 必填 | 描述说明 |
acl_id | str | 是 | 待撤销的 ACL 记录 ID |
list_acl
参数名 | 类型 | 必填 | 描述说明 |
asset_id | str | 是 | 资产 ID |
pagination | Dict | 否 | 分页参数,含 limit 和 offset |
check_acl
参数名 | 类型 | 必填 | 描述说明 |
asset_id | str | 是 | 资产 ID |
user_id | str | 是 | 待检查的用户 ID |
响应示例
grant_acl
{"acl_id": "acl-550e8400-e29b-41d4-a716-446655440000","asset_id": "asset-456","user_id": "user-123","permission": "read","granted_at_ms": 1723968000000}
check_acl
{"allowed": true,"permission": "read","asset_id": "asset-456","user_id": "user-123"}
list_acl
{"items": [{"acl_id": "acl-001","user_id": "user-123","permission": "read","granted_at_ms": 1723900000000},{"acl_id": "acl-002","user_id": "user-456","permission": "write","granted_at_ms": 1723800000000}],"total": 2}
响应参数说明
参数名 | 类型 | 参数含义 |
acl_id | str | ACL 记录唯一标识 ID |
asset_id | str | 资产 ID |
user_id | str | 用户 ID |
permission | str | 权限类型 |
allowed | bool | 是否允许访问(check_acl 返回) |
granted_at_ms | int | 授权时间,Unix 时间戳,单位为毫秒 |
items | List[Dict] | ACL 列表 |
total | int | 符合条件的 ACL 总数 |
错误码
错误码 | 触发场景 | 处理建议 |
400 | 请求参数不合法 | 检查参数是否符合约束条件 |
401 | API Key 无效或缺失 | 检查 Bearer Token 配置 |
404 | 指定资产或 ACL 记录不存在 | 确认 ID 是否正确 |
409 | 授权已存在 | 无需重复授权 |
500 | 服务内部错误 | 稍后重试 |