Logan.Li
|
e0d652d211
|
feat: 完善堡垒机与 Agent 智能运维能力
- 支持 Windows Agent 构建、安装脚本和统一上报协议
- 增强 RDP 剪贴板、虚拟盘和文件传输能力
- 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口
- 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
|
2026-07-05 23:49:36 +08:00 |
|
 LoganandClaude
|
76ec9387f0
|
feat(rdp): 新增 RDP 远程桌面/SMB/账单同步能力 + 清理编译产物
主要变更:
- RDP 远程桌面:新增 backend/pkg/rdp(RDP 引擎 + credssp/display/rle/trace)、
backend/controller/rdp*(连接/凭证/文件/会话/实时)、frontend RDP 组件与 API
- Windows SMB 文件传输:backend/pkg/winsmb
- 云账单同步:backend/pkg/billingsync + billing_sync/aliyun_billing,前端账单详情
- Agent CLI Kubernetes 工具:kubernetes_action/get、pod_execute/logs
- 服务器导入助手:server_import_helpers、ImportCredentialSettings
- 国际化与组件重构(cloud/deploy/monitor/server/system 等多模块)
- 清理编译产物二进制:移除 backend/server、backend/agent/bin/aiops-agent-*
- .gitignore:新增 backend/agent/ 与 .cache/(避免 334MB go-build 缓存误入库)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-04 01:50:36 +08:00 |
|
Logan
|
78c27037e3
|
feat(ldap): Active Directory 双目录支持与 Docker 构建优化
- 新增 ldap_ad.go,支持 AD 密码编码、字段映射与目录类型判断
- 重构 ldap/ldap_users/ldap_ou,兼容 OpenLDAP 与 AD 登录、导入、OU 浏览
- 前端系统设置增加目录类型选择与 AD 配置项
- Dockerfile 按 TARGETARCH 单架构编译 Agent,限制 Node 内存防 OOM
- run.sh 新增 docker fast/upgrade,README 补充 LDAP/AD 与常见问题
|
2026-07-02 22:45:49 +08:00 |
|
Logan
|
5770f2ccd4
|
chore: v0.1.1 发版脚本修复与 K8s 镜像坐标更新
- run.sh release 改用 docker-compose build,修复 buildx 缺失导致发版失败
- K8s deployment/quick-deploy 镜像更新为 lghost/aiops:v0.1.1
- 恢复 backend/static/.gitkeep 供 go:embed 目录占位
|
2026-07-02 08:01:22 +08:00 |
|
attacker
|
092d0e4b9e
|
refactor: Dockerfile.embed → Dockerfile + fix Login TS error
- Dockerfile.embed 重命名为 Dockerfile(统一命名规范)
- docker-compose.yml / run.sh 引用更新
- 全量文档(CLAUDE/AGENTS/README/docs)Dockerfile.embed → Dockerfile
- fix: Login.tsx User 类型缺少 email/status 字段
|
2026-07-01 04:54:53 +00:00 |
|
Logan
|
1acb0c49af
|
feat: Agent CLI 与终端审计回放全面优化
- Agent CLI: 多轮对话、SSH 长连接、流式推理、Evolver 按用户隔离、历史侧栏
- 终端审计: 回放播放器、命令书签、筛选分页导出、命令输出统计、录制落盘修复
- 修复 session_commands 表迁移、Kill 竞态导致录制丢失、无录制会话回放提示
- 审计历史页只读(移除删除),移除回放弹框录制搜索
|
2026-07-01 12:13:53 +08:00 |
|
attacker
|
da01cbb119
|
refactor(run.sh): optimize build artifact cleanup
- clean_frontend_artifacts: add .vite/.cache/.tmp/*.tsbuildinfo cleanup
- clean_embed_static: rm -rf + mkdir handles dotfiles (was rm static/*)
- new clean_all_artifacts: unified cleanup for all deployment modes
- docker up/build/clean now call clean_all_artifacts before building
- .dockerignore: exclude .vite/*.tsbuildinfo/node cache dirs
- add ./run.sh clean standalone command
|
2026-06-28 03:35:36 +00:00 |
|
attacker
|
2e179ef7f4
|
feat(i18n): U3 国际化 — react-i18next 双语框架 + 侧边栏/Header/Login 全量翻译 + 语言切换器
- 安装 i18next + react-i18next,创建 src/i18n/ 配置实例
- 创建 zh-CN.json (120+ 键) + en-US.json 全量英文翻译
- 侧边栏 42+ 菜单项全量 labelKey 国际化
- Header 通知/主题/用户菜单全量翻译
- Login 页面表单/按钮/主题+语言切换器
- zustand useLanguageStore 持久化语言选择
- HTML lang 属性自动同步
- tsc -b=0, npm build=✅, 17/17 测试通过
|
2026-06-27 16:54:07 +08:00 |
|
Logan.Li
|
9f5ce249f1
|
feat(release): 统一版本与 embed 部署,推送 lghost/aiops 镜像
- resolve_version 统一二进制/Docker/K8s 版本解析
- docker-compose 简化为 mysql+redis+aiops 单应用容器
- 新增 release/docker push/kubernetes push 构建并推送 Docker Hub
- K8s deployment 镜像改为 lghost/aiops:<tag> 语义版本
|
2026-06-26 16:37:15 +08:00 |
|
Logan.Li
|
8be51ac514
|
feat(build): 支持 build tag 版本注入并清理历史二进制
- ./run.sh build 仅输出项目根目录 ./aiops,构建前清理 backend/aiops-*
- 新增 ./run.sh build tag v1.0.1,通过 ldflags 注入 Version/BuildTime/GitCommit
- 支持 ./aiops version 子命令查看编译版本
- 删除误提交的 backend/aiops-cgo,gitignore 忽略 backend/aiops-*
|
2026-06-26 16:27:08 +08:00 |
|
Logan.Li
|
8df0acb338
|
fix(k8s): 同步 local 模式数据路径为 /app/sqlite3.db 与二进制同级
- deployment/quick-deploy: PVC 挂载 sqlite3.db/redka.db 到 /app/,含旧 data/ 迁移
- configmap 与 run.sh 状态输出对齐新路径
- README 补充 local 模式说明
|
2026-06-26 16:19:03 +08:00 |
|
Logan.Li
|
d27a2e6cbe
|
fix(local): sqlite3.db/redka.db 与 aiops 二进制同级存放
- local 模式默认库文件改为 ./sqlite3.db,不再使用 data/ 子目录
- redka 缓存改为 ./redka.db,与可执行文件同目录
|
2026-06-26 16:16:51 +08:00 |
|
Logan.Li
|
e7a479ccf5
|
fix(build): 独立二进制输出到根目录并修复 local 模式 SQLite 路径
- SQLite/redka 数据目录相对可执行文件解析,自动创建 data/ 父目录
- ./run.sh build 产物改为 ./aiops(与 run.sh 同级),数据/日志在 ./data ./logs
- 解决从项目根执行时 data/ 不存在导致的 SQLite CANTOPEN 报错
|
2026-06-26 16:16:02 +08:00 |
|
Logan.Li
|
d0cf71b05a
|
feat(k8s): 事件页简化、可视化编辑 P0、Deployment 五 Tab 修复
- 事件中心:去彩虹图表,改专业排名列表 + 主题变量
- 网络/配置/存储:ResourceVisualEditor 双向 YAML 同步、导入 YAML、新建
- vite manualChunks 减小 embed 主包体积
- run.sh:多副本强制 MODE=release + MySQL/Redis
- Deployment 编辑:共享 manifest、统一 saveDeploymentManifest
- 修复存储挂载 initContainers 混入 bug、补 Tolerations UI
- 服务 Tab:applyYAML 创建 + ResourceVisualEditor 编辑
- 基本信息:Pod 模板标签 + Selector 同步
|
2026-06-26 13:52:32 +08:00 |
|
Logan.Li
|
339b24a579
|
优化 K8s 页面布局与 local 模式部署收尾
P0-P1:
- Dockerfile.embed 启用 CGO 支持 SQLite+redka
- K8s scale>1 时警告 local 模式数据不共享
K8s UI:
- 移除侧边栏资源用量/容量分析及资源页横向 Tab 栏
- 修复事件路由(/workloads/events)与 Deployment 事件过滤
- 网络/配置/存储统一 YamlViewer 编辑,加大编辑弹窗
|
2026-06-26 13:36:27 +08:00 |
|
Logan.Li
|
b7166acda4
|
优化 local 模式兼容性与部署可靠性
- SQL 方言层:agent updated_at、dashboard 小时分桶、清理任务跨 SQLite/MySQL
- Cache Capabilities:redka 跳过 ZSet/PubSub,Agent 聚合改 DB 直读
- local 模式 redka 初始化失败 Fatal;/version 返回 features
- SQLite WAL + 连接池限制;K8s data 改 PVC 持久化
- run.sh:旧参数迁移、升级后 /version 校验
|
2026-06-26 13:28:31 +08:00 |
|
Logan.Li
|
1f4f63cf6e
|
feat: mode=local 统一走 SQLite + redka 本地存储
- 二进制 --mode local 或环境变量 MODE=local 自动配置 SQLite + redka
- K8s Deployment 默认 MODE=local,移除外部 MySQL/Redis 依赖
- /version 返回 redis_driver;SQLite 兼容 agent 数据清理 SQL
|
2026-06-26 13:23:30 +08:00 |
|
attacker
|
ec7aa61948
|
feat: --mode local 一键本地模式 (SQLite + redka, 无需 MySQL/Redis)
- main.go: --mode local 自动配置 db-driver=sqlite, db-name=data/sqlite3.db, redis-driver=redka
- database: 切换纯 Go SQLite 驱动 (github.com/glebarez/sqlite) — 无需 CGO
- docker-compose.yml: backend 添加 MODE=${MODE:-release} env var + data 卷挂载
- run.sh: binary upgrade 默认 --mode local, config.yaml 模板更新为 local 模式
- K8s quick-deploy.yaml: 单容器部署, MODE=local 环境变量切换远程/本地
|
2026-06-26 04:36:09 +00:00 |
|
Logan.Li
|
9649167c83
|
run.sh: 非交互 shell 自动补充 Go PATH
|
2026-06-26 11:09:58 +08:00 |
|
Logan.Li
|
ac69ae75d4
|
优化 run.sh 三种部署方式的升级清理逻辑
- 共用 clean/build 函数,升级前清理 frontend/dist、backend/static 与旧二进制
- binary upgrade/start/stop/status:停服、备份、重编译、后台启动并持久化启动参数
- docker up/upgrade:--force-recreate --remove-orphans,支持 up fresh 无缓存重建
- kubernetes upgrade:--no-cache 构建 + 时间戳镜像 tag,set image 触发滚动更新
|
2026-06-26 11:08:58 +08:00 |
|
attacker
|
77c234b060
|
feat(audit): F1+F2 告警静默规则标记完成 + 审计日志CSV导出实现
F1 告警静默规则 [done]:
- 后端 alert_silence.go: CRUD + Toggle (onetime/daily/weekly 三模式)
- 告警引擎 isSilenced 集成 (alert_engine.go)
- 前端 SilenceRuleTab + SilenceDialog
- 路由 /alerts/silences 已注册
F2 审计日志导出 [done]:
- 重写 ExportAuditLogs: 真正的 CSV 导出 (encoding/csv + UTF-8 BOM)
- 支持 module/action/username/startTime/endTime 筛选
- 导出限制 10000 条防溢出,自动记录审计日志
- JSON 格式向后兼容 (format=json)
- 前端 exportLogs 传递查询参数
同时包含累积的前期工作:
- 目录重构 internal/ -> controller/model/router (v0.55-v0.57)
- 后端分层架构 dto/repository/service/utils
- 审计模块全功能 (终端审计/操作审计/登录日志)
- asciicast v2 录制格式
- SFTP 文件浏览器
- StatStrip 紧凑统计条
- 在线会话自动刷新
- LiveMonitor WebSocket 诊断修复
验证: go build ✅ | npm run build ✅ | Docker 部署 ✅ | 10 回归端点 ✅ | CSV 导出 ✅ | 静默 CRUD ✅
|
2026-06-25 20:16:30 +08:00 |
|
attacker
|
65636b3f5a
|
fix: favicon .ico 生成 + README 更新 + run.sh kubernetes 别名
- 新增 frontend/public/favicon.ico (4 size: 16/32/48/64)
- index.html .ico 引用调整到 .svg 前面(兼容旧浏览器)
- README.md 全量更新:Kubernetes 完整命令列表 + K8s 管理亮点
- run.sh 主入口添加 k8s 别名(向后兼容)
- aiops-development skill 更新部署命令和 favicon 文档
|
2026-06-25 00:53:57 +08:00 |
|
attacker
|
bbf06204cc
|
refactor: rename deploy/k8s to deploy/kubernetes; add SetEnvKeyReplacer for env var support in K8s
|
2026-06-24 04:02:26 +00:00 |
|
attacker
|
8c272a6fa6
|
perf: BuildKit cache mount 加速 Docker 构建
优化:
- Dockerfile 加 # syntax=docker/dockerfile:1 启用 BuildKit frontend
- go mod download / go build 加 --mount=type=cache (GOMODCACHE + GOCACHE)
- apk add 加 --mount=type=cache=/var/cache/apk
- alpine:latest → alpine:3.20 固定版本(避免 :latest 变动导致全量 cache miss)
- run.sh 加 DOCKER_BUILDKIT=1 + COMPOSE_DOCKER_CLI_BUILD=1
效果:
- 首次构建不变(需填充缓存)
- 第二次起: go build 增量编译(仅重编译改动包),apk 从缓存恢复
- 预估: 13分钟 → 2分钟
|
2026-06-21 21:55:03 +08:00 |
|
attacker
|
2a0521340f
|
feat: 三种部署方式全部验证通过
方案1: docker-compose 双容器(原有,不变)
方案2: 二进制部署(go:embed 前端嵌入)
- 修复 SPA fallback(c.FileFromFS 301 → c.Data 直接返回)
- 二进制 22MB,内存 21.5MB
- 支持全部 CLI 参数(--db-host --redis-host --port 等)
方案3: K8s 部署(hostNetwork + 外部 MySQL/Redis)
- devops 声明空间
- embed 单容器 Deployment + NodePort Service
- 健康检查改为 /version(/health 尚未实现)
- hostNetwork 解决 K8s pod 网络到外部 MySQL 的连通性
新增: Dockerfile.embed, docker-compose.embed.yml, deploy/binary/
|
2026-06-21 15:03:17 +08:00 |
|
attacker
|
a3cd0d3910
|
feat: PTY kubectl终端 + 侧边栏对齐修复 + 构建缓存清理
**kubectl WebShell 修复:**
- 引入 github.com/creack/pty 库实现真正的伪终端
- 替换 bash --noediting + TERM=dumb 方案为 PTY-backed bash
- 支持 xterm-256color、窗口自适应、readline 交互
- 修复键盘输入无响应问题
**侧边栏优化:**
- 独立菜单项高度从 py-1.5 改为 h-8,与父菜单对齐
- 独立菜单图标从 h-3 w-3 改为 h-3.5 w-3.5,统一 14px
**构建优化:**
- run.sh docker up 增加 docker image prune -f 清理悬空镜像
- 每次部署自动清理 builder cache + dangling images
**认证修复(历史):**
- Token 存储:Zustand + localStorage 双写,http.ts 双源 fallback
- YamlViewer/DeploymentDetail token 来源统一为 Zustand store
|
2026-06-19 11:22:45 +00:00 |
|
attacker
|
d3c3fb546d
|
optimize: docker up 自动清理历史 build cache,新增 docker clean 子命令
|
2026-06-19 06:36:00 +00:00 |
|
attacker
|
ed08ea255e
|
feat: Agent批量升级 + 版本号注入 + 服务器凭证下拉关联
- Dockerfile: ARG VERSION/BUILD_TIME 通过 ldflags 注入 agent+backend 二进制
- run.sh: 自动从 git tag 获取版本号
- docker-compose: build args 传递 VERSION/BUILD_TIME
- backend: BatchUpgradeAgent SSH下载新二进制+重启, /agent/bin 静态文件服务
- frontend: 监控大屏添加批量升级按钮 (闪电图标)
- frontend: 服务器编辑/添加表单改为凭证下拉选择器
- frontend: ServerForm 加载 /credentials 列表, 选择后自动填充用户名/认证方式
|
2026-06-19 01:24:47 +00:00 |
|
attacker
|
46e61216f6
|
feat: 兼容 docker compose / docker-compose, 移除 compose version 警告
|
2026-06-19 00:41:35 +00:00 |
|
attacker
|
48b2d2281b
|
fix: AgentWizard URL拼接修正(origin/backend分离) + 复制兼容HTTP/移动端
|
2026-06-18 07:14:19 +00:00 |
|
attacker
|
2354959811
|
feat: run.sh四模式(dev/docker/build/binary) + CLI flags + Redka内嵌Redis + Agent复制修复 + 服务器编辑IP字段 + 安装Agent按钮
|
2026-06-18 03:36:04 +00:00 |
|
attacker
|
ff0b268984
|
feat: 修复仪表盘数据管线 — 补充应用发布种子数据 + 修复limit参数解析 + LDAP认证集成 + User类型完善
后端改进:
- 修复 dashboard/recent-alerts 的 limit 参数解析 (原代码错误地将数字解析为日期)
- 为 dashboard/recent-releases 添加 limit 参数解析支持
- 新增 generateAppReleases 种子数据生成函数 (10条应用发布记录)
- 修复 AlertEvent 的 rule_name/rule_id/severity 数据一致性
- 添加 go-ldap/ldap/v3 依赖并集成 LDAP 认证处理器
- 添加 seed.go 自动种子数据初始化 (admin用户+LDAP配置)
- User model 添加 AuthSource/LDAPConfig 字段
前端改进:
- 修复 User 类型定义以匹配后端 API (real_name/is_admin/auth_source等)
- 修复 Header.tsx 的 real_name 属性引用导致 TypeScript 编译错误
- 统一 API 服务层、暗色主题样式、组件联调优化
验证:
- go build ./... 编译通过
- npm run build 构建通过
- 仪表盘发布历史、告警消息等区域数据正常展示
- 健康检查 /health 正常
|
2026-06-14 02:11:10 +08:00 |
|
attacker
|
97c4207ff8
|
refactor: 标准化项目结构 frontend/ + backend/ + SQLite + run.sh
- 目录重构: app/ -> frontend/,与 backend/ 并列
- 数据库: 默认 SQLite(零配置),修复 DSN() bug
- run.sh: 一键启动前后端,支持 start/stop/restart/status
- Makefile: install/dev/build/lint/clean 快捷命令
- vite.config.ts: 配置 dev server 端口 5173 + API 代理到 8080
- config.yaml: SQLite 默认配置,开箱即用
- docs/: 完整开发文档(项目结构/API/数据库/规范/部署)
- 修复: GORM foreign key 关联声明
- 修复: go get gorm.io/driver/sqlite 依赖
|
2026-06-13 23:34:23 +08:00 |
|