资讯详情

资讯详情

蓝鲸配置平台 bk-cmdb v3.10.3 版本解读:事件订阅能力增强、实例批量删除鉴权与一批体验优化

后端企业应用运维【免费下载链接】bk-cmdb蓝鲸智云配置平台(BlueKing CMDB)项目地址https://gitcode.com/gh_mirrors/bk/bk-cmdb点击查看免费下载本篇文章基于蓝鲸智云配置平台BlueKing CMDB仓库项目名 bk-cmdb官方用户变更日志 v3.10.3_2021-07-20英文版 与 v3.10.3_2021-07-20中文版对 v3.10.3 版本中新增的功能特性、修复的问题清单以及行为优化逐条展开解读并结合仓库源码与接口文档给出实现层面的佐证。读完本文你可以快速判断该版本对你的业务的影响点尤其是 Event Watch 模型级事件订阅、批量删除实例接口鉴权可能不向下兼容以及查询业务接口行为变更这三处需要重点关注的改动。一、版本概览v3.10.3 发布于 2021-07-20是一个以能力补齐 体验优化 问题修复为主的小版本迭代。变更内容按官方惯例划分为三大部分Feature新增共 8 项聚焦事件订阅能力通用模型、主线模型按模型订阅、版本信息接口、前后端正则校验统一、主机自动发现属性可编辑等Bugfix修复共 10 项覆盖模型关联列表、主机详情 UI、云区域重命名、主机多模块字段显示、实例关联列表等前端与后端问题Upgrade优化共 6 项其中search_business业务不存在时不再报错、batch_delete_inst补齐鉴权属于可能影响存量调用方的兼容性变更。与当前仓库的发布节奏对应每个版本对应的变更记录存放在 docs/support-file/changelog_user 目录下文件名遵循v{主}.{次}.{修订}_{发布日期}.md的规范中英文各一份。二、Feature新增能力逐条解读2.1 各模块新增 version 接口获取版本相关信息该版本为各个模块统一增加了版本信息查询能力。从源码看web_server 层提供了两个与版本相关的服务接口实现在 src/web_server/service/changelog.goGetVersionList从配置项webServer.changelogPath.ch/webServer.changelogPath.en指定的 changelog 目录下扫描所有版本日志文件返回版本号列表VersionListItem包含version、time、is_current三个字段并会根据当前运行版本自动标记IsCurrentGetVersionDetail接收请求体中的version参数先通过正则^v\d\.\d\.\d$校验版本号格式该正则还支持通过hooks.GetVersionRegexHook()定制再定位并读取对应版本的 changelog 文件内容返回。底层运行版本的来源则是 src/common/version/version.go其中CCVersion、CCTag、CCBuildTime、CCGitHash、CCRunMode、CCDistro、ServiceName、GoVersion等全局变量共同拼装出GetVersion()的完整版本输出。这意味着各模块可以通过统一接口向运维或上层系统暴露自己的构建版本与运行模式product/test/dev便于多模块环境下的版本对齐与排障。2.2 前后端统一正则校验方式此前前端与后端各自维护一套校验规则容易出现前端能过、后端拒绝或反之的校验不一致问题。该版本统一以后端正则校验规则为准。从源码看核心的正则常量定义在 src/common/definitions.goFieldTypeStrictCharRegexp ^[a-zA-Z]\w*$用于字段标识符PropertyID等单字符/单词型校验被 src/common/valid/valid.go 与 src/common/metadata/field_template.go 共用FieldTypeMainlineRegexp ^[^\\\|\/:\*,\?#\s]$用于主线模型实例名拓扑节点名等带禁止字符语义的校验在valid.go中被编译为mainlineNameRegexp供ValidTopoNameField调用。此外src/common/valid/attribute/attribute.go 中通过regexp.Compile对用户自定义的正则表达式本身做合法性检查非法表达式会直接返回校验失败。统一后前端只需复用与后端相同的规则即可保证前后端行为一致。2.3 首页主机搜索增加高级搜索入口前端体验改进首页主机搜索框新增高级搜索入口点击可跳转到资源主机的高级筛选侧滑面板。对应实现可以在前端源码中找到例如 src/ui/src/views/business-topology/host/host-list-options.vue 中icon-cc-funnel图标配合$t(高级筛选)的 tooltip以及 src/ui/src/views/general-model/index.vue 中高级筛选/高级搜索相关逻辑。该改动的价值在于把普通关键字搜索与基于多条件组合、字段过滤的高级检索打通减少用户在两个页面之间切换的成本。2.4 集群模板拓扑树显示区域增加 loading集群模板Set Template拓扑树在数据加载过程中增加 loading 态避免数据未就绪时出现空白闪烁或误操作。这属于前端加载状态补齐类改进配合拓扑树渲染的异步数据源使用提升大数据量业务下的展示体验。2.5 禁止主机转移至已经归档的业务归档archived业务在 CMDB 中被视为只读的历史数据容器不再接受新的主机转入防止往已归档业务里继续写入资源导致数据语义混乱。从源码结构看src/ac/parser/topology.go 中已有针对批量删除归档业务的鉴权解析逻辑而 src/scene_server/host_server/service/host.go 中涉及的主机统计也明确区分了资源池与未归档业务可见归档状态在业务生命周期中扮演着数据终结态的角色。升级后任何试图将主机转移到已归档业务的请求都会被拦截需先解除业务归档状态。2.6 Event Watch 支持通用模型 / 主线模型实例事件按模型订阅这是本版本在数据订阅方向上的核心增强分为两点通用模型实例事件按模型分类订阅此前事件订阅粒度较粗现在可以指定某个通用对象模型ObjectBase只订阅该模型的实例事件主线模型实例事件订阅支持对业务biz、集群set、模块module等主线模型实例的事件订阅并按模型过滤。底层实现上src/common/watch/watch.go 中的WatchEventOptions通过bk_resource指定资源类型CursorType并通过WatchEventFilter.SubResourceJSON 字段bk_sub_resource指定子资源——对实例类资源而言SubResource 即实例所属的模型 ID对象 ID不设置则订阅全部。校验逻辑Validate()明确仅ObjectBase、MainlineInstance、InstAsst、KubeWorkload这几类资源允许携带 SubResource。而 src/common/watch/cursor.go 中定义了ObjectBase对象实例与MainlineInstance主线实例两种 CursorType后者从对象实例事件中过滤得到两者共用对象实例事件链。事件链消费端接口位于 src/apimachinery/eventserver/api.go 与 src/apimachinery/cacheservice/cache/event/api.goWatchEvent/InnerWatchEvent。使用建议通过bk_filter.bk_sub_resource指定模型 ID 后订阅方不再需要自己过滤其他模型的实例事件既减少了无效事件流量也简化了下游消费逻辑。2.7 主机自动发现信息属性分组下的属性调整为可编辑主机模型中的自动发现信息属性分组通常承载 agent 上报的自动发现字段此前为只读或半只读状态本版本将其下的属性放开为可编辑便于运维人员修正自动发现产生的异常数据。这一改动意味着主机实例的更新接口对这些字段开放了写入路径调整前请确认数据治理流程中不会与 agent 上报产生冲突。2.8 批量删除实例接口补齐鉴权功能重点兼容性变更batch_delete_inst接口此前漏掉了鉴权校验本版本补充了完整的鉴权逻辑。注意该改动可能不向下兼容——原来没有删除权限的用户此前可以正常调用该接口升级后将被拒绝需要平台管理员与调用方关注如果业务确实需要批量删除权限直接向权限中心申请对应权限即可。该接口的完整规格见 docs/apidoc/archived/topo/object_common_inst.mdAPIDELETE /api/v3/deletemany/instance/object/{bk_obj_id}API 名称batch_delete_inst请求体{ delete: { inst_ids: [] }, metadata: { label: { bk_biz_id: 1 } } }参数说明bk_obj_id模型 ID必填、inst_idsint 数组必填实例 ID 集合、bk_supplier_account开发商账号独立部署填0、metadata.label.bk_biz_id业务 ID返回result、bk_error_code、bk_error_msg、data成功时为success。另外ESB 网关侧对应的蓝鲸 API 定义见 docs/apidoc/cc/cc.yaml/v2/cc/batch_delete_inst/。升级前请核对所有批量删除实例的脚本与第三方系统是否已具备删除权限。三、Bugfix修复问题清单本版本共修复 10 个问题涉及 UI 展示、数据更新、关联关系三类UI 展示类模型关联列表中 ID 下划线未完整显示主机详情用户类型字段 UI 显示异常日期面板偶发被遮挡复制主机集群名、模块名不完整主机属于多模块时集群、模块相关字段显示不正确。数据更新类重命名云区域时可能出现更新失败主机导入时如果没有实例数据则更新失败。关联关系类取消关联主线模型实例后取消关联操作失败实例关联列表错误地显示了实例自身导出实例的取消按钮无效。这些修复集中在 topo_server 与 host_server 的实例、关联、导入导出链路上建议升级后重点回归多模块主机字段展示与主线模型实例取消关联两条路径。四、Upgrade行为优化与兼容性说明4.1 search_business 业务不存在时不再报错PR:5473查询业务接口search_business的语义发生变化当目标业务不存在时原策略是直接报错现改为不报错并返回空结果。这对先查询后操作的自动化脚本是一个更友好的行为——轮询或探测类脚本无需再用异常分支处理业务不存在。从实现看业务查询入口为 src/scene_server/topo_server/service/inst_business.go 的SearchBusiness其中对bk_biz_id条件做了数值类型约束仅允许$eq/$in或单值不允许 or/in 混合等并对condition与biz_property_filter互斥做了校验。需要注意调用方如果依赖业务不存在时报错来触发异常告警升级后需改为判断返回结果是否为空。4.2 优化进程模板与实例中进程绑定端口提示进程模板与进程实例中关于绑定端口的提示信息得到优化减少端口配置错误如格式非法、端口被占用提示不清导致的上线问题。该项属于交互文案与校验提示层面的改进无需调用方适配。4.3 Excel 导出时保留不存在的用户名并给出提示当导出 Excel 中记录的用户在用户管理用户目录中已不存在时不再丢弃或置空原用户名而是保留原值并在导出时以中英文提示该用户不存在。这保证了导出数据的可追溯性同时避免静默丢失历史归属信息。4.4 上报的主机静态数据使用新协议时不再校验时间窗口主机静态数据上报场景下当上报数据采用新协议时直接更新主机数据不再校验时间窗口。此前为了防止旧数据回写覆盖新数据上报会做时间窗口校验新协议被判定为可信来源后省去该校验降低上报延迟与乱序带来的更新失败概率。适配方应确保采用新协议的上报链路数据本身是实时的否则旧数据仍可能覆盖新数据。4.5 权限中心移除冗余的关联权限权限中心中移除了编辑服务实例、删除服务实例两个冗余的关联权限项。这两项权限与已有的实例操作权限存在重复授权关系移除后权限模型更精简。若贵司权限策略中显式引用过这两个权限点升级后需检查并改用主权限项。4.6 调整拓扑节点名称长度限制为 256 个字符拓扑节点业务、集群、模块等主线模型实例名称的最大长度统一调整为 256 个字符。源码佐证src/common/definitions.go 中MainlineNameFieldMaxLength 256并由 src/common/valid/valid.go 的ValidTopoNameField落地执行——该校验先Trim去除首尾空格、再校验非空、再校验长度按 UTF-8 字符计数utf8.RuneCountInString最后用主线名校验正则FieldTypeMainlineRegexp^[^\\\|\/:\*,\?#\s]$匹配非法字符。长度限制放宽意味着更长的业务/集群命名成为可能同时命名仍不允许包含\ | / : * , ? #及空白字符。五、升级注意事项汇总鉴权收紧batch_delete_inst补齐鉴权后无权限调用方会被拒绝需提前为相关系统申请删除权限接口语义变化search_business对不存在的业务返回空而非报错依赖报错语义的调用方需适配上报策略变化新协议上报的主机静态数据不再做时间窗口校验权限点变化权限中心移除编辑服务实例、删除服务实例冗余权限命名约束变化拓扑节点名称长度上限调整为 256 字符且沿用禁止特殊字符的正则约束事件订阅增强需要按模型消费实例事件的系统可升级后使用bk_filter.bk_sub_resource订阅通用模型与主线模型实例事件。如需核对后续版本的变更内容可在 docs/support-file/changelog_user 下按v版本号_日期.md的命名规则查找对应版本日志中英文两份各模块版本信息接口的返回格式与 changelog 读取逻辑可参考 src/web_server/service/changelog.go 与 src/common/version/version.go。赞分享后端企业应用运维【免费下载链接】bk-cmdb蓝鲸智云配置平台(BlueKing CMDB)项目地址https://gitcode.com/gh_mirrors/bk/bk-cmdb点击查看免费下载相关推荐蓝鲸配置平台bk-cmdb批量删除实例接口 batch_delete_inst 实战指南蓝鲸配置平台bk cmdb批量删除实例接口 batch_delete_inst 实战指南 本文档基于 batch_delete_inst.md https:后端企业应用运维bk-cmdb v3.10.32021-07-20版本详解事件订阅能力增强、接口鉴权补齐与 20 项修复优化bk cmdb v3.10.32021 07 20版本详解事件订阅能力增强、接口鉴权补齐与 20 项修复优化 本文基于 v3.10.3 用户变更日志 h后端企业应用运维蓝鲸配置平台bk-cmdb批量删除业务集接口详解蓝鲸配置平台bk cmdb批量删除业务集接口详解 导读 本文围绕蓝鲸配置平台bk cmdb提供的批量删除业务集开放接口展开完整介绍接口的版本与权限后端企业应用运维上一篇Swagger-JS-Codegen常见问题解决从安装错误到生成结果优化下一篇UniLab性能优化CPU并行仿真与GPU加速策略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →