XuqmGroup
4c6be2c489
feat: 版本状态看板 — 检查更新时展示全量服务对比表格
...
- Dockerfile.tenant/ops: 注入 SERVICE_VERSION ARG,设置 com.xuqm.version 标签
- Jenkinsfile: 移除手动 IMAGE_TAG;自动递增语义版本;构建后更新 versions.json;commit VERSION 文件
- SecurityCenterView: 点击「检查更新」后始终展示全量服务当前版本 vs 云端版本对比表格(不再仅 hasUpdate 时显示)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 19:33:39 +08:00
Jenkins CI
b31bf0ce45
ci: bump tenant-web to 1.0.11 [skip ci]
2026-06-16 19:24:27 +08:00
XuqmGroup
b75efcefd8
feat(tenant-platform): 应用详情页显示 BugCollect 服务 + 服务管理菜单新增崩溃收集
...
- AppDetailView: 新增崩溃收集服务卡片(开通/关闭/跳转概览&错误列表)
- serviceLabel/serviceHelp: 补充 BUG_COLLECT 对应文案
- MainLayout: 服务管理子菜单新增「崩溃收集」入口(/services/bugcollect)
- router: 注册 services/bugcollect 路由 → BugCollectOverview
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 19:22:02 +08:00
Jenkins CI
a6c929e406
ci: bump tenant-web to 1.0.10 [skip ci]
2026-06-16 19:02:52 +08:00
Jenkins CI
b29ea8c308
ci: bump ops-web to 1.0.3 [skip ci]
2026-06-16 18:58:12 +08:00
Jenkins CI
7d20388c61
ci: bump tenant-web to 1.0.9 [skip ci]
2026-06-16 18:35:11 +08:00
XuqmGroup
95a8a3f876
refactor: log-monitor → bug-collect 重命名
...
- 目录/文件/API/路由/侧边栏全部重命名
- API路径 /log/v1/ → /bugcollect/v1/
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 18:33:21 +08:00
Jenkins CI
35f8d30cd5
ci: bump tenant-web to 1.0.8 [skip ci]
2026-06-16 18:31:19 +08:00
XuqmGroup
09f4afac41
Merge remote-tracking branch 'origin/main'
2026-06-16 18:30:08 +08:00
XuqmGroup
1abf05ecca
feat(log): 重构日志监控功能为Bug收集系统
...
- 将日志监控模块重命名为Bug收集模块
- 更新路由路径从 /log/* 到 /bugcollect/*
- 修改导航菜单项名称为"Bug收集"
- 更新API代理路径从 /api/log 到 /api/bugcollect
- 新增完整的Bug收集前端功能实现
- 添加错误列表、概览、事件流水、漏斗分析等功能页面
- 实现错误详情展示包括堆栈追踪和源码上下文
- 创建新的bugcollect API接口文件和类型定义
2026-06-16 18:30:01 +08:00
Jenkins CI
a15793e3a2
ci: bump tenant-web to 1.0.7 [skip ci]
2026-06-16 18:27:00 +08:00
Jenkins CI
254388cd1f
ci: bump ops-web to 1.0.2 [skip ci]
2026-06-16 18:00:39 +08:00
XuqmGroup
1ad3cc481d
revert: 还原日志监控页面(Bug收集服务改由租户平台管理)
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 17:39:59 +08:00
Jenkins CI
f6b29bac57
ci: bump ops-web to 1.0.1 [skip ci]
2026-06-16 16:28:47 +08:00
XuqmGroup
ca09e7c2f8
fix: LogEvents/LogIssues size.value 类型修正
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 16:26:54 +08:00
XuqmGroup
9bc227f3a3
feat: 日志监控模块 — 8 个页面
...
- 概览仪表盘(统计卡片 + echarts 趋势图 + Top5)
- 错误列表(分页 + 筛选)
- 错误详情(stack trace + 源码上下文)
- 事件流水(分页 + 筛选)
- 漏斗分析(动态步骤 + 转化率)
- Webhook 配置(CRUD)
- 高频/高危排行
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 16:20:16 +08:00
Jenkins CI
b071350ab4
ci: bump tenant-web to 1.0.6 [skip ci]
2026-06-16 14:20:51 +08:00
XuqmGroup
7a85d99001
fix: AlertTriangle → Warning 图标修正
...
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 14:19:20 +08:00
XuqmGroup
2d7b1943cd
feat: 日志监控模块 — 8 个页面
...
- 概览仪表盘(统计卡片 + 趋势图 + Top5)
- 错误列表(分页 + 筛选)
- 错误详情(符号化 stack + 源码上下文)
- 事件流水(分页 + 筛选)
- 漏斗分析(动态步骤 + 转化率)
- Webhook 配置(CRUD)
- 高频/高危排行
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-16 14:13:47 +08:00
Jenkins CI
23b600987b
ci: bump tenant-web to 1.0.5 [skip ci]
2026-06-16 14:03:52 +08:00
XuqmGroup
72c36ffb82
docs(sdk): 添加 Android SDK 架构总览文档
...
- 新增架构总览文档,包含整体架构图和依赖关系
- 详细描述初始化流程(ContentProvider 自动和手动两种方式)
- 补充技术栈版本信息和发布说明
- 更新服务器端和Web端项目上下文文档
- 添加新模块 xuqm-log-service 的版本文件
- 在服务器端 POM 中注册 xuqm-log-service 模块
- 修复 Android SDK 字符串模板语法错误
- 修改服务器端 webhook 服务的 Redis 锁获取逻辑
2026-06-16 12:35:17 +08:00
Jenkins CI
84bcfc7a7d
ci: bump tenant-web to 1.0.4 [skip ci]
2026-06-12 23:12:40 +08:00
XuqmGroup
7fe3cc767c
feat(login): 私有化部署时隐藏注册账号入口
...
通过 /api/private/deployment/status 判断部署模式,PRIVATE 模式下不渲染注册链接。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 23:09:22 +08:00
XuqmGroup
bbbd382651
feat(platform): 添加网站图标支持
...
- 在运营平台index.html中添加ico和svg格式图标链接
- 在租户平台index.html中统一图标引用为标准favicon路径
- 添加运营平台SVG格式网站图标文件
- 添加租户平台SVG格式网站图标文件
- 移除租户平台原有的vite默认图标引用
2026-06-12 19:53:39 +08:00
Jenkins CI
acd2070e25
ci: bump tenant-web to 1.0.3 [skip ci]
2026-06-11 19:36:45 +08:00
Jenkins CI
626211b85f
ci: bump tenant-web to 1.0.2 [skip ci]
2026-06-11 19:18:12 +08:00
Jenkins CI
b20acdd093
ci: bump tenant-web to 1.0.1 [skip ci]
2026-06-11 17:29:40 +08:00
XuqmGroup
344baead4e
fix: copy workspace package.json before yarn install so devDeps are installed
...
vue-tsc and other workspace devDeps were missing because COPY <workspace>/
ran after yarn install, leaving yarn without sub-package manifests.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 17:27:39 +08:00
XuqmGroup
500eca8d6a
refactor(jenkins): 简化 Jenkinsfile 版本管理和部署流程
...
- 移除复杂的版本策略参数,统一使用自动递增版本号
- 修改 Docker 镜像标签策略,使用 latest 标签进行部署
- 简化版本计算逻辑,统一维护服务版本文件
- 更新部署脚本,直接使用 latest 标签拉取镜像
- 添加版本文件自动提交到 Git 的功能
- 重构版本记录更新机制,使用 Python 脚本管理 versions.json
- 统一所有 Jenkinsfile 的环境变量和构建参数结构
2026-06-11 17:23:49 +08:00
XuqmGroup
6b94c30628
chore(ci): 移除 DEPLOY 和 NO_CACHE 参数,构建后必然部署
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 17:07:57 +08:00
XuqmGroup
0572bbdd38
fix(ci): 修复 Jenkinsfile.tenant-web/ops-web 缓存穿透和错误处理
...
- 添加 --build-arg GIT_COMMIT 使 Docker 每次提交都重新构建源码层
- 添加 NO_CACHE 参数支持强制禁用缓存
- 修复 bat 错误处理(if %errorlevel% neq 0 exit /b 1)
- Deploy 阶段添加 lock('prod-deploy') + retry(2) 防并发失败
- Dockerfile.ops: 将 COPY ops-platform 移到 yarn install 之后,添加 ARG GIT_COMMIT
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 17:05:43 +08:00
XuqmGroup
07d6307b5d
fix(ci): 修复 bat 脚本错误处理,Docker 失败时立即退出
...
原 || exit /b %ERRORLEVEL% 在 Windows bat 中无法可靠捕获 Docker API
错误(Docker Desktop 宕机时返回 500 但 %ERRORLEVEL% 可能仍为 0),
导致构建失败时管道仍标记为 SUCCESS。改为 if %errorlevel% neq 0 exit /b 1。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 15:20:16 +08:00
XuqmGroup
50eb60b895
fix(ci): 部署阶段加 lock(prod-deploy) 和 retry,防止并发 pull 失败
...
多个 Jenkins job 同时向同一服务器执行 docker pull 时,containerd
ingest 目录存在 rename 竞争,会出现 "no such file or directory"
错误。通过全局锁 prod-deploy 序列化所有部署操作(与 Server
Jenkinsfile 共享同一锁名),并加 retry(2) 兜底。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 15:16:37 +08:00
XuqmGroup
58f7fb4a44
fix(web): 修复双垂直滚动条并优化Docker构建缓存策略
...
- MainLayout: 为侧边栏添加 overflow:hidden,避免 el-aside 默认
overflow:auto 在菜单内容较多时产生第二条垂直滚动条
- Dockerfile.tenant: 将 COPY 源码移至 yarn install 之后并引入
GIT_COMMIT ARG,确保每次提交都重新构建源码层,防止 --cache-from
错误复用旧层导致更新未生效
- Jenkinsfile: 传入 GIT_COMMIT 构建参数;新增 NO_CACHE 参数,缓存
异常时可强制全量重建
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 15:11:43 +08:00
XuqmGroup
90c9705ff1
feat(system): 添加系统更新检查和选择性更新功能
...
- 新增 streamSelectiveUpdate 函数支持选择性服务更新
- 添加 UpdateCheckResult 接口定义版本更新检查结果
- 实现 checkForUpdates 函数获取版本更新信息
- 在安全中心视图添加版本信息显示和更新检查按钮
- 添加选择性更新对话框支持按服务选择更新
- 实现版本管理视图中的实时更新通知配置
- 添加从 IM 导入灰度成员功能
- 移除应用密钥管理相关的重复组件实现
2026-06-11 14:11:06 +08:00
XuqmGroup
8abcf59147
feat(app): 支持多平台包名配置和应用信息编辑功能
...
- 后端增加至少填写一个平台包名的验证逻辑
- 前端调整应用数据模型,将包名字段改为可选类型
- 添加应用详情页的编辑功能和表单验证
- 优化应用列表页包名显示逻辑,支持多平台包名展示
- 重构应用配置指引页面,按平台分类展示商店配置指南
- 在版本管理页面增加包名配置检查和相应提示
- 新增应用信息编辑弹窗组件和相关业务逻辑
2026-06-11 13:04:28 +08:00
XuqmGroup
0a8011d9be
refactor(version): 优化版本管理中的灰度发布配置
...
- 移除 GrayMemberGroup 和 GraySelectionSource 类型定义
- 添加 GrayTag 类型定义以支持标签模式
- 重命名 normalizeCallbackUrl 函数为 normalizeUrl
- 简化灰度发布配置逻辑,移除本地选择源相关代码
- 将灰度同步回调URL和发布回调URL统一为 graySyncUrl 和 publishCallbackUrl
- 更新灰度成员加载逻辑为标签加载逻辑
- 移除成员模式下的回调地址验证和选择源设置
- 简化灰度模式切换条件判断逻辑
2026-06-11 12:36:27 +08:00
XuqmGroup
f116b63369
feat(update): 重构灰度发布系统并新增标签管理功能
...
- 灰度模式简化为 PERCENT 和 MEMBERS 两种
- 新增成员标签系统,支持标签 CRUD 和按标签选择发版
- 成员同步保留已有标签,手动成员不受同步影响
- 支持标签 + 额外成员组合选择:groupNames + extraMemberIds
- 发布时回调集成方获取成员列表,支持 AppSecret 签名验证
- 从 IM 服务导入成员功能
- 修复 isInGrayRelease() 中的 String.contains() 误匹配 bug
- 移除 IM_PUSH_USERS、CUSTOMER_SYNC、CUSTOMER_CALLBACK 模式
- 更新前端界面,优化灰度成员选择体验
- 添加发布配置和操作日志等相关数据库表结构
2026-06-11 12:30:13 +08:00
XuqmGroup
cbc29cf255
feat(update): 添加 API Key 管理和 WebSocket 实时通知功能
...
- 新增 API Key 管理功能,支持外部工具认证调用平台 API
- 实现 WebSocket 实时通知,版本发布时推送轻量通知给客户端
- 添加 APK 文件哈希校验,支持已下载检测和直接安装
- 支持外部 APK 上传使用 API Key 认证
- 优化私有化部署自动注入 nginx WebSocket 代理配置
- 扩展 SDK 功能包括已下载检测、直接安装和实时通知监听
2026-06-11 12:25:16 +08:00
XuqmGroup
cd39c7fb30
feat(app): 添加重新生成应用配置文件功能
...
- 在AppController中新增regenerateConfigFile接口
- 在AppService中实现重新生成配置文件的业务逻辑
- 记录重新生成配置文件的操作日志
- 在前端API中添加重新生成功能调用方法
- 在应用详情页面添加重新生成按钮和确认对话框
- 实现重新生成配置文件的前端交互逻辑
2026-06-02 17:43:36 +08:00
XuqmGroup
348c04ba72
refactor(app): 将许可证文件功能替换为配置文件功能
...
- 替换 LicenseFileCrypto 为 ConfigFileCrypto 加密类
- 将 /license-file 相关接口重命名为 /config-file
- 修改数据库实体中的 licenseFileContent 字段为 configFileContent
- 更新前端 API 调用从 downloadLicenseFile 改为 downloadConfigFile
- 将安全中心的 License 文件解析功能改为 Config 文件解析
- 更新文件扩展名从 .xuqmlicense 改为 .xuqmconfig
- 修改后端服务方法 ensureLicenseFile 为 ensureConfigFile
- 调整加密解密逻辑以支持新的配置文件格式
2026-06-02 17:35:29 +08:00
XuqmGroup
62966dcf20
feat(ui): 添加服务应用切换记忆功能并优化菜单结构
...
- 在IM、授权、推送、版本管理视图中添加最近使用应用的记忆功能
- 新增serviceApp工具函数用于存储和获取最近使用的应用
- 将系统日志、数据库、操作日志菜单项归类到运维管理子菜单
- 修复实体类索引字段命名不一致问题
- 在安全配置中启用方法级别安全注解支持
2026-05-28 10:53:13 +08:00
XuqmGroup
db3158d2e4
refactor(logs): 更新操作日志视图中的推送服务注释
...
- 修改了推送服务相关的注释说明
- 移除了重复的用户信息编辑和状态变更操作日志条目
- 添加了关于与im-service重复的说明注释
2026-05-27 17:30:03 +08:00
XuqmGroup
5b2a89e964
feat(logs): 添加操作日志功能支持推送和授权模块
...
- 在JwtAuthFilter中设置认证详情到claims
- 为license-service添加LicenseOperationLog相关实体、仓库和服务
- 为push-service添加PushOperationLog相关实体、仓库和服务
- 在LicenseAdminController中注入并使用操作日志记录授权变更
- 在PushManagementController中注入并使用操作日志记录推送操作
- 更新OperationLogService以支持从JWT claims获取用户信息
- 扩展OperationLogService支持推送和授权操作日志查询
- 在前端OperationLogView中添加推送和授权日志选项卡
- 添加LicenseOperationLog和PushOperationLog接口定义
- 实现推送和授权日志的数据加载和分页功能
- 添加操作类型和资源类型的标签映射支持
2026-05-27 13:36:16 +08:00
XuqmGroup
908916fefd
feat(logs): 添加即时通讯操作日志并优化界面显示
...
- 在 operation log 视图中新增即时通讯标签页
- 为 IM 服务添加操作摘要、资源类型等字段支持
- 统一三个标签页的操作类型和资源类型的中文映射
- 重构操作摘要生成功能,区分租户平台、即时通讯和版本管理
- 优化表格列宽度和布局显示
- 添加 IM 日志的数据加载和分页功能
- 新增 IM 应用选择和页面切换事件处理
- 在 API 定义中添加 summary 字段支持
2026-05-27 12:52:29 +08:00
XuqmGroup
4b13f64966
feat(log): 优化操作日志记录和展示功能
...
- 在OperationLogEntity实体中新增summary和ipAddress字段存储摘要和IP信息
- 修改operationLogService.record方法支持传入操作摘要信息
- 实现客户端IP地址解析功能,支持X-Forwarded-For和X-Real-IP头
- 更新系统更新服务中的数据库表结构迁移逻辑,增加NOT NULL列处理
- 优化前端操作日志页面展示,添加标签分类和详情弹窗功能
- 在系统更新流式响应中增加网络连接异常处理机制
- 添加Nginx代理配置中的缓冲区设置以支持实时日志流式传输
2026-05-27 12:27:43 +08:00
XuqmGroup
38e138f955
fix(core): 统一全局异常处理器并添加数据库管理功能
...
- 在所有服务的GlobalExceptionHandler中添加HttpServletRequest参数以记录请求上下文
- 统一异常响应格式为ResponseEntity<ApiResponse<Void>>并改进错误日志记录
- 添加对多种异常类型的处理包括参数验证、请求方法不支持、权限拒绝等
- 为业务异常添加不同级别的日志记录(warn/error)和状态码映射
- 在前端系统API中新增数据库表管理相关接口定义和实现
- 添加数据库表列表、列信息和数据查询的API调用函数
2026-05-27 11:51:19 +08:00
XuqmGroup
ba48d9f535
feat(components): 添加新的Element Plus组件支持
...
- 集成ElCheckbox组件支持
- 集成ElSkeleton组件支持
- 集成ElTabs和ElTabPane标签页组件支持
2026-05-23 00:32:18 +08:00
XuqmGroup
ad734ff204
feat(system-logs): 两端平台新增服务日志查看页面
...
- tenant-platform: /system-logs 页面,私有化模式下侧边栏显示;支持服务切换、
行数选择、刷新间隔配置(5s/10s/30s/1min)、自动滚动
- ops-platform: /system-logs 页面,始终可见;复用相同交互,通过 ROLE_OPS 接口获取日志
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 23:22:58 +08:00
XuqmGroup
e999d4d443
feat(system): 添加系统版本查询和数据库迁移功能
...
- 移除 license-service 中 DeviceEntity 的 device_id 唯一约束注解
- 添加 /api/system/version 接口用于查询当前部署版本
- 实现数据库 schema 版本化迁移机制
- 添加自动执行数据库迁移的功能
- 在前端安全中心界面显示当前版本和迁移状态
- 优化配置文件修复逻辑和代码结构
2026-05-22 23:04:36 +08:00