更新数据发布

更新数据发布的表范围、目标工作区或备注。

PUT https://moi.matrixorigin.cn/newmoi/data-share/publishes/{id}

调用前准备

查询数据发布列表,确认要更新的发布。准备有目标工作区访问权限的个人访问令牌、目标工作区 ID 和发布 ID。

下方示例使用:

  • $AI_STUDIO_API_KEY:实际个人访问令牌,通过 X-API-Key Header 传递。

  • $WORKSPACE_ID:目标工作区 ID,通过 X-Workspace-ID Header 传递。

  • $PUBLICATION_ID:要更新的发布 ID,取自查询数据发布列表的响应。

  • $TABLE_IDselected 范围中要发布的表 ID,在请求体中指定。

  • $TARGET_WORKSPACE_ID:更新后的目标工作区 ID,在请求体中指定。

路径参数

参数

类型

是否必填

说明

id

integer

大于 0 的发布 ID。

请求体

只提交要修改的字段。

字段

类型

是否必填

说明

table_scope

object

更新后的表范围。

table_scope.mode

string

提交 table_scope 时是

all 表示发布源数据库当前全部表;selected 表示仅发布 object_ids 中指定的表。

table_scope.object_ids

string(字符串数组)

条件必填

modeselected 时必须提供 1 至 1000 个不重复的正整数形式表 ID;modeall 时必须省略或传空数组。

target_workspace_ids

string(字符串数组)

更新后的目标工作区 ID;提交时至少一个、不重复,不能包含当前工作区 ID,且每个值不能有首尾空白。

remark

string

更新后的备注。

至少提交 table_scopetarget_workspace_idsremark 其中一个字段。

请求示例

curl -X PUT "https://moi.matrixorigin.cn/newmoi/data-share/publishes/$PUBLICATION_ID" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  --data-binary @- <<JSON
    "table_scope": {
      "mode": "selected",
      "object_ids": ["${TABLE_ID}"]
    },
    "target_workspace_ids": ["${TARGET_WORKSPACE_ID}"],
    "remark": "更新后的备注"
  }
JSON

成功响应

成功时返回 200data 为更新后的发布对象。

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "id": "101",
    "name": "sales-share",
    "source_database_id": "1001",
    "mo_database_name": "sales",
    "table_scope": {
      "mode": "selected",
      "object_ids": ["2001"]
    },
    "obj_display_name": "sales",
    "obj_display_path": "catalog/sales",
    "targets": [
      {
        "workspace_id": "ws-002"
      }
    ],
    "permission": "read",
    "remark": "更新后的备注",
    "created_by": "user-001",
    "created_at": "2026-08-18T10:00:00Z",
    "updated_at": "2026-08-18T11:00:00Z"
  }
}

响应字段如下。

字段路径中的 [] 表示数组中的每一项。例如,data.targets[].workspace_id 表示 data.targets 数组中每一项的 workspace_id 字段。

字段

类型

说明

code

string

成功时为 OK

msg

string

成功时为 OK

data.id

string

发布 ID。

data.name

string

发布名称。

data.source_database_id

string

源数据库 ID。

data.mo_database_name

string

MatrixOne 中的源数据库名称。

data.table_scope

object

已发布的表范围。

data.table_scope.mode

string

表范围模式。

data.table_scope.object_ids

string(字符串数组)

指定表的 ID;全部表模式时为空数组。

data.obj_display_name

string

用于显示的源对象名称。

data.obj_display_path

string

用于显示的源对象路径。

data.targets

object(对象数组)

目标工作区列表。

data.targets[].workspace_id

string

目标工作区 ID。

data.targets[].workspace_name

string

目标工作区名称;有值时返回。

data.permission

string

发布权限。

data.remark

string

发布备注。

data.created_by

string

创建者标识。

data.created_at

string

创建时间。

data.updated_at

string

最后更新时间。

错误响应

{
  "code": "ErrConcurrentUpdate",
  "msg": "资源状态冲突",
  "data": null
}

常见 HTTP 错误

HTTP 状态码

错误代码

常见原因

建议操作

400

ErrParamInvalid

发布 ID、请求体、表或目标工作区无效。

核对路径参数和请求字段。

403

ErrPermissionDenied

当前身份没有更新权限。

请求授予数据发布更新权限。

404

ErrPublishNotFound

发布不存在或对当前工作区不可见。

核对发布 ID 和工作区。

409

ErrConcurrentUpdate

发布在读取后被其他请求修改。

重新读取最新对象后提交。

503

ErrDataShareWritesPaused

数据发布写入暂时暂停。

稍后重试。

500

ErrServer

服务端未能更新发布。

稍后重试。

后续操作

更新后查询数据发布列表确认发布定义。

最后更新于