更新日志
更新日志
本文档对应 CSMS v0.3.2。
v0.3.2(当前版本)
- 外部开放 API(v1):新增物理隔离于内部接口的
/api/v1/**端点,支持第三方通过api_token对学校 / 年级 / 班级级业务数据做增删改查。 - 凭证体系:主库新增
api_tokens/api_audit_logs表、各校分库新增api_idempotency表;token 以sha256哈希存储,明文仅签发时可见一次。 - 范围与权限双控:凭证绑定「学校 / 年级 / 班级」范围 + 12 项细粒度权限(含 2 项危险权限默认不勾选),写操作严格限制在范围内;签发范围强制不超过签发者自身管辖。
- 三铁律落地:系统数据不可被外部操作、写操作仅限校级及以下业务数据、所有请求必须携带
api_token。 - 写操作幂等:
Idempotency-Key头保证重试不重复加分 / 建号(并发冲突返回 409)。 - Token 维度限流:全量 600 次/分钟 + 写操作 120 次/分钟,超限返回
429+Retry-After。 - 全量调用审计:每次 v1 调用(含鉴权失败 / 限流)写入
api_audit_logs并带X-Request-Id,保留 30 天。 - 凭证管理界面:
/admin/api-tokens页面签发 / 编辑 / 禁用 / 吊销凭证、查看调用日志,签发与吊销均二次验密。 - 新增外部开放 API 对接文档(见 )。
v0.3.1
- 管理员认证增强:支持邮箱 + 密码登录、邮箱验证码登录、忘记密码(邮箱验证码)找回。
- 新增超管「用户管理」模块:集中管理全部管理员账号与跨校学生列表。
- 管理员所属(学校 / 年级 / 班级)可编辑,可选项由管理级别约束(
super_admin无所属;school_admin仅学校;grade_admin学校+年级;class_admin学校+年级+班级)。 - 学生端支持邮箱绑定与邮箱验证码找回密码。
- 数据库文件位于
data/(主库data/csms.db);.gitignore已忽略*.db/*.sqlite等运行期文件。 - 入驻学校列表展示学校 ID;入驻申请实时校名校验(防抖检查重名)。
- 重复学校判定放宽:已删除、已拒绝的学校不计入重复,允许重新申请。
- 已审核通过的学校被删除后,入驻申请页标记黄色「已删除」标签;已删除学校仍显示原学校 ID(新增
deleted_school_id快照列)。 - 审核通过通知邮件附带学校 ID(邮件模板补充
schoolId变量)。 - 入驻申请「联系」列改为双行显示:第一行电话、第二行邮箱。
- 邮件通知系统:入驻审核结果邮件通知、邮件模板管理(变量占位)、邮件服务配置(SMTP / Resend)。
v0.3.0
CSMS 的一次完全重构,从 PHP + jQuery 的传统架构全面升级为现代化的 Nuxt 全栈框架:
- 🏫 多校多班分级管理
- 🔐 四级权限组体系
- 📢 公告系统
- 🏫 学校入驻申请
- 👨🎓 学生端自助查询
- 🎨 深色主题现代化 UI
- ⚡ Nuxt 全栈重构
- 📱 响应式设计
- 🔒 XSS 安全过滤
- 📝 TypeScript 类型安全
- 🤖 QQ 机器人接入(⚠️ 暂不可用,v0.3.0 重构后失效)
