attacker
|
3dec5eec2a
|
fix: 合并冲突后重写 Dockerfile (3阶段构建 + alpine mirror + GOTOOLCHAIN)
|
2026-06-18 03:38:22 +00:00 |
|
attacker
|
3a0f5ddb52
|
fix: 清理冲突合并产生的行号前缀
|
2026-06-18 03:37:22 +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 |
|
Logan
|
d0b94d39c0
|
fix: agent install.sh 404 + 三阶段构建编译agent二进制
问题: 构建上下文 ./backend 无法访问 ../agent, 导致容器内
/app/agent/deploy/install.sh 不存在, 返回 404
修复:
- Dockerfile 改为三阶段构建 (backend go1.21 + agent go1.24 交叉编译 + alpine runtime)
- docker-compose backend build context 改为项目根
- routes.go /agent/arch 安装命令改为动态获取 URL
- 新增 .dockerignore
- agent_install.go: SSH 远程安装 handler
- AgentWizard.tsx: 复制按钮 fallback + 动态 server URL
- ServerTableRow.tsx: agent 状态判断
验证: curl|bash 安装成功, agent 上报数据到 MySQL ✅
|
2026-06-18 09:44:12 +08:00 |
|
Logan
|
d0344c2f52
|
feat: Docker部署 + 云主机导入 + 终端优化
Docker 部署:
- 新增根目录 docker-compose.yml(MySQL+Redis+前后端四容器)
- 新增 frontend/Dockerfile(多阶段构建)和 nginx.conf(SPA+API反代)
- 修复 backend/Dockerfile:GOPROXY国内加速、编译整个cmd包
云主机导入功能:
- 新增 backend/internal/cloud 包:Provider接口 + 阿里云API客户端
- 新增 cloud_sync.go:区域同步/主机发现/导入 API
- 重写 CloudServerImport.tsx:4步流程(选云→选账号→选区域→发现导入)
- 修复导入外键约束失败(region_id/cloud_id 设为 NULL)
终端优化:
- 修复双X关闭按钮重影(showCloseButton=false)
- 修复最大化→最小化不恢复(ResizeObserver + 禁用CSS过渡)
其他:
- GORM AutoMigrate 逐表迁移,避免索引冲突阻塞启动
- Makefile 更新为 AIOps + 新增 docker 命令组
- .env.example 移至 backend 目录
|
2026-06-18 09:22:13 +08:00 |
|
attacker
|
2e175daf80
|
docs: update dev-log - llm.go handler 拆分
|
2026-06-18 08:04:53 +08:00 |
|
attacker
|
d4fe62f053
|
refactor: 拆分 llm.go(526行) 为三文件(llm.go配置/llm_chat.go对话流式/llm_history.go历史),符合400行handler规范
|
2026-06-18 08:04:27 +08:00 |
|
attacker
|
94e40ebd3f
|
docs: update dev-log - AIOps停止生成按钮
|
2026-06-18 07:07:31 +08:00 |
|
attacker
|
ca8ebb1634
|
feat: AIOps智能助手支持停止生成(AbortController中止流式,保留部分内容+已停止提示)
|
2026-06-18 07:07:01 +08:00 |
|
attacker
|
5d19878b28
|
feat: AIOps智能助手流式输出(SSE代理,逐字渲染+思考中光标+断连安全持久化)
|
2026-06-18 05:07:28 +08:00 |
|
attacker
|
139bddc9d9
|
docs: update dev-log - AIOps快捷操作接入真实平台数据
|
2026-06-18 04:07:24 +08:00 |
|
attacker
|
32cd3b8112
|
feat: AIOps智能助手快捷操作接入真实平台数据(告警/Agent指标/仪表盘统计注入LLM上下文)
|
2026-06-18 04:06:55 +08:00 |
|
attacker
|
ae09faa780
|
docs: update dev-log - AIOps对话历史持久化
|
2026-06-18 03:06:14 +08:00 |
|
attacker
|
32de3709ed
|
feat: AIOps智能助手对话历史持久化(按用户隔离,刷新后仍可见)
|
2026-06-18 03:05:30 +08:00 |
|
attacker
|
6321886b69
|
docs: update dev-log - AIOps智能助手接入真实LLM后端
|
2026-06-18 02:13:23 +08:00 |
|
attacker
|
b8cab7ed0f
|
feat: AIOps智能助手接入真实LLM后端(OpenAI兼容代理+配置持久化)
后端:
- models/llm.go: LLMConfig模型(单行配置)+请求/响应struct
- handlers/llm.go: GetLLMConfig/SaveLLMConfig(脱敏+upsert)/Chat(OpenAI兼容代理)/TestLLMConnection
- routes.go: 注册 /aiops/llm-config(GET/PUT/test)+/aiops/chat(POST)
- database.go: AutoMigrate LLMConfig
- 支持OpenAI/DeepSeek/通义千问/Moonshot/Ollama/自定义6种提供商
- API Key脱敏(仅保留后4位)+回传脱敏值保留原值
- 优雅错误处理(连接超时/401/未配置均返回友好消息)
- 120s超时+AIOps运维助手默认系统提示词
前端:
- AIOpsAssistant.tsx: 全量重写接入真实后端
· 配置弹窗从后端加载(持久化),提供商切换自动填充endpoint/模型
· 启用开关+测试连接按钮+保存反馈
· 真实对话(发送最近10条上下文),思考中spinner,错误红色气泡
· 状态徽章(未配置/在线+模型名),新对话清空
- api.ts: aiApi替代mock aiAssistantApi(getConfig/saveConfig/testConnection/chat)
验证: tsc零错误+build通过+/health正常+前后端联调通过(配置CRUD+API Key脱敏+masked-key保留+chat错误优雅降级) // Logan.Li
|
2026-06-18 02:12:17 +08:00 |
|
attacker
|
2e174fe7eb
|
docs: update dev-log - AIAlertAnalyzer 拆分(helper+子组件模式)
|
2026-06-18 00:12:53 +08:00 |
|
attacker
|
da5f9a3a07
|
refactor: 拆分AIAlertAnalyzer.tsx(541→190行)提取analyzerHelpers+AIAnalysisResult+AutoFixDialog子组件
|
2026-06-18 00:10:39 +08:00 |
|
attacker
|
35b167a0e2
|
fix: 替换腾讯云图标为官方三色云形Logo(Wikimedia Commons)
|
2026-06-17 20:56:38 +08:00 |
|
attacker
|
bdc7a507c0
|
feat: 修复菜单路由+角色权限展示+操作审计+WebSSH终端审计
1. 菜单路由修复: /roles /users /logs-audit /terminal-audit 等系统管理子菜单
通过 useLocation 同步 URL 路径到 Tab 选中状态
2. WebSSH错误提示优化: Go error → 友好中文提示
i/o timeout → 连接超时(防火墙或网络不通)
connection refused → 端口未开放/SSH服务未启动
cannot find session key → 密码或密钥认证失败
连接提示增加端口号显示
3. 角色权限展示: 31项权限种子数据 (资产管理/云资源/K8s/发布/监控/AIOps/系统管理)
4个角色权限分配: admin(31) ops(27) developer(16) viewer(3)
前端角色卡片显示权限名称而非原始code
4. 操作审计修复: 删除/创建/更新服务器均记录审计日志
批量删除逐条记录审计
5. WebSSH终端审计 (JumpServer模式):
- 新增 TerminalSession 模型记录会话(用户/服务器/时间/状态)
- webshell.go 录制终端输出(1MB上限)
- 终端审计页面: 会话列表+状态筛选+批量删除
- 操作回放: xterm.js 重放录制的终端输出
- WS连接增加JWT鉴权+token传递
|
2026-06-17 08:55:09 +08:00 |
|
attacker
|
4797059be2
|
docs: update dev-log - 清理死代码 LogManager+logsApi+LogEntry
|
2026-06-17 08:05:12 +08:00 |
|
attacker
|
73505d6604
|
refactor: 清理死代码 LogManager.tsx(514行)+logsApi+LogEntry类型(已移除日志能力菜单的孤立残留)
|
2026-06-17 08:04:22 +08:00 |
|
attacker
|
a501229cb3
|
docs: update dev-log - SystemManager 拆分(useLdapManagement Hook)
|
2026-06-17 07:08:33 +08:00 |
|
attacker
|
019a9d13f3
|
refactor: 拆分SystemManager.tsx(569→308行)提取useLdapManagement自定义Hook封装全部LDAP状态与业务逻辑
|
2026-06-17 07:08:01 +08:00 |
|
attacker
|
d234cb4b89
|
docs: update dev-log - AnsibleManager 拆分
|
2026-06-17 06:05:27 +08:00 |
|
attacker
|
c6e4b519e8
|
refactor: 拆分AnsibleManager.tsx(535→399行)提取AnsibleStatsCards+AnsiblePlaybookCard+AnsibleExecutionsTable子组件
|
2026-06-17 06:05:03 +08:00 |
|
attacker
|
7432431fc3
|
docs: update dev-log - AgentAlerts 拆分
|
2026-06-17 05:04:26 +08:00 |
|
attacker
|
9276718d37
|
refactor: 拆分AgentAlerts.tsx(542→311行)提取agentAlertHelper+AgentRuleDialog子组件
|
2026-06-17 05:04:01 +08:00 |
|
attacker
|
cbe34666c0
|
docs: update dev-log - ScriptManager 拆分
|
2026-06-17 04:04:56 +08:00 |
|
attacker
|
2582f12c36
|
refactor: 拆分ScriptManager.tsx(546→411行)提取ScriptStatsCards+ScriptCard+ScriptExecutionsTable子组件
|
2026-06-17 04:04:33 +08:00 |
|
attacker
|
aeb2611149
|
docs: update dev-log - SystemUserTab 拆分
|
2026-06-17 03:07:26 +08:00 |
|
attacker
|
2b5cbfb992
|
refactor: 拆分SystemUserTab.tsx(588→311行)提取UserDetailDialog+CsvImportDialog+LdapImportDialog子组件
|
2026-06-17 03:06:22 +08:00 |
|
attacker
|
367232f2b3
|
docs: update dev-log - ReleaseManager 拆分
|
2026-06-17 02:06:27 +08:00 |
|
attacker
|
796cc35fb3
|
refactor: 拆分ReleaseManager.tsx(581→368行)提取releaseManagerHelpers+ReleaseApplyDialog+ReleaseApproveDialog子模块
|
2026-06-17 02:05:48 +08:00 |
|
attacker
|
76bcf3e135
|
docs: update dev-log - ServerManager 拆分
|
2026-06-17 01:07:08 +08:00 |
|
attacker
|
7dc5cdb7f2
|
refactor: 拆分ServerManager.tsx(645→462行)提取ServerTableRow+serverHelpers子模块
|
2026-06-17 01:06:38 +08:00 |
|
attacker
|
dcc13d7068
|
docs: update dev-log - AppRelease 拆分
|
2026-06-17 00:06:19 +08:00 |
|
attacker
|
28655b4ad5
|
refactor: 拆分AppRelease.tsx(650→339行)提取ReleaseDetailDialog+ReleaseCreateDialog+releaseHelpers子模块
|
2026-06-17 00:05:38 +08:00 |
|
attacker
|
8a4ae0ac5c
|
docs: update dev-log - CronJobManager 拆分
|
2026-06-16 22:08:47 +08:00 |
|
attacker
|
f60809d9b0
|
refactor: 拆分CronJobManager.tsx(652→398行)提取CronJobFormDialog+ExecutionHistoryDialog+cronJobHelpers子模块
|
2026-06-16 22:08:12 +08:00 |
|
attacker
|
a214efe078
|
docs: update dev-log - CloudBilling 拆分
|
2026-06-16 19:09:59 +08:00 |
|
attacker
|
accbfb53c3
|
refactor: 拆分CloudBilling.tsx(663→467行)提取BillingRecordDialog+BillingRuleDialog子模块
|
2026-06-16 19:09:13 +08:00 |
|
attacker
|
f865d41547
|
docs: update dev-log - ApprovalFlow 拆分
|
2026-06-16 07:06:32 +08:00 |
|
attacker
|
d76c23b875
|
refactor: 拆分ApprovalFlow.tsx(666→412行)提取ApprovalDetailDialog+ApprovalCreateDialog子模块
|
2026-06-16 07:05:49 +08:00 |
|
attacker
|
8da6ca15db
|
docs: update dev-log - AIPredictiveAnalytics 拆分
|
2026-06-16 06:06:02 +08:00 |
|
attacker
|
11c97cd885
|
refactor: 拆分AIPredictiveAnalytics.tsx(670→417行)提取predictUtils子模块
|
2026-06-16 06:05:44 +08:00 |
|
attacker
|
67066041b3
|
docs: update dev-log - AgentMonitor 拆分
|
2026-06-16 05:04:37 +08:00 |
|
attacker
|
e544360398
|
refactor: 拆分AgentMonitor.tsx(672→463行)提取HostDetailDialog+agentUtils子模块
- 新增 agentUtils.ts(31行): isOnline/timeAgo/asList 工具函数
- 新增 HostDetailDialog.tsx(201行): 主机详情弹窗+InfoCell+趋势图
- AgentMonitor.tsx 从 672 行降至 463 行, 远离 700 行硬上限
- 移除未使用的 recharts import
|
2026-06-16 05:04:13 +08:00 |
|
attacker
|
84a479caf8
|
docs: update dev-log - mocks/ 死代码目录清理
|
2026-06-16 04:03:21 +08:00 |
|
attacker
|
69253be1e4
|
refactor: 清理mocks/全栈死代码目录 (2528行/104KB, grep确认零外部引用)
|
2026-06-16 04:03:00 +08:00 |
|