Skip to content

Feat: 审计功能构建、远程命令协助、更详细的实例配置管理体系#40

Open
Cyrene2008 wants to merge 23 commits into
ClassIsland:masterfrom
Cyrene2008:master
Open

Feat: 审计功能构建、远程命令协助、更详细的实例配置管理体系#40
Cyrene2008 wants to merge 23 commits into
ClassIsland:masterfrom
Cyrene2008:master

Conversation

@Cyrene2008

@Cyrene2008 Cyrene2008 commented Jun 18, 2026

Copy link
Copy Markdown

新增功能:

  • 允许远程命令协助,并且可以查看返回的命令执行结果
  • 新增页面与预留通信接口用于:管理实例组件配置、自动化配置、插件安装与卸载
  • 完善了审计功能
  • 主页新增概览面板,可以查看:在线设备数量,近期执行的命令等
    修复:
  • 修复了WebUI课程表编辑器的问题

并行开发更改的仓库已发送PR请求:ClassIsland/ClassIsland#1865

Cyrene2008 added 22 commits June 5, 2026 21:33
- 修复 PaginatedList 支持 0-based 分页索引
- 同步 ManagementPolicy.DisableEasterEggs
- 新增 ManagementCredentialConfig、AuthorizeLevel
- 同步 ManagementManifest.ComponentsSource/CredentialSource
- 同步 ManagementVersions.CredentialVersion/ComponentsVersion
- 新增 ActionSetStatus 枚举
- 同步 UpdateStatus.UpdateDeployed、TimeState.AfterSchool
- 实现 AuditService 审计日志存储
- 实现 ConfigUploadService 配置快照存储
- 新增 AuditLog、ClientConfigSnapshot 实体及数据库迁移
- 新增 WebSocketConnectionManager 连接管理器
- 新增 WebSocketMiddleware 处理 /ws/client 端点
- 新增 RemoteCommand 实体和数据库迁移
- 新增 CommandsController(执行命令、查询状态、回传结果)
- 新增 DashboardController(聚合统计看板数据)
- CyreneMspConnectionService 新增 ValidateSession 方法
- 修复 DashboardController LINQ 翻译问题
- 修复 dashboard overview API 路径缺少 /api/v1 前缀
- 新增远程命令执行页面(commands/remote)
- 新增审计日志页面(audit/logs)
- 新增 AuditController 服务端审计日志列表 API
- 新增 commands/remote.ts 和 audit/logs.ts API 定义
- 更新 commands 路由添加远程命令入口
- 新增 audit 路由
- ObjectsUpdateNotifyService 新增 WebSocket DataUpdated 推送
- 远程命令页面:客户端选择器、手动刷新按钮、输出展开功能
- 修复看板 API 路径前缀
- Client 实体新增 RemoteAssistEnabled/RemoteAssistPin 字段
- 新增 RemoteAssistController(启用/禁用/验证 PIN)
- CommandsController 执行命令前验证 PIN
- WebUI 远程命令页面添加 PIN 输入框
- 数据库迁移 AddRemoteAssist
- 远程命令页面改用 AssigneeList 组件(支持实例/抽象实例/分组选择)
- 客户端远程协助改为只能开启,关闭/重置PIN只能在WebUI操作
- 服务端新增 reset-pin API
- 移除客户端远程协助开关,改为启用按钮
- RemoteAssistController status API 返回 PIN
- 远程命令页面客户端选择器改为只显示实例+实例名
- UI 文案改为「需要集控管理员操作」
- CommandTypes.proto 新增 ExecuteCommand=105
- 新增 RemoteExecuteCommand.proto 消息定义
- CommandsController 改用 ClientCommandDeliverService 推送
- 客户端 OnCommandReceived 处理 ExecuteCommand 类型
- 移除 WebSocket 命令推送依赖
- ProfileEntitiesService.SetClassPlanEntity 显式设置 TimeLayoutId FK
- 时间表编辑器修复 contactDateTime 月份补零
- 时间表编辑器修复 saveTimeLayout 使用 timeLayout.value
- ObjectsDeliveryController.GetClassPlans 使用 TryAdd 替代 Add
- 修复课表同时通过直接分配和分组分配时的重复 key 问题
- 新增 ClientAutomationConfig 实体和数据库迁移
- 新增 AutomationController(获取/更新/请求上报自动化配置)
- 新增 automation API 定义和 Vue 页面
- 新增 automation 路由
- 修复 ObjectsDeliveryController 课表 TryAdd
- ProfileService 加载后显式调用 RefreshTimeLayouts 修复课表显示
- 组件配置编辑器:可视化行/列布局、组件拖拽排列、容器组件子组件管理
- 自动化编辑器:工作流列表、触发器/动作类型选择、条件开关
- 两个编辑器都保留 JSON 编辑器作为高级模式
- 新增 RulesetEditor.vue 组件(规则组/规则增删、逻辑模式切换、反转)
- 自动化编辑器:条件部分替换为 RulesetEditor
- 组件编辑器:新增隐藏规则编辑(HideOnRule + HidingRules)
- 注册 15 种规则类型(窗口、课程、天气等)
- ClientPluginInfo/ClientPluginInstallRequest 实体
- ClientPluginsController: 列表、上报请求、安装(.cipx上传)、卸载、启用/禁用
- EF Core 迁移
- WebUI 插件管理页面(实例→插件管理)
- 路由 /clients/plugins
Vue 3 v-if 不支持 as 语法,改用 computed 属性绑定编辑对象
…st features

- Remove WebSocket middleware and connection manager
- Remove CommandsController and RemoteAssistController
- Remove RemoteCommand entity and database table
- Remove CommandsUser role
- Remove remote command Vue page and API
- Add PluginCommand proto for plugin management
- Refactor ClientPluginsController to use PluginCommand
- Replace WebSocket online count with database query
- Remove recent commands from dashboard
- Add database migration to drop RemoteCommands table and RemoteAssist columns
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant