CellSpec 字段可变性

wesgine CellSpec 的字段通过 struct tag 标记可变性级别。


三种可变性标记

type CellCoreSpec struct {
    Timezone string `wesgine:"immutable"` // 创建后不可更改
    Locale   string `wesgine:"mutable"`   // 运行时可修改
    // ...
}
标记含义UpdateSpec 行为
immutable创建后永不可改传入值与原值不同 → 报错
mutable随时可改直接覆盖
restricted有条件可改需额外校验(如 Compliance 降级)

不可变字段

创建 Cell 时确定,此后不可变更:

变更这些字段意味着改变 Cell 的身份,应该创建新 Cell 而非修改。


可变字段

运行时可通过 SpecPatch 修改:


受限字段

修改需要额外校验或条件:


热更新与冷更新

更新方式效果示例
热更新立即生效,无需重启Governance、Quotas
冷更新需要重启 Cell 才生效外设配置(Channels、MCPs)

SpecPatch 只做热更新。需要冷更新的字段通过 Restart 操作。


API 端点

PATCH /admin/cells/{id}              # 管理端更新 SpecPatch
PUT   /cells/{id}/config/governance  # Cell 端更新治理策略
PUT   /cells/{id}/config/cycle-detect # Cell 端更新循环检测

相关文档