feat: 🛡️ Sentinel 集群监控插件 + API Key 系统 + 框架设置页

== API Key 系统 ==
- services/web_panel/routes/apikeys.py: CRUD + 权限模板 + 过期控制
- panel_auth + _check_plugin_auth 双重验证 (Session → API Key)
- 模板: readonly(只读) / monitor(监控) / full(管理)
- 持久化到 SenSuDB + 过期自动清理

== WebUI 框架设置页 ==
- static/web_panel/pages/settings.html: API Key 管理界面
- 创建对话框 (名称/权限/TTL), 列表表格, 一键删除

== 热重载修复 ==
- PluginService._reload_plugin: 路由器冻结时跳过 (避免破坏已注册路由)

== 🛡️ Sentinel 插件 ==
- 多节点 SenSu 集群性能监控
- 后台 urllib+run_in_executor 轮询 (避免事件循环死锁)
- SSE 实时推送仪表盘
- 节点管理页 (增删改+连接测试+备注)
- 路径: /sentinel/api/nodes

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
qinglong
2026-06-13 15:05:38 +08:00
parent 66ad51002c
commit 5e74b0aad7
6 changed files with 512 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
plugin_name: "sentinel"
permissions:
- "plugin.sentinel.read"
- "plugin.sentinel.write"
- "framework.event.subscribe"
- "framework.command.execute"
permission_descriptions:
plugin.sentinel.read: "读取哨兵监控数据和节点配置"
plugin.sentinel.write: "修改哨兵节点配置"
framework.event.subscribe: "订阅框架事件"
framework.command.execute: "执行哨兵管理命令"