Commit Graph

35 Commits

Author SHA1 Message Date
mac 1aa984c7e5 feat(delivery): sync mysql service ledger and credentials 2026-07-30 16:09:13 +08:00
mac 35875218c9 feat(delivery): refine base service integrations 2026-07-29 16:47:41 +08:00
wonder 11a92c429f test(server): 添加 task log 模块单元测试
- 添加 handler 层 16 个纯函数单元测试(状态映射、ID 解析、排序、格式化等)
- 添加 service 层 11 个 pub/sub 与缓存单元测试(订阅、取消、并发安全、TTL 过期等)
- 共 27 个测试用例,覆盖 task log 核心逻辑

背景:task log 模块经历了大量修改但缺乏测试覆盖,需要确保日志模块可用

关联 commit:61eeb0c, dbb930d
2026-07-29 14:13:53 +08:00
wonder 61eeb0c8ac fix(server): 修复 task log 接口多个问题
- 修复 Wayne 任务状态映射,将数字状态统一为字符串状态
- 添加分页支持,支持 page/page_size 参数
- 添加 AWXJobStdout 内存缓存,减少重复 API 调用
- 修复 SubscribeTask 内存泄漏,自动清理 closed channel
- 统一 Stream 端点,AWX 使用 pub/sub,Wayne 使用轮询

背景:task log 接口存在多个潜在问题,包括状态判断错误导致无限轮询、
缺少分页、重复 API 调用性能问题、内存泄漏风险等

关联 commit:fix/logs 分支
2026-07-29 14:00:40 +08:00
ztkkOip f28bc99401 Merge branch 'main' into feat/base-service-delivery 2026-07-28 18:03:04 +08:00
mac f7be87c7d9 feat: wire delivery result and infra data backends 2026-07-28 17:56:00 +08:00
Wonder c0ec5758c6 Merge branch 'main' into feat/task-logs-virtual-scroll 2026-07-28 17:47:26 +08:00
wonder 2fb9c3ccfd fix(auth): remove access_token query parameter from AuthMiddleware
移除认证中间件中 access_token 查询参数的回退逻辑,防止令牌通过 URL 暴露

- 仅支持 Authorization: Bearer 请求头认证
- 防止令牌被反向代理日志、浏览器历史、监控系统等捕获
- 前端已使用安全的头部认证方式
2026-07-28 17:30:46 +08:00
wonder 8904330632 feat(task-logs): 实现任务日志 SSE 实时推送
实现任务日志 SSE 实时推送功能,解决前端无法流式输出日志的问题

变更内容:
- 后端:新增 /task-logs/stream SSE 端点,支持实时日志推送
- 后端:实现 2 秒轮询间隔检测新日志,支持心跳机制
- 后端:支持通过 query 参数 access_token 传递 JWT 认证
- 前端:新增 createTaskLogStream 函数封装 EventSource
- 前端:修改 TaskCenter.vue 集成 SSE,支持实时更新和自动滚动
- 前端:添加流式连接状态指示器

关联 commit:
- 实现后端 SSE Stream 方法
- 注册 SSE 路由
- 实现前端 SSE 客户端
- 集成 SSE 到任务中心页面
2026-07-28 17:06:44 +08:00
mac 897670b721 Merge remote-tracking branch 'upstream/main' into feat/base-service-delivery
# Conflicts:
#	ansible/mysql-deploy.yml
#	frontend/src/api/delivery.ts
#	frontend/src/views/service/Catalog.vue
#	server/.env.example
#	server/internal/config/config.go
#	server/internal/handler/task_log.go
#	server/internal/service/delivery.go
2026-07-28 15:08:37 +08:00
mac 8e09c30d21 feat: wire mysql delivery to awx callbacks 2026-07-28 14:45:17 +08:00
Hungerdream be39f2a03c feat(delivery): expose rollback retry, release ack and CloudDM retry APIs
- POST /delivery/tasks/:id/rollback/retry  (platform admin) re-launches
  the rollback job after a previous cleanup failure
- POST /delivery/tasks/:id/rollback/release (platform admin) releases
  bookkeeping after the operator verified the target host manually
- POST /delivery/tasks/:id/clouddm/retry retries only the CloudDM
  registration step for an already healthy instance
- task logs now include rollback AWX job stdout and localized
  text/classes for the new rollback states
2026-07-28 14:29:26 +08:00
mac 5a260c443f feat(delivery): stream task updates with SSE 2026-07-28 09:55:04 +08:00
mac 8378427d3d fix(delivery): use unique pending AWX job placeholders 2026-07-27 18:33:33 +08:00
mac e0ee36cadb feat(delivery): switch AWX delivery to callbacks 2026-07-27 15:19:18 +08:00
mac a934380c9c feat: switch base delivery to awx task logs 2026-07-23 18:36:24 +08:00
ztkkOip 96aa493034 Merge branch 'main' into feat/mysql-service-delivery 2026-07-23 14:21:06 +08:00
mac c421be3ae9 docs(delivery): add Swagger annotations and regenerate API docs
Add Swagger annotations to all 7 delivery handlers. Fix existing
test.go type references (Response -> response.Response). Add swaggo
dependencies to go.mod. Regenerate swagger.json/yaml/docs.go with
delivery endpoints visible in /swagger/index.html.

Relates-to: #97
2026-07-23 13:50:21 +08:00
mac 699eaa5225 feat(delivery): add HTTP handlers and route registration
Add DeliveryHandler (7 endpoints under /auth/api/v1/delivery/*):
CreateMySQL, List, Get, Cancel, Targets, CreateTarget, UpsertQuota.
Add ExecutionHandler for internal service callback. Register routes
with JWT auth middleware and start scheduler goroutine when enabled.

Relates-to: #97
2026-07-23 12:04:51 +08:00
mac d150d0f0dd feat(business-line): auto bind Wayne namespace on create 2026-07-22 15:05:41 +08:00
mac 7f6f6fa41e feat(container): show business line workloads from Wayne 2026-07-22 15:05:41 +08:00
mac 2db8264c8e feat(service): add deployment task integration 2026-07-21 18:26:50 +08:00
mac c324e2ec59 feat(auth): use Wayne native role APIs 2026-07-21 17:05:48 +08:00
mac 8d49230247 feat(server): add Wayne subsystem authorization APIs 2026-07-17 19:26:40 +08:00
mac a10d4a5921 fix: require Wayne user ID for role binding 2026-07-17 15:47:32 +08:00
mac d264924d1e feat: add business line permissions and Wayne namespace mapping 2026-07-17 15:02:18 +08:00
mac b151356045 fix(auth): handle saml logout and xml encryption padding 2026-07-17 09:43:42 +08:00
mac 2835cf2576 fix(auth): keep subsystem oauth working without sso 2026-07-16 16:43:01 +08:00
mac cafa8bc840 feat(auth): support local username login mode 2026-07-16 16:19:25 +08:00
mac eb2621d914 feat(auth): complete sso subsystem integration 2026-07-16 15:52:56 +08:00
mac da38acfcb5 merge: sync origin main into auth-login 2026-07-15 15:12:54 +08:00
mac 6af511ed0b refactor(server): merge authserver implementation 2026-07-15 14:05:22 +08:00
wonder 8898437e9e feat(server): 集成 Swagger API 文档
- 引入 swaggo/gin-swagger 和 swaggo/files 依赖
- 配置 Swagger UI 路由 /swagger/*
- 为测试 handler 函数添加 Swagger 注解
- 将 main.go 中的内联 handler 重构到 handler/test.go 以支持注解
- 生成 Swagger 文档 (docs.go, swagger.json, swagger.yaml)
- Makefile 新增 make swagger 命令
- .gitignore 添加 server/docs/ 以跟踪生成的文档
- 添加 API 元信息(标题、版本、联系方式、许可证、安全定义)
2026-07-15 11:33:00 +08:00
wonder 4f1df02f53 feat(server): 实现统一响应格式和错误码
- 添加 server/go.mod,模块路径为 github.com/1024XEngineer/xinfra/server
- 实现 response.go 统一 JSON 响应结构:
  - 响应信封:{ code, message, data, details }
  - 业务错误码 (10001-20002) 与 MVP 规范一致
  - 便捷函数:Success, Error, BadRequest, Unauthorized 等
  - 分页响应支持,包含 total 和 items
- 添加 recovery 中间件捕获 panic 并返回 500 错误
- 添加 logger 中间件记录请求日志

为所有后端处理器建立统一的 API 响应基础,与前端期望的格式保持一致。
2026-07-15 10:44:32 +08:00
wonder 1bd5921fd4 chore: 初始化项目骨架结构
- 创建前端 Vue3 项目目录结构(components、views、router、stores 等)
- 创建后端 Go 项目目录结构(cmd、internal、pkg 等分层架构)
- 创建部署配置目录(docker、k8s)
- 创建文档目录
- 添加 .gitignore 忽略规则
- 添加 Makefile 构建脚本
- 更新 README.md 项目说明文档
- 每个目录添加 .gitkeep 文件说明目录用途
2026-07-14 14:34:10 +08:00