Plugins
Plugin Availability
说明 enabled 和 available 的区别,以及静态 catalog 视图和 runtime 可用性的差异
Plugin Availability
plugin 当前有两个非常容易混淆的状态:
enabledavailable
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恒为 trueavailable也默认可用
它不走普通可选启停语义。
对文档使用者最稳的理解
把它记成两句:
enabled是开关available是健康度