Web 终端实验
1. 能力定位
Web 终端实验是在报告型实验之外提供的环境型实验能力。教师可以发布 TERMINAL 类型实验,学生在浏览器中启动专属实验环境,并通过 Web 终端完成命令行操作。
首版聚焦 Linux shell 类实验,不包含远程桌面、教师接管终端、命令录屏、多人协作环境和持久卷快照。
2. 用户路径
2.1 教师
- 在教师实验中心选择课程和教学班。
- 创建实验时选择“Web 终端实验”。
- 选择环境模板,例如“Linux Shell 基础环境”。
- 填写实验说明和环境说明。
- 发布实验。
- 查看学生环境会话列表,确认状态、启动时间、最后活跃时间、到期时间和失败原因。
2.2 学生
- 在学生实验项目中打开已发布的 Web 终端实验。
- 阅读实验说明和运行环境说明。
- 点击“启动环境”,等待状态进入“运行中”。
- 点击“打开终端”,通过浏览器终端操作实验环境。
- 可停止环境;重置环境前必须确认,重置会删除当前临时环境。
- 环境停止、过期或启动失败后,页面显示明确状态和后续操作入口。
2.3 教师会话查看
教师会话列表只提供状态查看,不提供连接学生终端或接管学生环境。会话数据用于课堂巡视、排障和实验进度判断。
3. 数据与权限边界
REPORT实验继续使用实验报告、附件、评阅和发布评阅流程。TERMINAL实验使用独立的环境模板、环境会话和连接票据概念,不把终端环境字段塞入实验报告。- 学生只能启动、停止、重置自己的实验环境。
- Web 终端连接使用短期 token,浏览器不直接接触 Kubernetes API、Pod IP、NodePort 或 kubeconfig。
- 教师创建、编辑、发布终端实验沿用实验管理权限;班级范围权限仍按既有课程成员边界裁剪。
4. 环境模板
环境模板描述终端实验的运行基础,包括镜像、shell 命令、CPU、内存、临时存储、TTL、空闲超时和网络策略。
首版由后端提供默认可用模板,不要求平台管理员维护完整模板 UI。后续可扩展为课程或平台级模板管理。
5. 验收要点
- 教师创建表单必须能区分报告实验和 Web 终端实验。
- Web 终端实验发布前必须绑定启用的环境模板。
- 学生环境面板必须显示模板、资源摘要、状态、时间和失败原因。
- 终端区域必须有稳定高度,输出内容不能撑乱页面。
- 重置环境必须有确认弹窗,并说明临时环境会被删除。
- fake runtime 可用于本地联调和 E2E 验证;生产 Kubernetes runtime 需要单独配置和实测。