Skip to content

权限映射表

功能概述

用于维护“成员属性 → 维度值”的映射表,供行权限按成员属性匹配维度值时使用。映射表支持导入 CSV 自动生成列定义并存储行数据,创建/更新后请关注 status 与 error。

status 取值

字段值 说明
0 VALID,可用
1 INVALID,失效(维度不存在或校验失败)
2 PROCESSING,处理中(导入/清理任务进行中)
3 ERROR,结构异常(导入或列校验失败,error 有原因)

列类型 type 取值

字段值 说明
attribute 属性列,值为成员属性字符串
dimension 维度列,值为维度 ID(整数)

创建映射表(异步导入)

Request Method: POST
Request URL:    /openapi/v1/workspaces/{workspaceId}/attribute-permissions/
Request Header:
{
  "Authorization": "连接密钥"
}

请求参数

{
  "name": "销售区域映射",
  "attributeLength": 2,
  "modelUids": ["model-a", "model-b"],
  "data": "属性A,属性B,维度ID\n华东,渠道A,101\n华南,渠道B,102"
}
  • attributeLength:前 N 列按属性列解析,后续列为维度列,必须 ≥1 且小于 CSV 总列数。
  • modelUids:整张权限映射表的适用模型 UID 列表,可选。省略或传 null 表示适用于全部模型;提供时必须为非空数组,且每个模型都必须包含表内映射的全部维度。
  • CSV 首行定义列头,数据行按列顺序写入;列值会存入行数据 key f0、f1……。

返回示例(立即返回,导入任务异步执行)

{
  "errcode": 200,
  "errmsg": "success",
  "data": {
    "id": 12,
    "name": "销售区域映射",
    "modelUids": ["model-a", "model-b"],
    "status": 2
  }
}
  • 创建时先落库 AttributePermissionMapping 的基本信息和模型范围,并设置 status=PROCESSING;不会立即返回 columns/attributes/dimension_ids/rows。
  • 请通过 查看映射表详情 接口轮询该 id,当 status 不为 PROCESSING 时,列定义与行数据才会可用;若导入异常,status 会变为 ERROR,error 字段包含原因。

获取映射表列表

Request Method: GET
Request URL:    /openapi/v1/workspaces/{workspaceId}/attribute-permissions/
Request Header:
{
  "Authorization": "连接密钥"
}

查询参数

参数 类型 说明
q string 按名称模糊搜索,可选
count bool 仅统计数量(true 返回 count,不返回列表),可选
offset int 偏移量,默认 0,可选
limit int 数量上限,默认 20,可选

返回示例

{
  "errcode": 200,
  "errmsg": "success",
  "data": [
    {
      "id": 12,
      "name": "销售区域映射",
      "modelUids": ["model-a", "model-b"],
      "status": 0,
      "error": null,
      "columns": [
        { "field": "f0", "type": "attribute", "value": "属性A" },
        { "field": "f1", "type": "attribute", "value": "属性B" },
        { "field": "f2", "type": "dimension", "value": "101" }
      ],
      "dimension_ids": [101],
      "attributes": ["属性A", "属性B"],
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z"
    }
  ]
}

查看映射表详情

Request Method: GET
Request URL:    /openapi/v1/workspaces/{workspaceId}/attribute-permissions/{tableId}/
Request Header:
{
  "Authorization": "连接密钥"
}

返回示例:同列表单项结构。

更新映射表

Request Method: PATCH
Request URL:    /openapi/v1/workspaces/{workspaceId}/attribute-permissions/{tableId}/
Request Header:
{
  "Authorization": "连接密钥"
}

请求参数(部分字段可选)

{
  "name": "销售区域映射-更新",
  "modelUids": ["model-a", "model-b"],
  "columns": [
    { "field": "f0", "type": "attribute", "value": "属性A" },
    { "field": "f1", "type": "dimension", "value": "101" }
  ]
}
  • columns 变更会校验字段名与类型;删除列会异步清理已有行数据对应字段。
  • 维度列 value 必须为整数 ID 字符串;属性列 value 可为任意字符串。
  • 表级 modelUids 可更新为非空模型 UID 列表,传 null 可恢复为全部模型。模型范围不能配置在单个列对象中。
  • 所选模型必须属于当前工作区,并包含权限表涉及的全部维度;不满足时请求会失败或权限表状态会变为 INVALID。

返回示例:同详情结构,status 可能变为 PROCESSING/INVALID/ERROR 视校验结果而定。

获取映射表行数据

Request Method: GET
Request URL:    /openapi/v1/workspaces/{workspaceId}/attribute-permissions/{tableId}/rows/
Request Header:
{
  "Authorization": "连接密钥"
}

查询参数

参数 类型 说明
q string 在所有列做 contains 过滤,可选
count bool 仅统计数量,可选
offset int 偏移量,默认 0,可选
limit int 数量上限,默认 100,可选

返回示例

{
  "errcode": 200,
  "errmsg": "success",
  "data": [
    { "f0": "华东", "f1": "渠道A", "f2": "101" },
    { "f0": "华南", "f1": "渠道B", "f2": "102" }
  ]
}

删除映射表

Request Method: DELETE
Request URL:    /openapi/v1/workspaces/{workspaceId}/attribute-permissions/{tableId}/
Request Header:
{
  "Authorization": "连接密钥"
}

返回示例

{
  "errcode": 200,
  "errmsg": "success"
}

注意事项

  • 创建导入、删除列后的历史行清理均为异步任务,处理期间 status 可能为 PROCESSING。
  • 历史权限映射表没有 modelUids 时按全部模型处理,无需迁移数据。
  • 当列校验失败或维度不存在时,status 会变为 ERROR/INVALID,并在 error 中写明原因。