Files
easygoadmin-wiki/EasyGoAdmin_GoFrame_EleVue/zh/changelog.md
T
2026-10-25 17:24:27 +08:00

350 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 1.6 更新日志
:::tip 说明
更新日志是项目演进的完整记录,帮助开发者和企业了解每个版本的能力变化与技术演进方向。对于开发者,可快速掌握新功能与 API 变更,降低升级成本;对于企业,可评估版本稳定性与功能成熟度,为技术选型和升级决策提供依据。建议在升级前阅读目标版本的变更内容,确保业务代码平滑适配。
:::
## 版本总览
| 版本 | 日期 | 主要内容 |
|:-----|:-----|:---------|
| **4.0.0** | **2026-10-20** | **核心架构定稿:标签体系与泛型基座** |
| 3.9.0 | 2026-09-07 | OAuth2 令牌治理 |
| 3.8.0 | 2026-07-26 | 安全加固与防护增强 |
| 3.7.0 | 2026-06-13 | 五方言驱动与整库迁移 |
| 3.6.0 | 2026-05-01 | 代码生成器 |
| 3.5.0 | 2026-03-21 | 运行监控体系 |
| 3.4.0 | 2026-02-05 | 内置任务与在线用户 |
| 3.3.0 | 2025-12-24 | 定时任务调度 |
| 3.2.0 | 2025-11-11 | 数据权限四档 |
| 3.1.0 | 2025-09-29 | 租户治理与状态校验 |
| 3.0.0 | 2025-08-18 | 多租户架构与数据隔离 |
| 2.9.0 | 2025-07-06 | 共享能力层沉淀 |
| 2.8.0 | 2025-05-24 | 工具模块与案例示范 |
| 2.7.0 | 2025-04-12 | 数据导入导出 |
| 2.6.0 | 2025-03-01 | 文件上传与富文本契约 |
| 2.5.0 | 2025-01-17 | 内容管理与行政区划 |
| 2.4.0 | 2024-12-05 | 字典、配置与参数 |
| 2.3.0 | 2024-10-23 | 操作审计与日志查询 |
| 2.2.0 | 2024-09-10 | 组织架构与个人中心 |
| 2.1.0 | 2024-07-29 | 用户管理与 RBAC 权限 |
| 2.0.0 | 2024-06-16 | 工程奠基与认证闭环 |
## [4.0.0] - 2026-10-20
**核心架构定稿:gmeta 标签体系与 ModuleSpec 泛型基座全面落地,路由、权限、日志、文档一体驱动,全域能力就位,生产部署就绪。**
### 新增
- **gmeta 标签体系定稿**:请求结构体上的一个标签同时驱动路由注册、权限校验、操作日志、OpenAPI 文档四件事,"标签即事实",杜绝多处不一致
- **ModuleSpec 泛型基座**:筛选、排序、树形、字典文本、文件字段、富文本、唯一校验、数据权限全部声明化,生命周期钩子承接差异,手写方法为合法逃生舱,基座永不出现按模块分支的代码
- **OpenAPI 输出**:gmeta 补注册进 goai,/api.json 原生 JSON + /swagger 本地 Redoc 页面
- **生成器与基座对齐**:生成的 logic 直接产出基座声明式实现,go build 后即可运行
- **模块版图收口**:监控域(操作日志/登录日志/定时任务/任务日志)与工具域(案例/文件模板/生成器/上传)能力全量就位
### 优化
- **主键策略定稿**(2026-10-13):统一 int 数据库自增,插入后经 LastInsertId() 回读,全局钩子不填主键
- **中间件链定稿**:CORS → Response → RateLimit → Demo → JWT → Tenant → OperationLog,权限校验收敛到 Bind 包装层每请求判定
- **筛选对齐三件套定稿**(2026-10-14):前端 querySchemas.ts、请求结构体同名驼峰字段、基座声明(LikeFields/EqFields)三处对齐,导出与列表同套筛选
- **目录平铺定稿**:api/controller/logic/service 单包 snake_case 文件,同包 init 自动注册
- **URL 约定收口**:统一 /api 前缀、无 /v1 版本段;公开白名单三处一致
- **配置环境变量覆盖**:GF_ 前缀 env-first 适配器(键名=配置路径大写下划线),compose 友好名映射,12-Factor 部署就绪
- **工程保障**:go vet / gofmt 门禁、sqlite 与 MySQL 集成测试、golden 黄金样本响应比对回归、CI workflow、docker compose 一键部署、145 页文档站
### 修复
- 富文本还原散落的字符串替换统一收敛到 ExpandContentFields 唯一出口,[IMG_URL] 占位符不再被业务代码旁路解析
## [3.9.0] - 2026-09-07
**OAuth2 令牌治理收口。**
### 新增
- **令牌刷新**:/oauth2/token 持 refresh_token 轮换新令牌,旧 jti 即时拉黑
- **令牌检测**:/oauth2/check/token 校验有效性
- **令牌吊销**:/oauth2/remove/:token 指定令牌即时失效
### 优化
- 前端令牌刷新链路统一对接 OAuth2 路由;登录响应保持 OAuth2 惯例字段(access_token / refresh_token / expires_in / token_type)
## [3.8.0] - 2026-07-26
**安全加固与防护增强。**
### 新增
- **接口限流**:固定窗口限流中间件,登录/验证码入口独立更严阈值(authLimit),计数经共享缓存多实例一致
- **受信代理**:api.proxyIps(支持 CIDR)内的代理才信任 X-Forwarded-For 首段 / X-Real-IP
- **演示模式白名单精细化**:公开路径与读操作精确放行,写操作统一拦截提示
- **健康检查**:/api/health 公开探测接口
### 优化
- 限流仅作用于 /api/ 路径,静态资源与文档页不受影响
## [3.7.0] - 2026-06-13
**五方言驱动与整库迁移能力建成。**
### 新增
- **五方言驱动**:MySQL / PostgreSQL / SQL Server / Oracle / SQLite 运行时切换,改配置 type/link 即换库
- **五份方言 DDL**:resource/sql 定稿,与 MySQL 基准逐表对齐
- **整库迁移器**:源库内省 → 中间表示 → 方言 DDL 渲染 → 分批搬运 → pgsql 序列修复,行数校验闭环
- **迁移 CLI**:源/目标连接参数、-drop-target-first 清空目标、-dry-run 预演
## [3.6.0] - 2026-05-01
**代码生成器上线,模块产出工业化。**
### 新增
- **双入口**:HTTP 页面与 CLI(-tables / -preview / -batch)
- **产出**:后端八件套(api/controller/logic/service + dao/index、dao/internal、entity、do)与前端页面五件
- **幂等副作用**:同步创建菜单、权限节点、字典数据与路由注册
- **字典自动创建**:按列注释枚举解析(支持 `1-正常` 与 `1=正常` 两种写法)
- **覆盖保护**:缺失补生成、存在跳过,generator.overwrite 开启才覆盖
### 优化
- 生成代码统一 gofmt;前端模板以 [[]] 定界,规避 Vue 插值冲突
## [3.5.0] - 2026-03-21
**运行监控体系上线。**
### 新增
- **服务器监控**:运行时、内存、磁盘分平台采集,MySQL / Redis 连通检测
- **缓存监控**:Redis INFO 解析展示,内存降级模式标识(mode=memory)
- **监控接口**:/server/info、/cache/info,配合在线用户列表运行状态一目了然
## [3.4.0] - 2026-02-05
**内置任务与在线用户治理。**
### 新增
- **LogClean 内置任务**:每日 02:30 分批物理清理三张日志表(保留天数默认 90,任务参数可覆盖)
- **在线用户模块**:登录登记 / 登出注销,在线列表与强制踢出(jti 拉黑防刷新复活)
### 优化
- CleanTemp 临时目录清理纳入调度统一管理(每日 03:30 触发)
- 调度消费约定完善:同步/异步标记与三种执行策略协同
## [3.3.0] - 2025-12-24
**数据驱动的定时任务调度系统。**
### 新增
- **常驻调度器**:启动加载启用任务,Cron 表达式触发
- **双执行形态**:HTTP 接口任务与本地处理器任务
- **三种执行策略**:并行 / 单例 / 放弃,单例与放弃叠加多实例执行锁(job:lock:{id},共享缓存 SET NX、300s 兜底)
- **任务日志**:执行时间、状态、耗时、错误详情完整留档
- **任务操作**:立即执行、暂停、恢复、状态设置、调度器状态查询
## [3.2.0] - 2025-11-11
**角色数据权限四档上线。**
### 新增
- **data_scope 四档**:全部 / 本部门及以下 / 本部门 / 仅本人
- **一行接线**:ApplyDataScope("dept_id") 声明即生效,作用于分页/列表/导出
- **身份缓存**:300s 缓存含数据范围与部门,多角色取最宽松档位,角色变更主动失效
### 修复
- 未分配部门用户在"本部门"档位越权可见——身份加载层降级为仅本人
## [3.1.0] - 2025-09-29
**租户治理与状态校验完善。**
### 新增
- **状态/过期校验**:中间件拦截(60s 缓存),禁用与过期租户拒绝访问
- **租户用户查询**:按租户维度检索用户列表
- **平台数据绕过**:超管与租户级表中的平台数据(tenant_id=0)自动放行
- **租户内分组唯一**:手机号/用户名等唯一性走分组唯一索引
## [3.0.0] - 2025-08-18
**多租户架构与数据隔离建成,SaaS 能力就绪。**
### 新增
- **全局钩子横切**:审计字段盖章、软删改写、租户隔离统一在 gdb 模型钩子层完成,dao.Ctx 是唯一查询入口
- **9 张租户级表自动隔离**:Insert 自动填充 tenant_id 与审计字段,Select 自动附加 del_flag 与租户条件
- **租户管理模块**:租户 CRUD、用户数统计
- **事务化开户**:租户与初始管理员同一事务创建(code = T + 4 位 ID)
- **用户上限**:tenant.max_user_num 校验,超限拒绝开户
### 优化
- 业务代码零侵入:不手写一行 del_flag / tenant_id 条件,横切逻辑全部下沉钩子层
## [2.9.0] - 2025-07-06
**共享能力层沉淀,横切逻辑收口。**
### 新增
- **base.go 共享能力层**:文件字段、富文本、枚举文本、唯一校验、事务、分块查询、树、临时清理八类横切能力统一沉淀
- **CheckUnique 唯一性预检**:UX 快速报错,并发真值由数据库 uk_* 唯一索引兜底
- **WithTrans 事务包裹**:错误自动回滚,事务内禁 HTTP/文件 IO,bcrypt 预计算
- **BuildTree 泛型树**:平铺数据转树形,叶子 Children 预置空数组
### 优化
- 共享层导出函数上限 15 个,超出按能力拆分子包,防止能力层膨胀
## [2.8.0] - 2025-05-24
**工具模块与标准示范补齐。**
### 新增
- **example 案例模块**:完整示范七件套 + 导入导出 + 字典文本 + 文件字段的标准写法
- **文件模板管理模块**:模板上传维护,按编码取用(getTemplateByCode)
- **upload 上传模块**:统一上传入口与返回 URL 约定
## [2.7.0] - 2025-04-12
**数据导入导出能力建成。**
### 新增
- **Excel 导入**:excelize 驱动,表头映射导入,空行自动过滤
- **Excel 导出**:标准化导出与文件下载,user / level / example 模块启用
- **大数据量分批导出**:ChunkQuery 分批查询(默认 500 条/页)防内存溢出
- **前端 xlsx 组件**:导入向导与导出按钮统一封装
### 修复
- 富文本跨域名图片占位符替换不完整
## [2.6.0] - 2025-03-01
**文件上传体系与富文本持久化契约。**
### 新增
- **两段式上传**:先落 temp 临时目录(扩展名白名单、单文件大小上限、图片魔数嗅探),表单保存时转正到按日期分子目录的正式位置
- **文件字段统一处理**:SaveFileField / SaveFileFields / SaveMultiFileField,批量转正与 URL 补全
- **富文本占位符契约**:入库 [IMG_URL] 占位、出库统一还原(LocalizeContentFields / ExpandContentFields 唯一出口),外站 URL 不处理规避 SSRF
- **SVG 安全加固**:.svg 响应强制 attachment + nosniff,防存储型 XSS
- **临时目录自动清理**:每日 03:30 清理超期 temp 日期目录(file.tempExpireDays 控制保留天数)
### 优化
- /upload/** 静态访问由 SetServerRoot("resource") 统一提供,上传目录按日期分子目录
## [2.5.0] - 2025-01-17
**内容管理与行政区划能力就绪。**
### 新增
- **文章与分类**:文章 CRUD(封面、图集、状态、点击量),分类树形无限级嵌套
- **通知公告**:类型、发布状态、富文本内容
- **友情链接**:图标、描述、启用/禁用
- **行政区划**:省市县三级数据与树形查询,ResolveCityNames / ResolveCityCodes 编解码(用户模块地址字段接入)
### 优化
- 富文本编辑器全站统一接入;列表状态筛选与模糊搜索标准化
## [2.4.0] - 2024-12-05
**字典、配置与参数三件套,基础数据标准化。**
### 新增
- **字典管理**:字典与字典项两级维护,枚举显示名经 {field}Text 字典驱动(唯一真相,进程内缓存 300s)
- **字典前端消费**:登录即可的查询接口与字典组件,下拉/徽标数据源统一
- **配置管理**:配置与配置项两级维护,站点设置页一键读取与保存
- **参数管理**:系统参数分类维护,请求级缓存
- **字典缓存刷新**:refreshCache 接口即时生效
## [2.3.0] - 2024-10-23
**操作审计与日志查询上线。**
### 新增
- **操作日志中间件**:异步批量落库(100 条或 1 秒刷盘),password/salt 脱敏、响应截断、耗时与状态记录,失败降级日志、不阻塞业务
- **日志类型体系**:新增/修改/删除/查询/导入/导出等 40+ 类型常量,logType 字符串声明驱动
- **日志查询模块**:操作日志/登录日志分页、详情、软删与批量删除
- **IP 归属地**:ip2region(xdb)自动填充归属地字段
### 优化
- 密码类字段响应自动剔除,日志参数统一脱敏
## [2.2.0] - 2024-09-10
**组织架构与个人中心完善。**
### 新增
- **部门/职级/岗位三模块**:部门树形无限级(parent_id 自关联)
- **树形接口约定**:叶子节点 Children 预置空数组,前端免判空
- **个人中心**:获取用户信息与菜单、修改密码(旧密码校验)、更新资料与头像
- 用户列表按部门/角色筛选,禁止删除有子部门/用户的部门
## [2.1.0] - 2024-07-29
**用户、角色与菜单权限体系落地。**
### 新增
- **用户/角色/菜单三模块**:标准七件套(分页/列表/详情/新增/修改/删除/批量删除)
- **RBAC 权限模型**:用户 → 角色 → 菜单权限节点(目录/菜单/按钮三级),按钮级控制
- **超级管理员**:通配权限 *:*:*,权限校验单点入口
- **角色保存权限**:重写角色-菜单关联并即时刷新缓存
- **用户扩展**:重置密码、用户-角色多角色分配、用户名/手机号唯一校验
- **gmeta 标签声明**:路由与权限经标签声明,包装层每请求判定
- 前端用户/角色/菜单管理页,权限指令控制按钮可见性
## [2.0.0] - 2024-06-16
**工程奠基版本:前后端分离骨架与认证闭环建立。**
### 新增
- **后端分层骨架**:api / controller / logic / service 四层 + dao/entity/do 数据访问链路,统一响应信封(code/msg/data)与 PageData 分页
- **建表约定**:goframe_ 表前缀、del_flag 软删列、审计字段(create_user/create_time/update_user/update_time)
- **登录认证**:用户名密码 + 图形验证码(TTF 渲染 + SVG 降级)
- **JWT 双令牌**:access 2 小时 + refresh 7 天,刷新轮换、旧 jti 拉黑防刷新复活
- **密码安全**:bcrypt 双重加盐加密
- **登录日志**:成功/失败/退出全记录(IP、浏览器、耗时、失败原因)
- **中间件链雏形**:CORS → Response → JWT → Demo 演示模式拦截
- **前端工程**:Vite + Vue3 + TypeScript + Pinia + ElementPlus,登录页、主布局、axios 封装与动态路由守卫