Skip to content

1.6 更新日志 ​

概述

本项目遵循语义化版本演进,重大架构决策与约定变更记录于此。详细提交历史见 Gitee 仓库。

v4.0.0(2026-10 · 当前版本) ​

GoFrame+ElementPlus 版本首个正式封板版本,25 张业务表 → 27 个模块完整落地。

架构定稿 ​

  • 主键统一 int 数据库自增(2026-10-13 定稿):禁用雪花算法(utility/id 已删除);新增后用 result.LastInsertId() 回读;hooks 不填 id
  • 目录平铺结构:api/v1、controller、logic、service 均为单包,每模块一个 snake_case 文件,同包 init 自动注册
  • 中间件链定稿:CORS → Response → RateLimit → Demo → JWT → Tenant → OperationLog,权限校验在 Bind 包装层完成
  • 筛选对齐三件套(2026-10-14 定稿):前端 querySchemas.ts ↔ XxxPageReq 同名驼峰字段 ↔ spec 声明(LikeFields/EqFields),导出与列表同套筛选
  • URL 约定:全部路由统一 /api 前缀,无 /v1 版本段;公开白名单三处一致(public.go / gmeta public 标签 / router.go 手工注册)

功能清单 ​

  • 认证与安全:JWT 双令牌(access 2h + refresh 7d 轮换)、jti 黑名单、图形验证码(TTF 渲染 + SVG 降级)、bcrypt 双重加盐、固定窗口限流(认证入口独立阈值)、演示模式、受信代理 IP
  • 权限体系:RBAC(user→role→menu 权限节点)、gmeta permission 标签、前端权限指令、超管通配权限 *:*:*
  • 多租户:9 张租户级表自动隔离(hooks.tenantTables)、租户状态/过期中间件校验(60s 缓存)、事务化开户、用户上限
  • 数据权限:role.data_scope 四档(全部/本部门及以下/本部门/仅本人),ApplyDataScope("dept_id") 一行声明接线
  • CRUD 基座:ModuleSpec 泛型(筛选/排序/树形/字典/文件/富文本/唯一校验/钩子/数据权限)
  • 监控体系:在线用户(双令牌拉黑强退)、服务器监控、缓存监控(Redis INFO)、操作日志(异步批量落库 + 脱敏)、登录日志(ip2region 归属地)
  • 定时任务:数据驱动调度器、HTTP/本地处理器双形态、三种执行策略、多实例执行锁(job🔒{id})、内置 LogClean/CleanTemp
  • 代码生成器:HTTP + CLI 双入口、后端八件套 + 前端五件产出、菜单/权限/字典/路由幂等副作用、覆盖策略保护
  • 整库迁移器:五方言互迁(内省 → IR → 方言 DDL → 分批搬运 → 序列修复 → 行数校验)
  • 文件体系:两段式上传(temp → 正式目录)、富文本 [IMG_URL] 持久化契约、临时目录每日 03:30 自动清理

工程保障 ​

  • 静态门禁:go vet + gofmt 检查;前端 ESLint + Prettier + Stylelint + commitlint
  • 测试:sqlite 集成测试 + hooks MySQL 集成测试
  • 回归:hack/golden 黄金样本接口响应比对(录制参数带 pageSize=3 等)
  • OpenAPI:gmeta 补注册进 gf goai,/api.json 原生输出 + /swagger 本地 Redoc 页面

历史版本 ​

版本说明
v4.0.0-beta27 模块全量实现,架构决策落地(主键自增、中间件链、筛选三件套定稿)
v4.0.0-alpha项目初始化:GoFrame 骨架 + 核心模块(auth/user/role/menu)+ 前端工程搭建

破坏性变更记录 ​

变更须知

  • 2026-10-13:主键策略由雪花算法改为数据库自增——历史数据的 id 语义不变,但新增代码禁止依赖 utility/id(包已删除)。
  • URL 全部去版本段——/api/v1/* 形式的旧链接失效,前端 baseURL 为 /api。
  • 前端登录响应字段为 access_token/refresh_token/expires_in/token_type(下划线),与全局驼峰约定不同,这是 OAuth2 惯例,禁止"修正"。

小蚂蚁云团队 · 提供技术支持