SuperAPI AI 工具集

saved-objects-style-review

编程与开发

查看项目

更新于 10-16 05:07

技能介绍

用途:在评审或修改 Kibana Saved Object 类型注册时使用,尤其针对调用 savedObjects.registerType、编辑 mappings 或修改 modelVersions 的代码。

主要能力与要求: 一是注册方式。类型应在插件 setup 阶段无条件注册,尽量避免用配置参数或功能开关对 registerType 做条件门控。若注册有条件,CI 的 Saved Object 检查可能无法发现该类型——该检查通过启动 Kibana 构建当前注册表,门控关闭时类型不会注册,也就无法验证定义及后续 mappings、modelVersions、schema 更新,从而绕过在生产前拦截非法迁移的保护。若早期迭代确实需要条件注册,应遵循文档中 WIP 类型工作流,而非临时性功能开关。 二是 mapping 心态。Saved Object mappings 是搜索索引而非完整 schema,一旦添加并发布便无法移除。只为需要搜索、过滤、排序或聚合的字段添加映射;存储在 payload 中的属性并不因此需要映射。对象映射默认使用 dynamic: false,让 Elasticsearch 存储未映射属性而不索引它们;不要使用 enabled: false 或 index: false,这些以后很难更改。

审查清单: 若新字段不被查询、过滤、排序或聚合,就不要为其添加映射、mappings_addition 或根映射条目。 若新字段被索引,需同时加到最新类型 mappings 和 modelVersions 的 mappings_addition 两处。 不要为改动前已存在于类型根映射中的字段添加 mappings_addition;根映射代表最新完整映射状态,模型版本变更只描述该版本改了什么。 添加带默认值的索引字段时,将 mappings_addition 与 data_backfill 配对;非索引字段带默认值时只用 data_backfill。 新增可搜索行为建议分两次发布:先添加/回填索引字段,下一版本再在业务逻辑中依赖它。 保持 create 与 forwardCompatibility schema 和存储属性一致;即使无 mappings,这些 schema 也可包含非索引字段。

常见问题:检查提议的映射在改动前是否已存在于 Saved Object 根映射(如 created_at、created_by 等),重复声明已有根映射字段会造成重复并浪费资源。

限制:资料未提供安装命令、价格或平台信息。