odboy
|
bd6525f9a9
|
docs(readme): 标注Go和Node.js客户端Docker测试通过状态
- 在Go客户端标题添加"测试通过"标注
- 在Node.js客户端标题添加"测试通过"标注
|
2026-06-24 21:03:47 +08:00 |
|
odboy
|
ec33f8c52a
|
fix: 客户端日志打印变更配置名称,修复 Node.js Dockerfile 和 ConfigList 页面布局
- 各客户端 deleted/changed 日志增加具体配置名称输出
- Node.js Dockerfile 改为单阶段构建,修复依赖找不到问题
- ConfigList.vue 查询条件拆分为独立卡片,新增查询/重置按钮
- Node.js 客户端日志统一使用 console.error
|
2026-06-22 21:14:27 +08:00 |
|
odboy
|
b513435723
|
docs: 重构 README_DOCKERFILE.md,按客户端分节组织构建和运行命令
|
2026-06-19 21:10:21 +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
|
82523b9236
|
feat: 添加多语言客户端 Docker 支持
- 新增 .NET 客户端 SDK 和 demo 项目
- 添加 Go/Node.js/Python/.NET/SpringBoot2 的 Dockerfile
- Go demo 支持从环境变量读取配置
- 创建 README_DOCKERFILE.md 文档说明 Docker 使用方法
- 更新根目录 README.md 标记 .NET 客户端为已支持
|
2026-06-14 21:07:35 +08:00 |
|
odboy
|
18b8c4c18b
|
fix: 客户端实例上报 IP 地址优先使用 IPv4
新增 getClientIP 辅助函数,将 IPv6 环回地址(::1)转为 127.0.0.1,
避免在线客户端列表显示 IPv6 地址。
|
2026-06-12 21:17:12 +08:00 |
|
odboy
|
96c66c251b
|
feat: 应用管理和业务组管理负责人列改为显示数量
|
2026-06-09 21:05:23 +08:00 |
|
odboy
|
32a5cf8f85
|
refactor: 移除应用管理页面的新建配置按钮
|
2026-06-07 21:15:24 +08:00 |
|
odboy
|
4a965c4218
|
fix: 修复 ProfileList.vue 模板 div 标签未闭合问题
|
2026-06-04 21:07:42 +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
|
9889a08a4f
|
添加 Apache 2.0 开源许可证
|
2026-05-25 21:16:15 +08:00 |
|
odboy
|
1d94dbf8e1
|
优化:仅在 debug 模式下显示 SQL 日志
|
2026-05-23 21:01:16 +08:00 |
|
odboy
|
c0aa5b6806
|
refactor: 使用 TableName() 替代硬编码表名 client_instance
|
2026-05-20 21:06:06 +08:00 |
|
odboy
|
07e984828a
|
refactor: 移除启动时旧数据迁移逻辑
|
2026-05-17 21:15:58 +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
|
b1e738791b
|
chore(gitignore): 清理简化忽略规则
|
2026-05-10 21:05:35 +08:00 |
|
odboy
|
1d2d1ab83e
|
style: 格式化 recordClientInstances 字段对齐并移除未使用的 fmt 导入
|
2026-05-07 21:16:20 +08:00 |
|
odboy
|
1382c7a9f6
|
refactor: 将定时任务抽取到独立的 scheduler 包
|
2026-05-05 21:13:46 +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
|
b4b38fa0c7
|
chore: 删除多个客户端模块
移除以下未完成的客户端模块:
- C++ 客户端和 demo
- .NET 客户端和 demo
- Kotlin 客户端和 demo
- Lua 客户端和 demo
- PHP 客户端和 demo
- Ruby 客户端和 demo
- Rust 客户端和 demo
更新根目录 README.md,移除相关说明。
|
2026-04-25 21:05:00 +08:00 |
|
odboy
|
7efca9440a
|
chore: 删除 C 客户端和 demo
移除 kenaito-conf-c-client 和 kenaito-conf-c-client-demo 模块。
|
2026-04-22 21:08:02 +08:00 |
|
odboy
|
5f95415b0f
|
fix(c-client): 修复 SDK 头文件保护和 demo 编译问题
- SDK main.c: 添加条件编译 #ifndef/#define KENAITO_CONF_CLIENT_IMPL
- Demo main.c: 移除 #include SDK 源文件,改为 extern 声明函数
- 修复 demo 中访问 configs.count 的编译错误
编译方式:
gcc -o demo main.c ../kenaito-conf-c-client/main.c \
-I/usr/local/opt/cjson/include -L/usr/local/opt/cjson/lib \
-lcurl -lcjson -lpthread
|
2026-04-20 21:11:38 +08:00 |
|
odboy
|
638d2842e4
|
fix(c-client): 修正 cJSON 头文件路径和编译说明
- 修正头文件引用:cjson/cJSON.h(macOS Homebrew 标准路径)
- 更新 README 编译说明:
- macOS: 添加 -I/usr/local/opt/cjson/include 包含路径
- Ubuntu/Debian: 使用 pkg-config 自动获取包含路径
- 移除多余的 -lcjson 链接参数(编译时不需要)
|
2026-04-17 21:05:26 +08:00 |
|
odboy
|
7bf1dff3ce
|
feat(c-client): 实现完整的 C 客户端 SDK
核心功能:
- JSON 解析:使用 cJSON 解析服务端返回的配置
- 配置缓存:自动保存到本地 .kenaito-config-cache.json 文件
- 定时同步:后台线程定时拉取配置变更(默认 10 秒)
- 配置变更回调:配置变更时自动触发回调函数
- 全量/增量拉取:首次全量拉取,后续通过 lastTime 增量拉取
- 优雅退出:支持信号处理,Ctrl+C 优雅关闭
API:
- config_client_init() - 初始化客户端
- config_client_start() - 启动客户端(全量拉取 + 后台同步)
- config_client_get() - 获取配置值
- config_client_stop() - 停止客户端并保存缓存
依赖:
- libcurl(HTTP 请求)
- cJSON(JSON 解析)
- pthread(后台同步线程)
编译:
- SDK: gcc -c main.c -o kenaito_conf.o -lcurl -lcjson
- Demo: gcc -o demo main.c ../kenaito-conf-c-client/main.c -lcurl -lcjson -lpthread
|
2026-04-15 21:02:16 +08:00 |
|
odboy
|
102c62b64b
|
docs(c-client): 修正 macOS 依赖说明
macOS 系统自带 libcurl,无需额外通过 brew 安装。
|
2026-04-12 21:05:14 +08:00 |
|
odboy
|
455d6aa6f0
|
docs(c-client): 完善 README 文档
- 添加完整的依赖安装说明(macOS/Ubuntu/Debian/CentOS)
- 补充快速开始示例代码和配置变更监听示例
- 添加完整的 API 参考文档
- 补充配置参数表格
- 添加完整示例代码
- 添加 Demo 运行指南
- 补充注意事项(JSON 解析、缓存、线程安全等)
- 添加与其他客户端对比表格
- 添加版本历史和后续开发计划
|
2026-04-10 21:00:37 +08:00 |
|
odboy
|
8dfe811555
|
docs: 清理 C/C++ 客户端中加密相关的残留引用
- docs(c-client): 移除 OpenSSL 加密库依赖说明
- 移除 README 中的 OpenSSL 依赖和 AES-128-CBC 解密功能说明
- 更新编译命令,移除 -lssl -lcrypto
- main.c 注释移除 decrypt 提及
- docs(cpp-client): 移除 OpenSSL 加密库依赖说明
- 移除 README 中的 OpenSSL 依赖和 AES 解密功能说明
- 更新编译命令,移除 -lssl -lcrypto
- docs(README): 更新 C/C++ 客户端说明
- 移除 libcurl + OpenSSL 的描述
- 更新编译命令,移除加密库链接
说明:项目已确认不使用配置加密功能,所有加密相关代码和配置已清理完毕。
|
2026-04-07 21:08:45 +08:00 |
|
odboy
|
c1d6725700
|
docs(readme): 更新 Node.js 客户端测试状态为通过
- 将 kenaito-conf-nodejs-client 状态从"待测试"更新为"测试通过"
- 将 kenaito-conf-nodejs-client-demo 状态从"待测试"更新为"测试通过"
|
2026-04-04 21:07:48 +08:00 |
|
odboy
|
5a0297c590
|
docs(python-client): 更新文档状态及表格格式对齐
- 将Python客户端SDK和示例状态从"待测试"更新为"测试通过"
- 格式化配置项表格,调整列宽对齐提升可读性
- 格式化环境变量表格,统一各列对齐方式
|
2026-04-02 21:11:14 +08:00 |
|
odboy
|
95d48ddde6
|
docs(springboot2-client): 完善 Spring Boot 2 客户端文档并更新配置项命名
- 新增 kenaito-conf-springboot2-client 详细 README 文档
- 更新主 README 中客户端状态为"测试通过"
- 统一配置项前缀为 kenaito.configcenter(原 kenaito.config)
- 移除 Spring Boot 3 客户端相关描述和文件
- 移除 application-dev.properties 中的加密配置项
- 版本号升级至 1.0.3
|
2026-03-30 21:08:12 +08:00 |
|
odboy
|
87fca6db79
|
refactor(springboot2): 重命名 CCPropertyPlaceholderConfigurer 为 KenaitoPropertyPlaceholderConfigurer
- 统一品牌命名,将 CCPropertyPlaceholderConfigurer 重命名为 KenaitoPropertyPlaceholderConfigurer
- 更新相关代码和引用
|
2026-03-28 21:05:52 +08:00 |
|
odboy
|
751a0f770f
|
refactor: 配置刷新优化和加密功能移除
- refactor(springboot2): 简化配置刷新逻辑,移除 EnvironmentChangeEvent 包装
- ConfigChangeHanlder 直接接收 Map<String,String> 参数
- 移除 EnvironmentChangeEvent 事件类
- 优化 token 参数构建和敏感信息脱敏处理
- refactor(server): 移除配置加密功能
- 删除 CryptoConfig 结构体和相关配置项
- 移除 application-dev.properties 中的加密配置
- 项目不再使用配置加密功能
- docs: 更新 README 和模块文档
- fix: 修复 Node.js 客户端配置缓存
|
2026-03-25 21:00:59 +08:00 |
|
odboy
|
c2e599097e
|
feat(springboot3): 添加 RefreshScope 自动配置支持
- 新增 KenaitoRefreshAutoConfiguration 类,实现 ApplicationContextAware
- 更新 spring.factories,注册 EnableAutoConfiguration
- 与 Spring Boot 2 客户端保持一致,支持 @Value 和 @ConfigurationProperties 动态刷新
|
2026-03-23 21:04:15 +08:00 |
|
odboy
|
82707de831
|
docs: 更新 README API 文档,补充完整路由列表
|
2026-03-20 21:17:24 +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
|
f41d53da41
|
feat(web): 配置历史对比改为左右分栏,支持修改行识别
- 对比视图从上下布局改为左右分栏(当前生效 vs 历史版本)
- 新增 modified 行类型,相邻的删除+新增行配对标记为已修改(黄色高亮)
- 移除 diff npm 依赖,改用内置 LCS 算法实现行级对比
- 弹窗宽度调整为 1200px 适配双栏布局
|
2026-03-08 21:14:04 +08:00 |
|
odboy
|
4c3648cf7f
|
feat: 新增 8 个语言客户端 SDK
- PHP 客户端 (kenaito-conf-php-client)
- .NET 客户端 (kenaito-conf-dotnet-client)
- C 客户端 (kenaito-conf-c-client)
- C++ 客户端 (kenaito-conf-cpp-client)
- Lua 客户端 (kenaito-conf-lua-client)
- Kotlin 客户端 (kenaito-conf-kotlin-client)
- Rust 客户端 (kenaito-conf-rust-client)
- Ruby 客户端 (kenaito-conf-ruby-client)
每个客户端包含完整的 SDK 实现和 demo 示例,支持:
- 配置拉取(全量/增量)
- AES-128-CBC 解密
- 本地缓存
- 变更回调
- Token 认证
更新根目录 README.md:
- 技术栈列表新增 8 种语言
- 项目结构新增 16 个目录
- 客户端接入章节新增 8 个使用示例
|
2026-03-05 21:14:42 +08:00 |
|
odboy
|
2f5c343347
|
refactor(go-client): 拆分 demo 到独立目录并添加 README
- 将 kenaito-conf-go-client/example/ 拆分为独立的 kenaito-conf-go-client-demo/
- 添加 kenaito-conf-go-client/README.md 使用说明
- 更新根目录 README.md 项目结构
|
2026-03-03 21:10:12 +08:00 |
|
odboy
|
f0158c829c
|
chore(demo): Node.js demo 依赖改为版本号引用
- kenaito-conf-nodejs-client-demo 的 package.json 中 kenaito-conf 依赖从 file: 路径改为 ^1.0.0
- 已通过 npm link 安装到本地仓库,直接引用版本号即可
|
2026-02-28 21:19:11 +08:00 |
|
odboy
|
03a95abb4b
|
refactor: 客户端目录统一添加 kenaito-conf- 前缀
- go-client → kenaito-conf-go-client
- python-client → kenaito-conf-python-client
- python-client-demo → kenaito-conf-python-client-demo
- nodejs-client → kenaito-conf-nodejs-client
- nodejs-client-demo → kenaito-conf-nodejs-client-demo
- 更新所有 README 和 package.json 中的路径引用
|
2026-02-26 21:13:49 +08:00 |
|
odboy
|
710659350d
|
feat(web): Token 列显示掩码并支持一键复制
- Token 列显示前4位+****+后4位掩码格式
- 添加复制按钮,点击复制完整 Token 到剪贴板
- 列宽从 120 调整为 200 以容纳掩码和按钮
|
2026-02-23 21:06:59 +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 |
|