Plugins

Plugin Availability

说明 enabled 和 available 的区别,以及静态 catalog 视图和 runtime 可用性的差异

Plugin Availability

plugin 当前有两个非常容易混淆的状态:

  • enabled
  • available

enabled

表示:

  • 这个 plugin 在 city 级配置里是否被打开

它更像生命周期开关。

available

表示:

  • 在当前上下文里,这个 plugin 现在到底能不能真正工作

它更像运行态可用性。

一个 plugin 完全可能:

  • enabled = true
  • available = false

例如:

  • provider 还没安装
  • Python 依赖没准备好
  • 模型没下载好

为什么要分两层

因为“用户允许它启用”和“当前真的能工作”不是一回事。

这能让 UI 更准确地表达:

  • 开关状态
  • 故障状态

静态 catalog 和 runtime availability 的区别

静态 catalog

控制面上的静态 plugin 视图,主要表达:

  • 哪个 plugin 存在
  • 是否在 city 配置中启用

它不一定总能加载完整运行时上下文。

runtime availability

运行时 availability 更接近:

  • 现在真的能不能用

它可以结合:

  • 当前配置
  • 依赖检查
  • plugin 自己的 availability 逻辑

一个特殊例子:auth

auth 当前是特殊 plugin:

  • enabled 恒为 true
  • available 也默认可用

它不走普通可选启停语义。

对文档使用者最稳的理解

把它记成两句:

  • enabled 是开关
  • available 是健康度

相关文档