|
|
353621d923
|
移除所有测试代码和测试要求
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m33s
**变更说明**:
- 删除所有 *_test.go 文件(单元测试、集成测试、验收测试、流程测试)
- 删除整个 tests/ 目录
- 更新 CLAUDE.md:用"测试禁令"章节替换所有测试要求
- 删除测试生成 Skill (openspec-generate-acceptance-tests)
- 删除测试生成命令 (opsx:gen-tests)
- 更新 tasks.md:删除所有测试相关任务
**新规范**:
- ❌ 禁止编写任何形式的自动化测试
- ❌ 禁止创建 *_test.go 文件
- ❌ 禁止在任务中包含测试相关工作
- ✅ 仅当用户明确要求时才编写测试
**原因**:
业务系统的正确性通过人工验证和生产环境监控保证,测试代码维护成本高于价值。
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-11 17:13:42 +08:00 |
|
|
|
6f1350b527
|
修复日志中间件的 UserID 类型转换 panic 问题
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m31s
问题描述:
- 认证中间件存储的 UserID 是 uint 类型
- 日志中间件和错误上下文错误地将其断言为 string 类型
- 导致所有认证请求在记录访问日志时发生 panic
修复内容:
1. pkg/logger/middleware.go
- 修改 UserID 变量类型从 string 为 uint
- 使用安全的类型断言 (uid.(uint))
- 使用 zap.Uint 记录日志
2. pkg/errors/context.go
- 修改 UserID 类型断言从 string 为 uint
- 使用 strconv.FormatUint 转换为 string 用于错误上下文
影响范围:
- 修复所有需要认证的接口的 panic 错误
- 包括 /api/admin/shops, /api/admin/me, /api/admin/permissions 等
|
2026-01-21 12:17:19 +08:00 |
|
|
|
eaa70ac255
|
feat: 实现 RBAC 权限系统和数据权限控制 (004-rbac-data-permission)
主要功能:
- 实现完整的 RBAC 权限系统(账号、角色、权限的多对多关联)
- 基于 owner_id + shop_id 的自动数据权限过滤
- 使用 PostgreSQL WITH RECURSIVE 查询下级账号
- Redis 缓存优化下级账号查询性能(30分钟过期)
- 支持多租户数据隔离和层级权限管理
技术实现:
- 新增 Account、Role、Permission 模型及关联关系表
- 实现 GORM Scopes 自动应用数据权限过滤
- 添加数据库迁移脚本(000002_rbac_data_permission、000003_add_owner_id_shop_id)
- 完善错误码定义(1010-1027 为 RBAC 相关错误)
- 重构 main.go 采用函数拆分提高可读性
测试覆盖:
- 添加 Account、Role、Permission 的集成测试
- 添加数据权限过滤的单元测试和集成测试
- 添加下级账号查询和缓存的单元测试
- 添加 API 回归测试确保向后兼容
文档更新:
- 更新 README.md 添加 RBAC 功能说明
- 更新 CLAUDE.md 添加技术栈和开发原则
- 添加 docs/004-rbac-data-permission/ 功能总结和使用指南
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-18 16:44:06 +08:00 |
|
|
|
ea0c6a8b16
|
测试一下修复一部分问题
|
2025-11-11 18:15:39 +08:00 |
|
|
|
1f71741836
|
完成 Phase 10 质量保证,项目达到生产部署标准
主要变更:
- ✅ 完成所有文档任务(T092-T095a)
* 创建中文 README.md 和项目文档
* 添加限流器使用指南
* 更新快速入门文档
* 添加详细的中文代码注释
- ✅ 完成代码质量任务(T096-T103)
* 通过 gofmt、go vet、golangci-lint 检查
* 修复 17 个 errcheck 问题
* 验证无硬编码 Redis key
* 确保命名规范符合 Go 标准
- ✅ 完成测试任务(T104-T108)
* 58 个测试全部通过
* 总体覆盖率 75.1%(超过 70% 目标)
* 核心模块覆盖率 90%+
- ✅ 完成安全审计任务(T109-T113)
* 修复日志中令牌泄露问题
* 验证 Fail-closed 策略正确实现
* 审查 Redis 连接安全
* 完成依赖项漏洞扫描
- ✅ 完成性能验证任务(T114-T117)
* 令牌验证性能:17.5 μs/op(~58,954 ops/s)
* 响应序列化性能:1.1 μs/op(>1,000,000 ops/s)
* 配置访问性能:0.58 ns/op(接近 CPU 缓存速度)
- ✅ 完成质量关卡任务(T118-T126)
* 所有测试通过
* 代码格式和静态检查通过
* 无 TODO/FIXME 遗留
* 中间件集成验证
* 优雅关闭机制验证
新增文件:
- README.md(中文项目文档)
- docs/rate-limiting.md(限流器指南)
- docs/security-audit-report.md(安全审计报告)
- docs/performance-benchmark-report.md(性能基准报告)
- docs/quality-gate-report.md(质量关卡报告)
- docs/PROJECT-COMPLETION-SUMMARY.md(项目完成总结)
- 基准测试文件(config, response, validator)
安全修复:
- 移除 pkg/validator/token.go 中的敏感日志记录
质量评分:9.6/10(优秀)
项目状态:✅ 已完成,待部署
|
2025-11-11 16:53:05 +08:00 |
|
|
|
39c5b524a9
|
备份一下
|
2025-11-11 15:53:01 +08:00 |
|
|
|
e98dd4d725
|
做完了一部分,备份一下,防止以外删除
|
2025-11-11 15:16:38 +08:00 |
|
|
|
9600e5b6e0
|
做一次小小的备份,等会又删掉了
|
2025-11-11 10:09:45 +08:00 |
|
|
|
37c4404293
|
初始化项目结构
|
2025-11-10 15:57:21 +08:00 |
|