Changelog
[v1.0.10] - 2026-05-19
文档更新
- 根 README 全面升级至第 7 代架构文档:gen/ 隔离层、sqlc 数据层契约、DAO 测试体系
- tikrok-services README 全面重写:数据访问层架构、事务模式、测试分层、错误处理
[v1.0.9] - 2026-05-18
sqlc 数据层重构(第 7 代核心)
- sqlc.yaml 配置优化:
emit_interface: true、query_parameter_limit: 3、emit_pointers_for_null_types: true - 41 处
SELECT *全部替换为显式列名 - DAO 构造器从
*db.Queries变更为db.Querier接口,实现 Mock 可测试 - 消除 200+ 处
sql.NullX手动转换代码 - 20 个 DAO 实现
WithTx(*sql.Tx) DAO事务抽象
测试基础设施
- 5 个服务生成 MockQuerier ( gomock + mockgen )
- 63 个 DAO 单元测试:auth(26)、order(19)、tunnel(19)
- 创建
pkg/testutil/sqlctest包:轻量 Docker MySQL 测试助手 - 2 个集成测试:
HandlePaymentCallback事务原子性验证 - 9 个 Bash API 测试脚本覆盖全 API 面
错误处理
- 所有
GetByID/GetByEmail将sql.ErrNoRows封装为BizError( ErrNotFound ) - 逻辑层不再处理原始
sql.ErrNoRows
[v1.0.8] - 2026-05-17
gen/ 接口隔离层
- 创建
gen/目录:5 个纯 RPC 接口模块( auth/user/order/product/tunnel ) - 每个 gen 模块仅 15 行 go.mod 、~2.7K go.sum ,不含业务代码
- 修改 proto
go_package指向gen/模块路径 - 更新所有服务导入路径从
app/*/kitex_gen指向gen/* - Gateway 消费方只依赖
gen/*,不接触app/* - gen/ 模块可安全对外发布(不泄露业务实现)
Docker 部署优化
- 切换为预编译二进制多阶段构建
- 版本管理自动化( VERSION 文件 + build-images.sh )
- Docker Compose 版本自增 + 旧镜像清理
[v1.0.7] - 2026-05-16
多模块工作区重构
- 7 个子模块独立
go.mod/go.sum,由go.work统一管理 - 消除内部
replace依赖,模块可独立构建 BizError实现GRPCStatus()方法,支持 gRPC 错误码透明传输- 修复所有记录创建时缺失
CreatedAt时间戳的问题 - 测试脚本错误码断言统一修复
[v1.0.6] - 2026-05-15
GORM → sqlc+Goose 迁移
- 移除 GORM ,替换为 sqlc 代码生成框架 + Goose 迁移工具
- 创建 22 个数据库迁移文件( 00001-00022 )
- sqlc 生成类型安全的数据访问代码( Queries 结构体)
- 降低默认免费配额限制
- 提交全部 sqlc 生成代码及查询文件
Code Review 修复
- Uber Go 风格指南修复:goroutine 生命周期、全局变量、切片容量
- 安全修复:内部 API 认证、IDOR 、资源泄漏、CORS
- 泛型工具函数 + 100 Go Mistakes 修复
- 连接泄漏、并发安全、Context 传播、Etcd 锁重构
- Jeepay 子模块引用更新(连接泄漏修复)
- 订单数据流修复、静默错误处理、种子数据补充
[v1.0.5] - 2026-05-14
生产部署安全加固
- Vault 加密敏感配置
- 微服务角色分离
- MySQL 自动备份
- Ansible 集成 tikrok-services 微服务部署
流量计费链路完善
HandleTrafficReport/ReportTraffic/Heartbeat持久化- 内部 API 和流量上报路由注册
- ServiceConnector 统一管理 gRPC 连接
Gateway 精简重构
- 删除 SQLite 存储层,容器化部署
- 删除 payment/sso/sse 子系统(迁移至 tikrok-services )
- 删除业务逻辑 handler 和中间件(迁移至 tikrok-services )
- 重写 gRPC 客户端,使用 HTTP gateway 替代直接 gRPC 调用
[v1.0.4] - 2026-05-13
安全与稳定性
- 修复管理员端点 403 和列表返回 null 的问题
- 修复 API Key 认证和令牌失效( Logout 递增 TokenVersion )
- 修复 MySQL 保留关键字
key导致查询失败 - 修复 API Key 创建时零日期 MySQL 拒绝
- 添加 Gin 中间件 X-API-Key 认证
- 更新 Swagger 文档补充缺失路由和 definitions
- 后端全部缺失的 gRPC RPC 方法实现
[v1.0.3] - 2026-05-12
微服务功能完善
- HTTP Gateway 从 Hertz 迁移到 Gin 框架
- 9 个 Bash API 测试脚本(认证、密码、API Key 、配额、隧道、管理后台)
- etcd 服务发现修复:Docker 环境地址注册
- Swagger 文档和端到端测试基础设施
- Casdoor SSO 集成( OAuth/OIDC 回调、用户同步)
- ServiceConnector 统一 gRPC 连接管理器
[v1.0.2] - 2026-05-11
平台基础设施
- 微服务集群 Docker 容器部署( 12 容器 5 层依赖)
- 商品与授权系统设计
- Goose 数据库迁移任务和部署步骤
- etcd 服务实现自动重连与性能优化
- 修复 CRITICAL 和 WARNING 级别安全问题及代码缺陷
[v1.0.1] - 2026-05-10
- 项目全面清理与 gateway → tikrokd-server 重命名
- SDK 重构:移除所有非共享网络库包
- 完成 SDK 模块化,提炼
tikrok-sdk核心包
[v1.0.0] - 2026-05-09
初始架构定型
- 第 6 代 gRPC + Gin 微服务架构
- SDK 模块化( quic/protocol/tunnel/mux/discovery/pool/metrics )
- QUIC 数据面与服务端( tikrokd-server )
- 客户端 CLI ( tikrok )
- etcd 服务注册与发现
- MySQL + Redis 持久化
- JWT + API Key 认证
- Prometheus + Grafana 监控
- Ansible 自动化部署
- 36 项 E2E 自动化验证
- Jeepay 支付、Casdoor SSO 集成