Initial commit: SenSu Alpha 0.2.0
- 13-service async plugin framework - Textual TUI with CLI fallback - Plugin hot-reload + permission system - Web management panel (aiohttp) - Bridge-based inter-module communication - 10 regression tests Fixes applied: - PBKDF2-SHA256 auth (was plain SHA256) - Auth bypass removed (was allow-all on fail) - Bare excepts replaced with logged errors - CatFramework/DreamSu -> SenSu naming unified - ServiceManager: health checks + startup_order - Env var credentials (SENSU_ADMIN_PASSWORD etc)
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
framework:
|
||||
debug: true
|
||||
name: SenSu
|
||||
version: Alpha_0.2.0
|
||||
logging:
|
||||
debug_level_file: true
|
||||
level: DEBUG
|
||||
max_file_size: 10MB
|
||||
max_log_files: 20
|
||||
plugins:
|
||||
auto_load: true
|
||||
hot_reload: true
|
||||
max_retry_count: 3
|
||||
# TUI配置
|
||||
tui:
|
||||
enabled: true
|
||||
refresh_rate: 30
|
||||
# TUI布局配置
|
||||
layout:
|
||||
grid_rows: "4fr 5fr 1fr" # 三行布局:日志区域、消息区域、输入区域的比例
|
||||
# TUI样式配置
|
||||
styles:
|
||||
log_area: "border: solid green; overflow-y: auto;"
|
||||
message_area: "border: solid yellow; overflow-y: auto;"
|
||||
input_area: "border: solid red;"
|
||||
# TUI日志显示配置
|
||||
log_display:
|
||||
max_lines: 200
|
||||
# 互联网服务配置
|
||||
internet:
|
||||
websocket:
|
||||
host: "0.0.0.0"
|
||||
port: 4240
|
||||
# 其他websocket配置...
|
||||
http:
|
||||
host: "0.0.0.0"
|
||||
port: 4200
|
||||
# 其他http配置...
|
||||
panel:
|
||||
entrance:
|
||||
path: "/SenSu"
|
||||
username: "admin"
|
||||
password: "admin"
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# 权限规则定义
|
||||
permission_levels:
|
||||
- "read"
|
||||
- "write"
|
||||
- "execute"
|
||||
- "admin"
|
||||
|
||||
default_permissions:
|
||||
- "framework.status.read"
|
||||
- "plugin.self.info.read"
|
||||
|
||||
admin_permissions:
|
||||
- "framework.*"
|
||||
- "plugin.*"
|
||||
- "service.*"
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"example_plugin": [
|
||||
"framework.event.subscribe",
|
||||
"framework.command.execute",
|
||||
"plugin.example.execute",
|
||||
"plugin.example.read",
|
||||
"plugin.example.write"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"10c4eb6e": {
|
||||
"plugin_name": "example_plugin",
|
||||
"permissions": [],
|
||||
"timestamp": 484215.183089762
|
||||
},
|
||||
"d6f52ecd": {
|
||||
"plugin_name": "example_plugin",
|
||||
"permissions": [
|
||||
"plugin.example.read",
|
||||
"plugin.example.write",
|
||||
"plugin.example.execute",
|
||||
"framework.event.subscribe",
|
||||
"framework.command.execute"
|
||||
],
|
||||
"timestamp": 484729.685713733
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"example_plugin": "granted"
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
commands:
|
||||
autoscroll:
|
||||
description: '滚动控制: 切换自动滚动'
|
||||
permissions:
|
||||
- framework.tui.control
|
||||
source: internal
|
||||
chat_broadcast: &id001
|
||||
description: 向所有聊天客户端广播消息
|
||||
permissions:
|
||||
- plugin.example.chat.broadcast
|
||||
source: plugin.example_plugin
|
||||
help:
|
||||
description: 显示帮助信息
|
||||
permissions:
|
||||
- framework.command.help.read
|
||||
source: internal
|
||||
history:
|
||||
description: 显示命令历史
|
||||
permissions:
|
||||
- framework.command.history.read
|
||||
source: internal
|
||||
netdiag:
|
||||
description: 网络服务诊断
|
||||
permissions:
|
||||
- framework.network.diagnose
|
||||
source: internal
|
||||
network_info: &id002
|
||||
description: 显示插件网络信息
|
||||
permissions: []
|
||||
source: plugin.example_plugin
|
||||
permissions:
|
||||
description: '权限管理: 显示权限状态'
|
||||
permissions:
|
||||
- framework.permission.read
|
||||
source: internal
|
||||
pm_plugin_status:
|
||||
description: '权限管理: 查看插件权限状态'
|
||||
permissions:
|
||||
- framework.permission.read
|
||||
source: internal
|
||||
pmallow:
|
||||
description: '权限管理: 同意权限请求'
|
||||
permissions:
|
||||
- framework.permission.read
|
||||
source: internal
|
||||
pmdeny:
|
||||
description: '权限管理: 拒绝权限请求'
|
||||
permissions:
|
||||
- framework.permission.read
|
||||
source: internal
|
||||
pmhelp:
|
||||
description: '权限管理: 显示权限命令帮助'
|
||||
permissions:
|
||||
- framework.permission.read
|
||||
source: internal
|
||||
pmignore:
|
||||
description: '权限管理: 暂时忽略权限请求'
|
||||
permissions:
|
||||
- framework.permission.read
|
||||
source: internal
|
||||
pmpending:
|
||||
description: '权限管理: 查看待授权请求列表'
|
||||
permissions:
|
||||
- framework.permission.read
|
||||
source: internal
|
||||
pmrequests:
|
||||
description: '权限管理: 查看待授权请求列表(别名)'
|
||||
permissions:
|
||||
- framework.permission.read
|
||||
source: internal
|
||||
pmtest:
|
||||
description: '权限管理: 测试权限配置文件'
|
||||
permissions:
|
||||
- framework.permission.read
|
||||
source: internal
|
||||
scroll:
|
||||
description: '滚动控制: 手动滚动到底部'
|
||||
permissions:
|
||||
- framework.tui.control
|
||||
source: internal
|
||||
status:
|
||||
description: 显示框架状态
|
||||
permissions:
|
||||
- framework.status.read
|
||||
source: internal
|
||||
testlog:
|
||||
description: 生成测试日志
|
||||
permissions:
|
||||
- framework.command.test
|
||||
source: internal
|
||||
last_updated: 119133.773274654
|
||||
plugin_commands:
|
||||
example_plugin:
|
||||
chat_broadcast: *id001
|
||||
network_info: *id002
|
||||
total_commands: 18
|
||||
@@ -0,0 +1,17 @@
|
||||
http_port: 8000
|
||||
last_updated: 119133.817076582
|
||||
plugin_routes:
|
||||
example_plugin:
|
||||
- methods:
|
||||
- GET
|
||||
path: /plugin/example_plugin/api/info
|
||||
require_auth: false
|
||||
- methods:
|
||||
- POST
|
||||
path: /plugin/example_plugin/api/echo
|
||||
require_auth: true
|
||||
- methods:
|
||||
- WEBSOCKET
|
||||
path: /plugin/example_plugin/ws/chat
|
||||
require_auth: true
|
||||
websocket_port: 8765
|
||||
Reference in New Issue
Block a user