用途:指导设计、构建与修改 Infrahub schema(YAML 定义节点、泛型、属性、关系与扩展),并支持校验、格式化、迁移与调试验证错误。
主要能力:按优先级组织的规则类别,包括分支优先变更(先加载到分支而非默认分支)、命名、关系标识与 peer/基数/on_delete、属性默认值与 Jinja2 计算、层级、显示属性(human_friendly_id、display_label、order_weight、order_by、菜单)、扩展、唯一性、迁移、文件格式化、校验、复用市场 schema、泛型成员等。schema 文件顶层仅 version 必填,建议保留 $schema 注释以便 IDE 校验。设计时需审计下游消费者,如作为 artifact/generator 目标需 inherit_from CoreArtifactTarget,作为文件对象需 CoreFileObject,需要模板或 Profile 时设置 generate_template / generate_profile。
使用方式:先收集需求并检查 Infrahub Marketplace 是否已有可复用 schema(infrahubctl marketplace get <ns>/<name> 后 inherit_from),确认所引用 kind 真实存在;随后编写 YAML,按规则设置命名、显示与关系;用 infrahubctl schema format 排序(离线),infrahubctl schema check 校验,再在专用分支加载:infrahubctl branch create <name> → schema check --branch <name> → schema load --branch <name>,通过 proposed change 合并。默认分支仅在本地一次性实例上使用。
适用场景:新数据模型设计、新增属性或关系、层级位置树与组件/父级模式、显示属性配置、schema 迁移与重构、验证错误排查。
限制:schema 变更会立即对已加载数据执行迁移,共享服务器上默认分支无预览与逐步回滚;泛型成员关系属于已发布接口,加入会改变所有查询与约束;关系 peer 由声明它的泛型固定,实现者无法收窄。具体命令、参数与行为以官方资料为准,资料未提供的内容暂未说明。