Commit Graph
24 Commits
Author SHA1 Message Date
odboy 92c09df103 feat(config): 增强配置历史管理并统一数据库时间
- 新增 dao.Now() 函数获取数据库毫秒精度时间,避免多实例时钟偏差
- 增量同步查询增加上界(updated_at <= upperBound)防止竞态条件
- 配置创建、更新、删除、回滚统一使用数据库时间替代 time.Now()
- 配置历史新增 operate 字段记录操作类型(update/delete/rollback)
- 删除配置和回滚操作前增加历史快照记录
- 新增 DeleteHistory 接口支持手动删除单条历史记录
- 移除 GetHistory 的 Limit(5) 限制,返回完整历史列表
- 删除应用时同步更新关联配置的 updated_at 以便增量同步识别
- version 字段改为必填,前后端同步增加校验规则
- 前端历史列表增加操作类型列、删除按钮及表格最大高度限制
- 数据库表结构 datetime 升级为 datetime(3) 支持毫秒精度
2026-09-06 21:04:25 +08:00
odboy a62dbfe74c fix(sql): 修复SQL注入漏洞改用参数化查询
- app.go 将查询条件从字符串拼接改为占位符参数绑定
- config.go 将查询条件从字符串拼接改为占位符参数绑定
- user.go 将查询条件从字符串拼接改为占位符参数绑定
- 移除 app.go 中重复的条件构建逻辑
- 对 group_id、enabled 等参数增加类型校验与错误处理
2026-09-01 21:17:57 +08:00
odboy d2c0afa20e refactor: 移除未使用的 user_permission 表及权限加载逻辑
- 删除 UserPermission 模型与 xorm Sync2 注册
- 移除登录/鉴权时从 user_permission 加载授权的逻辑
- 应用列表查询去掉 user_permission 子查询,仅保留负责人和业务组条件
- SQL 导出文件删除建表语句,新增 drop_user_permission.sql 升级脚本
2026-08-29 21:11:20 +08:00
odboy d6a052e0a4 feat: 新增 Docker Compose 一键部署(MySQL + 后端 + 前端)
- 新增 docker-compose.yml,按健康检查顺序启动 MySQL 8、Go 后端与 Nginx 前端
- 新增 server/web 多阶段 Dockerfile、nginx 反向代理配置与 .dockerignore
- 后端支持 KENAITO_* 环境变量覆盖配置,新增 /health 健康检查接口
- 补充中英文 README 与 Docker 部署文档、.env.example 环境变量模板
2026-08-27 21:17:10 +08:00
odboy 639475b730 feat: 实现配置删除通知机制(deletedKeys)
- 服务端 fetchChangedConfigs 接口新增 deletedKeys 字段,返回已删除配置的 key 列表
- Go/Node.js/Python/Spring Boot 客户端支持解析 deletedKeys 并删除本地配置
- Spring Boot 客户端新增 removeConfigs 方法,同步更新 Spring Environment
2026-06-17 21:07:51 +08:00
odboy 18b8c4c18b fix: 客户端实例上报 IP 地址优先使用 IPv4
新增 getClientIP 辅助函数,将 IPv6 环回地址(::1)转为 127.0.0.1,
避免在线客户端列表显示 IPv6 地址。
2026-06-12 21:17:12 +08:00
odboy 9d475eacba feat: 环境管理页面添加环境名称模糊查询,统一双卡片布局 2026-06-02 21:08:32 +08:00
odboy d9043c6f78 perf: 优化 N+1 查询,改为批量 IN 查询
- config.go List 方法:配置列表查询应用名称从循环内逐条查询改为批量 IN 查询
- config_api.go recordClientInstances:客户端实例上报从循环内逐条查询+写入改为批量 IN 查询+批量插入
2026-05-30 21:04:38 +08:00
odboy fd16a61c87 feat: 后台管理页面查询条件统一改为独立卡片+按钮触发模式
业务组管理、用户管理、配置管理、应用管理页面的查询条件拆分为独立卡片,
新增查询/重置按钮,移除下拉选中即时触发查询的交互;
应用管理新增应用名称、应用编码模糊查询和业务组精确查询条件。
2026-05-28 21:09:26 +08:00
odboy c0aa5b6806 refactor: 使用 TableName() 替代硬编码表名 client_instance 2026-05-20 21:06:06 +08:00
odboy 0b2e836c27 feat: 业务组和应用支持多负责人,修复权限查询表名错误
- 业务组 MasterUid 改为 MasterUids(逗号分隔多用户ID)
- 应用 OwnerId 改为 OwnerIds(逗号分隔多用户ID)
- 前端负责人下拉框改为多选
- 权限查询改用 FIND_IN_SET 匹配多负责人
- 修复 user_permissions 表名错误(应为 user_permission)
- 所有数据库实体添加 TableName() 方法显式指定表名
- xorm tag 显式指定 owner_ids/master_uids 列名
- 启动时自动清理 owner_ids 中的空格
2026-05-15 21:09:40 +08:00
odboy 5e55d899c3 refactor: 重构菜单结构,配置列表改为应用维度管理 2026-05-12 21:01:49 +08:00
odboy 1d2d1ab83e style: 格式化 recordClientInstances 字段对齐并移除未使用的 fmt 导入 2026-05-07 21:16:20 +08:00
odboy 9a7679960c refactor: 添加 logger 模块并优化客户端实例清理逻辑
- 新增 logger 模块,统一使用 zap.SugaredLogger
- 将 config_api.go 中的 fmt.Printf 改为 logger.SugaredLogger.Errorf
- 客户端实例清理逻辑改为定时任务(每分钟执行)
- 清理条件改为 last_ping_at 超过 5 分钟
2026-05-02 21:01:26 +08:00
odboy 8957286bb5 fix: 修复客户端实例记录问题并删除父应用功能
- 客户端实例唯一标识改为 app_config_id+appName+env+ip 四元组
- 新增 last_ping_at 字段,轮询即更新,拉取配置时更新 last_fetch_at
- FetchChangedConfigs 无变更时也记录客户端实例
- 清理逻辑改为基于 last_ping_at 超过5分钟删除
- 删除父应用(ParentId)相关功能
2026-04-30 21:06:36 +08:00
odboy ed94f53306 feat: 实现客户端实例上报功能
- 新增 ClientInstance 模型,记录客户端 IP 与配置项的关联
- 配置拉取接口(fetchAll/fetchChanged)自动记录客户端信息
- 配置列表页面展示每个配置的在线客户端数量
- 点击可查看具体 IP 地址、拉取方式、最后拉取时间
- 超过 5 分钟未拉取的记录自动清理
- 注释掉 /api/ping 接口
2026-04-27 21:07:37 +08:00
odboy 858dfcb5cf feat: 查询条件优化和 xorm session 修复 2026-03-18 21:01:04 +08:00
odboy 6ab368f21e feat(group): 业务组禁用后限制用户登录和配置拉取 2026-03-15 21:19:48 +08:00
odboy 928a95fccd fix: 修复多个代码质量缺陷 2026-03-13 21:11:06 +08:00
odboy 932db9fbdc fix: 修复多个安全缺陷和功能问题
- 移除加密相关代码(服务端和所有客户端)
- 修复 JWT 验证未检查签名算法的问题
- 修复重置密码使用不安全随机数的问题
- 实现 Logout 服务端失效机制
- 修复历史版本对比 diff 颜色标记错误
- 修复占位符解析循环引用风险
- 添加用户禁用状态检查
- 更新 bug 清单文档
2026-03-10 21:07:22 +08:00
odboy 08b2ba4c25 refactor(api): fetchAllConfigs 接口从 GET 改为 POST
- 服务端: 新增 FetchAllRequest 结构体,参数通过 JSON body 传递
- 服务端: 路由从 api.GET 改为 api.POST
- Go/Python/Node.js/Java 客户端同步更新为 POST + JSON body
- 与 fetchChangedConfigs 接口风格统一,token 不再暴露在 URL 中
2026-02-20 21:18:43 +08:00
odboy b011b3a0b3 feat(app): 实现应用 Token 校验功能
- 服务端: fetchAllConfigs 和 fetchChangedConfigs 添加 Token 校验
- 前端: 应用列表添加 Token 列和生成/删除 Token 按钮
- 客户端: Python/Node.js/Java 客户端传递 token 参数
- Java: 简化 buildTokenParameter 直接传递 token 值
2026-02-18 21:02:30 +08:00
odboy b895321e9e feat(app): 添加生成/删除应用 Token 的 API
- GenerateToken: 生成 64 字符随机 Token 并保存到应用
- DeleteToken: 清空应用 Token
2026-02-13 21:11:47 +08:00
odboy 4436d3ee88 feat: 初始化配置中心项目 2026-01-14 21:02:13 +08:00