资讯动态

bk-cmdb 开放 API 详解:删除对象模型属性(delete_object_attribute)

发布时间:2026/10/13 3:12:33 来源:尧图企业网站定制
后端企业应用运维【免费下载链接】bk-cmdb蓝鲸智云配置平台(BlueKing CMDB)项目地址https://gitcode.com/gh_mirrors/bk/bk-cmdb点击查看免费下载本篇技术指南基于蓝鲸智云配置平台bk-cmdb的开放 API 文档深入讲解「删除对象模型属性delete_object_attribute」接口的完整用法包括调用路径与权限要求、输入参数、真实调用示例、响应体字段语义以及其背后在 topo_server、coreservice 与鉴权模块中的完整实现链路。读完本文你将能够通过开放 API 安全、准确地删除业务自定义模型字段并理解删除动作背后的数据变更与权限校验机制。接口概述在 bk-cmdb 的开放 API 体系中delete_object_attribute用于删除对象模型的属性字段。其核心使用场景是删除业务自定义字段即通过创建模型属性接口新增的自定义字段当业务模型演进、字段不再需要时可以通过本接口将其从模型中移除。该接口在文档层面的能力描述为删除对象模型属性可以删除业务自定义字段权限模型编辑权限。需要强调的是它面向的是业务自定义字段而非系统内置字段。从源码结构看创建属性接口在写入时会强制attr.IsPre false即非预置字段系统预置属性由平台内置不通过该链路开放删除同时删除链路中存在attr.TemplateID ! 0时拒绝删除的校验字段模板引用的属性禁止删除这些限制共同保证了删除操作只作用于可安全移除的自定义属性。接口请求说明请求方式与路径该接口对应的 HTTP 请求为MethodDELETEPath/api/v3/delete/objectattr/{id}其中{id}为属性记录 ID路由注册证据位于 service_business_initfunc.gotopo_server 将DELETE /delete/objectattr/{id}绑定到Service.DeleteObjectAttribute处理器开放 API 网关侧由 apigw 转发完整的GET /api/v3/delete/objectattr/{id}匹配与解析逻辑要求 URL 中属性 ID 为数字见 topolatest.go。同时apimachinery 客户端封装提供了同名的DeleteObjectAtt方法内部以http.MethodDelete请求子路径/delete/objectattr/%sattribute.go可供 Go 服务端程序直接调用。输入参数调用时只需在请求 Body 中提交一个参数参数名称参数类型必选描述idint是被删除的数据记录的唯一标识 ID其中id即模型属性记录的主键 ID对应Attribute结构体中的id字段见 attribute.go。该 ID 可以通过「查询对象模型属性find/objectattr」接口获取。调用示例请求 Body 示例{ id : 0 }实际调用时应将id替换为目标属性的真实 ID示例中的0仅为演示占位真实的属性 ID 为大于 0 的整数如32。响应示例{ result: true, code: 0, message: success, permission: null, data: success }响应参数说明参数名称参数类型描述resultbool请求成功与否。true:请求成功false 请求失败codeint错误编码。0 表示 success0 表示失败错误messagestring请求失败返回的错误信息permissionobject权限信息dataobject请求返回的数据在成功删除场景下code为0、result为truedata返回字符串success当鉴权失败或校验不通过时code返回对应的非 0 错误码message给出可读的错误描述。底层实现链路1. 删除前的属性查询与合法性校验topo_server 的DeleteObjectAttribute处理器object_attribute.go在真正执行删除前会完成以下步骤解析路径参数从请求路径中提取属性 ID并解析请求 Body 中的ModelType可携带bk_biz_id用于区分公共属性与业务私有属性按 ID 查询属性记录调用getModelAttrByID从 coreservice 读取属性详情object_attribute.go。若查不到记录attr.ID 0则直接返回成功且不执行删除保证接口幂等字段模板保护校验若属性TemplateID ! 0即属性由字段模板生成返回CCErrorTopoFieldTemplateForbiddenDeleteAttr错误拒绝删除由字段模板管理的属性表格型inner table属性特殊处理若属性类型为bk_property_type inner_table表格型字段则走deleteTableObject分支object_attribute.go它会级联删除该表格对象及其数据否则走普通属性删除链路。2. 普通属性的删除逻辑普通属性的删除在逻辑层attribute.DeleteObjectAttributeattribute.go中执行关键动作包括校验属性类型再次确认属性不是表格型字段表格型字段必须在上一分支处理生成审计日志基于待删除属性生成AuditDelete类型的审计记录保证删除操作可追踪、可审计调用 coreservice 删除按bk_obj_id模型 ID将待删除属性 ID 组装为{id: {$in: [ids]}}删除条件调用CoreService().Model().DeleteModelAttr真正从存储中删除属性元数据保存审计日志删除成功后落库审计日志若日志保存失败则整体返回错误。3. 关联的主机属性自动应用规则清理删除模型属性后topo_server 还会执行deleteHostApplyRuleobject_attribute.go以被删属性 ID 查询主机属性自动应用规则Host Apply Rule若存在引用该属性的规则则一并删除。这是删除属性时的关联数据兜底清理避免模型中残留指向已删除字段的规则记录。4. 鉴权与权限模型删除动作的权限校验由访问控制AC模块完成权限类型为模型属性ModelAttribute的Delete动作对应文档所述的「模型编辑权限」URL 匹配规则^/api/v3/delete/objectattr/[0-9]/?$topolatest.go将请求识别为删除属性操作鉴权时会先按属性 ID 反查属性详情进而定位其所属模型Layers中的Model与业务范围BusinessID再构造meta.Delete权限资源请求topolatest.go鉴权失败时响应体中的permission字段会携带所需权限信息result为false、code为非 0 错误码。5. 事务与数据一致性从调用链可以看到删除操作在多个环节使用了 coreservice 提供的事务能力Txn().AutoRunTxn包裹关键写入如表格对象的级联删除确保属性元数据删除与关联数据处理之间的事务一致性删除链路中涉及 coreservice 的DeleteModelAttr、DeleteTableModelCascade等接口最终落在存储层MongoDB执行。常见返回码与异常场景结合源码中的错误分支常见失败场景包括场景结果属性 ID 不存在或已被删除返回resulttrue, code0幂等成功无实际删除动作删除由字段模板bk_template_id生成的属性返回字段模板禁止删除属性的错误码请求 URL 中 ID 不是合法数字返回路径参数解析失败错误无模型编辑权限resultfalsepermission返回所需权限信息code0coreservice 删除失败或审计日志保存失败返回对应错误码整体删除失败回滚调用注意事项只删自定义字段本接口面向业务自定义字段系统预置属性ispretrue不在开放 API 可删除范围内先查后删删除前建议先通过「查询对象模型属性」接口确认属性 ID 与归属模型避免误删注意表格型字段属性类型为inner_table时删除会级联清理表格对象数据操作前请评估影响关注关联规则被删属性一旦被主机属性自动应用规则引用相关规则会随属性删除一并清理权限前置调用方需具备对应模型或业务的模型编辑权限权限不足时根据permission字段补齐授权。相关文档与代码索引接口文档本文依据delete_object_attribute.md英文版见 en/delete_object_attribute.md路由注册service_business_initfunc.go删除处理器object_attribute.go逻辑层实现attribute.go鉴权解析topolatest.go客户端封装attribute.go属性元数据定义attribute.go赞分享后端企业应用运维【免费下载链接】bk-cmdb蓝鲸智云配置平台(BlueKing CMDB)项目地址https://gitcode.com/gh_mirrors/bk/bk-cmdb点击查看免费下载相关推荐蓝鲸配置平台bk-cmdb删除对象模型属性 API 接口详解蓝鲸配置平台bk cmdb删除对象模型属性 API 接口详解 导读 本文以 delete_object_attribute.md https://link.后端企业应用运维bk-cmdb 模型属性分组Attribute GroupAPI 实战指南创建、查询、修改与删除bk cmdb 模型属性分组Attribute GroupAPI 实战指南创建、查询、修改与删除 模型属性分组Property Group / Attr后端企业应用运维蓝鲸配置平台 bk-cmdb 模型属性管理 API 全解析创建、删除、更新与查询 objectattr蓝鲸配置平台 bk cmdb 模型属性管理 API 全解析创建、删除、更新与查询 objectattr 本文以蓝鲸智云配置平台bk cmdb开放接口中的「后端企业应用运维上一篇Mind Elixir生态版图XMind导出、节点菜单、React封装等你必知的5大插件下一篇多机位制作完全指南davinci-resolve-mcp构建多机位预备时间线保留源媒体创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑