attacker
|
487d542c8c
|
refactor: backend alert.go split (586→133+274+206 lines, alerts/rules/channels)
|
2026-06-15 14:05:28 +08:00 |
|
attacker
|
46c50a13f4
|
docs: update dev-log - AlertCenter split
|
2026-06-15 13:07:22 +08:00 |
|
attacker
|
76a41f5eeb
|
refactor: AlertCenter拆分(723→390行)+修复TopologyView类型错误
- AlertCenter.tsx: 723→390行,提取类型/helpers/渠道Tab到子组件
- alert-center-helpers.tsx: 新建(127行),共享Alert/AlertRule/NotificationChannel类型+mapAlert+badge helpers
- AlertChannelDialog.tsx: 新建(121行),通知渠道创建/编辑对话框(自包含useEffect同步)
- AlertChannelsTab.tsx: 新建(152行),通知渠道Tab自包含(状态+API+渲染+CRUD)
- AlertCenterDetail.tsx: 去重getSeverityBadge,统一从helpers导入
- TopologyView.tsx: 修复editForm.type类型推断(string→TopologyNode['type'])
|
2026-06-15 13:07:01 +08:00 |
|
attacker
|
805cb767a8
|
snapshot: AlertCenter拆分前快照
|
2026-06-15 13:01:56 +08:00 |
|
attacker
|
6a40956afa
|
docs: update dev-log - ScriptManager split
|
2026-06-15 12:08:12 +08:00 |
|
attacker
|
745dde358e
|
refactor: ScriptManager split into 5 files (730 to 546 lines)
- script-helpers.tsx (97 lines): Script/ExecutionRecord types, mapScript, scriptTypes, getTypeBadge, genCode, getStatusBadge, formatDate
- ScriptFormDialog.tsx (113 lines): new/edit script dialog
- ScriptDetailDialog.tsx (49 lines): view script content dialog
- ScriptLogsDialog.tsx (39 lines): execution logs dialog
- ScriptManager.tsx (546 lines): main component, imports sub-components
Verified: tsc --noEmit zero errors, npm run build passes, browser tested all 3 dialogs + tabs + stats cards, console zero errors
|
2026-06-15 12:07:46 +08:00 |
|
attacker
|
23fe742cc2
|
docs: update dev-log - AnsibleManager split
|
2026-06-15 11:07:55 +08:00 |
|
attacker
|
30cc899268
|
refactor: AnsibleManager split into 5 files (740 to 535 lines)
- ansible-helpers.tsx (114): types, mapPlaybook, categories, samplePlaybook, getStatusBadge, formatDate
- AnsibleFormDialog.tsx (111): 新建/编辑 Playbook 弹窗
- AnsibleDetailDialog.tsx (47): 查看 Playbook 内容弹窗
- AnsibleLogsDialog.tsx (38): 执行日志弹窗
- AnsibleManager.tsx (740->535): 主组件保留统计卡片+Tab布局+列表+表格+状态管理
|
2026-06-15 11:07:31 +08:00 |
|
attacker
|
e6d9f364e5
|
snapshot: AnsibleManager拆分前快照
|
2026-06-15 10:01:24 +08:00 |
|
attacker
|
16205fdb2b
|
docs: update dev-log - PipelineManager split
|
2026-06-15 09:05:45 +08:00 |
|
attacker
|
3f033e9db8
|
refactor: PipelineManager split into 4 files (776 to 438 lines)
|
2026-06-15 09:05:28 +08:00 |
|
attacker
|
419dd160b8
|
docs: 更新开发日志-资源申请模块重构
|
2026-06-15 08:07:28 +08:00 |
|
attacker
|
f70feb360c
|
feat: 资源申请模块重构——清理816行死代码+提取共享helpers+修复类型标签bug
- 删除 CabinetView.tsx(422行) + ResourceModelManager.tsx(394行) 死代码
- 提取 approval/helpers.tsx 共享辅助函数(parseSteps/parseFields/renderFormData/
getProgressInfo/renderStepProgress/APPROVAL_TYPE_OPTIONS/getInstanceType)
- 修复审批类型标签bug:instance无type字段,需从template.type取
(getApprovalTypeLabel/Color/Icon 全部改用 getInstanceType(instance))
- ApprovalFlow.tsx 771→666行(低于700限制)
- ApprovalProcessTab.tsx 移除重复helpers+过期类型字典(deploy/server/permission→server_apply/app_deploy)
|
2026-06-15 08:07:10 +08:00 |
|
attacker
|
8c4b59510d
|
feat: 云账号卡片改用品牌SVG图标替代纯文字色块
- 新建 CloudBrandIcon 组件: AWS/Azure/GCP/阿里云/腾讯云/华为云 官方品牌色+SVG路径
- 图标数据源同 TechIcons.dev / VectorLogo.zone (simple-icons 开源项目)
- CloudAccountManager: providerIcons纯文字→CloudBrandIcon SVG品牌图标
- 卡片底部品牌色描边替代满色背景块
- 新增 GCP 到 provider 列表
|
2026-06-15 07:37:29 +08:00 |
|
attacker
|
011f3d6b51
|
docs: 更新开发日志-服务器导入弹窗主题化+CRUD联调验证
|
2026-06-15 07:05:28 +08:00 |
|
attacker
|
c111be7610
|
feat: 服务器导入弹窗主题化——CloudServerImport+ExcelServerImport全量替换硬编码slate色为CSS变量+补DialogDescription消除Radix警告
|
2026-06-15 07:05:02 +08:00 |
|
attacker
|
bc7323e687
|
docs: 更新开发日志-定时任务管理全栈完善
|
2026-06-15 06:04:41 +08:00 |
|
attacker
|
18dffa826a
|
feat: 定时任务管理(CronJob)全栈完善——删除确认框+主题色+空状态+刷新按钮+toast反馈
- 新增删除确认框(useConfirm variant:destructive),显示任务名称
- 全量主题色替换:bg-slate-800→var(--dg-bg-secondary)、border-slate-700→var(--dg-border)等
- 新增空状态(PackageOpen图标+提示文案),无任务时优雅降级
- 新增刷新按钮(双loading state:首次spinner+手动刷新spin icon)
- toggle操作新增toast成功反馈
- 执行历史空状态优化(History图标+提示)
- 修复Fragment key警告(<>→<Fragment key>)
- 描述为空时显示—占位符
|
2026-06-15 06:04:15 +08:00 |
|
attacker
|
5e3c60d0da
|
docs: 更新开发日志-流水线管理全栈完善
|
2026-06-15 05:04:51 +08:00 |
|
attacker
|
837f50daae
|
feat: 流水线管理全栈完善——字段修复+编辑功能+toast反馈+确认框+主题色
|
2026-06-15 05:04:34 +08:00 |
|
attacker
|
fd1f30958a
|
docs: 更新开发日志-发布管理全栈完善
|
2026-06-15 04:06:37 +08:00 |
|
attacker
|
a5970315be
|
feat: 发布管理全栈完善——环境值修复+驳回API+toast反馈+详情弹窗+确认框
后端:
- pipeline.go: 新增 RejectRelease handler(仅pending可驳回,状态置rejected)
- routes.go: 注册 POST /releases/:id/reject 路由
前端:
- ReleaseManager.tsx 重写(553→581行):
- 修复环境值不匹配: development/production → dev/prod(与后端binding一致)
- 移除硬编码mock applications数组,改自由输入应用名
- 修复字段名: release.deployer → release.author
- 新增toast反馈(create/approve/reject/deploy/rollback均有success/error)
- 新增确认框(deploy/rollback操作前确认)
- 新增发布详情弹窗(原缺失,Eye按钮无响应)
- 新增空状态展示
- 新增rejected状态徽章
- 主题感知: bg-slate-800 → var(--dg-bg-secondary)
- Select替换原生select下拉框
- api.ts: 新增 rejectRelease 方法
// Logan.Li
|
2026-06-15 04:06:18 +08:00 |
|
attacker
|
618da69576
|
snapshot: 发布管理完善前快照
|
2026-06-15 04:02:27 +08:00 |
|
attacker
|
18aa445b32
|
fix: 仪表盘死按钮修复+K8s进度条可视化+标题简化
- Dashboard: 移除无功能的"实时监控"按钮,"刷新"按钮接上数据重载(useCallback+spin动画)
- DashboardRecent: 4个"查看全部"按钮接上路由导航(告警→/alerts, 发布→/releases, 服务器→/servers, 集群→/clusters)
- K8sNodes: CPU/Mem使用率从纯文本改为迷你进度条(颜色阈值:绿<60%/黄60-85%/红>85%)
- K8sWorkloads: Deployment副本比用进度条可视化(满=绿/未满=黄)
- K8sClusters: 页面标题"K8s集群管理"→"集群列表"
|
2026-06-15 03:35:30 +08:00 |
|
attacker
|
bf3d642b59
|
docs: 更新开发日志-仪表盘真实指标修复
|
2026-06-15 03:05:45 +08:00 |
|
attacker
|
a3b84f79c7
|
fix: 仪表盘资源趋势图使用真实Agent指标替代随机假数据
- 后端 GetMetrics 修复 strftime 字符串无法扫入 time.Time 导致 timestamp 为零值的 bug
(改为 string 类型 + time.ParseInLocation 手动解析)
- 前端 Dashboard.tsx 新增 getMetrics(24) 调用,获取真实按小时聚合的 Agent 数据
- DashboardCharts.tsx 新增 buildMetricsFromReal() 将 MetricData[] 转换为图表数据
- ResourceUsageCard 优先使用真实时间序列,无数据时回退到平均值生成
|
2026-06-15 03:05:26 +08:00 |
|
attacker
|
b770ec025b
|
feat: K8s节点管理+工作负载独立组件,架构拓扑可拖拽编辑
- 新建 K8sNodes.tsx: 集群选择→节点表格(角色/状态/CPU/Mem/Pods/Kubelet版本)
- 新建 K8sWorkloads.tsx: Deployment+Pod双Tab,副本/镜像/重启次数/状态
- TopologyView: SVG节点支持鼠标拖拽,实时更新坐标,cursor grab/grabbing
- 节点/工作负载路由从K8sClusters占位改为独立组件
- Sidebar: Kubernetes管理→Kubernetes
|
2026-06-15 02:46:35 +08:00 |
|
attacker
|
674fe5b17f
|
cleanup: 移除3个废弃AI组件(AIOpsHub/AIFaultDiagnosis/AIScriptGenerator), 清理1087行死代码
|
2026-06-15 02:40:13 +08:00 |
|
attacker
|
d1415561ef
|
refactor: 移除SQL审计+站内导航,AIOps子菜单6→3精简,服务器批量删除加确认框
- 移除SQL审计菜单和路由
- 移除站内导航菜单和路由
- AIOps智能子菜单从6个精简为3个:智能助手、告警分析、容量预测
- 移除智能运维中心(空壳)、故障诊断(与告警分析重复)、脚本生成(并入助手)
- 服务器删除/批量删除添加Dialog确认框
- 删除/批量删除添加toast成功反馈
|
2026-06-15 02:36:47 +08:00 |
|
attacker
|
3be53b89fa
|
feat: WebShell真实SSH终端 + 移除日志能力菜单
|
2026-06-15 02:28:28 +08:00 |
|
attacker
|
925348e583
|
fix: 移除Header Tab栏(与侧边栏重复); 修复approve/reject 400(ApproveRequest去掉required binding)
|
2026-06-15 02:21:04 +08:00 |
|
attacker
|
e4958feb1b
|
fix: AlertCenter崩溃修复——字段名映射+notify_channels安全解析
- AlertRule接口与后端对齐(id:number/notify_channels:string)
- 告警事件数据映射(rule_name→title, message→description, target→source)
- notify_channels安全解析(JSON.parse+try-catch替代直接.map)
- labels/annotations字符串转对象安全处理
- Header tab栏移除(侧边栏导航足够)
- SQL审计API改为真实后端调用
|
2026-06-15 02:18:10 +08:00 |
|
attacker
|
b9f1e28319
|
feat: CLAUDE.md重写;修复Dashboard GetMetrics假数据改为真实AgentReport;审批流程完整验证通过;移除AlertManager静默规则占位Tab
|
2026-06-15 02:14:49 +08:00 |
|
attacker
|
77c33a6fee
|
feat: 服务器批量导入全栈实现 + SQL审计模型修复 + 审批流程增强
服务器批量导入:
- 后端 BatchCreateServers handler: 逐条校验/查重/GB→MB转换/错误明细
- 前端 CSV 解析器 + IP校验 + 模板下载 + 真实API导入
- 删除孤立占位组件 BatchImport.tsx
SQL审计:
- 修复 TableName 字段与 GORM 接口冲突 → TargetTable
- 补全路由注册 + AutoMigrate + 种子数据
审批流程增强 + 告警/菜单微调
// Logan.Li
|
2026-06-15 02:12:05 +08:00 |
|
attacker
|
6545597412
|
fix: 恢复链路追踪和监控大屏(监控模块),仅移除SQL审计;修复AlertCenter崩溃
|
2026-06-15 02:00:22 +08:00 |
|
attacker
|
df697e0b25
|
feat: 清除全部mock数据,Ansible/日志/告警中心/角色权限接真实API;移除SQL审计(不属于项目定位)
|
2026-06-15 01:59:28 +08:00 |
|
attacker
|
73b5a48df9
|
refactor: 全局代码模块化重构 — 所有文件<700行
后端 handler 拆分:
- automation.go(1067→4文件), server.go(1011→5文件), ldap.go(815→3文件), user.go(704→2文件)
前端组件拆分:
- SystemManager(1782→569), AlertManager(1133→220), K8sClusters(1062→4文件)
- Dashboard(941→4文件), ServerManager(905→640), ApprovalFlow(830→548)
- AlertCenter(775→693), AIPredictiveAnalytics(760→670)
- CloudBilling(728→663), GrafanaDashboard(717→643), sidebar(726→689)
Mock 数据模块化:
- mocks/data.ts(2552行→barrel+11个domain模块)
新增 CLAUDE.md 项目全局开发规范
修复: AlertCenter/LogManager ListResponse.data→.list 类型不匹配
验证: go build ✅ + tsc --noEmit ✅ + npm run build ✅
|
2026-06-15 01:32:15 +08:00 |
|
attacker
|
e8dbe65955
|
docs: 更新开发日志 — 记录定时任务编辑入口+ApprovalFlow编译修复+大文件拆分
|
2026-06-15 01:10:33 +08:00 |
|
attacker
|
a7e2351ad2
|
feat: 定时任务编辑入口全栈打通 + 修复ApprovalFlow编译错误 + 完成大文件拆分重构
- CronJobManager: 编辑按钮接通 onClick → openEdit(job),弹出编辑对话框预填数据,
复用新建/编辑共用 Dialog(editingId 区分模式),标题/按钮文案动态切换,
保存时根据 editingId 调用 createJob 或 updateJob — 消除占位按钮
- ApprovalFlow: 修复 API 方法名不匹配导致 tsc -b 编译失败
(getInstances→getProcesses, getMyApprovals→getProcesses({status:'pending'}),
approveInstance→approveProcess, rejectInstance→rejectProcess)
+ 添加 ApprovalFlowManager 导出别名兼容 App.tsx 导入
- 合并已完成的大文件拆分重构: automation.go→automation_cron/script/playbook,
ldap.go→ldap_ou/ldap_users, server.go→cloud_accounts/domain/platform/region,
user.go→user_admin; 前端 Dashboard/K8s/Server/Approval/Monitor 子组件拆分
// Logan.Li
|
2026-06-15 01:09:49 +08:00 |
|
attacker
|
8be63ac168
|
docs: 更新开发日志 — 记录脚本库 ScriptManager 全栈CRUD
|
2026-06-15 00:10:15 +08:00 |
|
attacker
|
242389a1de
|
feat: 脚本库全栈CRUD管理器(ScriptManager) — 替换占位AutomationManager
- 新增 ScriptManager.tsx: 完整脚本库管理(新建/编辑/查看/复制/删除/执行)
- 卡片列表 + 搜索 + 类型筛选(shell/python/powershell/yaml)
- 新建/编辑复用对话框,类型切换自动填充模板
- 执行: ConfirmProvider确认 + 本地执行 + toast反馈(耗时/输出)
- 执行记录tab: 真实TaskExecution记录 + 终端风格日志查看
- 4统计卡片(总数/执行中/今日成功/今日失败)
- App.tsx: /scripts路由指向ScriptManager, 移除无用AutomationManager及dead /playbooks路由
- 删除 Automation.tsx (占位显示页,非功能性按钮)
|
2026-06-15 00:09:29 +08:00 |
|
attacker
|
b7c4d90b6b
|
docs: 更新开发日志 — 记录 Ansible Playbook 全栈 CRUD+真实执行
|
2026-06-14 23:14:54 +08:00 |
|
attacker
|
ae6af93360
|
feat: Ansible Playbook 全栈 CRUD + 真实执行 — 替换mock为后端持久化
后端:
- models/automation.go: Playbook 模型新增 Category/Tags 字段; 新增 CreatePlaybookRequest
- handlers/automation.go: 新增 runPlaybookLocal(写临时YML+ansible-playbook --connection=local执行)
+ randomCode(crypto/rand生成唯一code) + List/Get/Create/Update/Delete/Execute Playbook 完整CRUD
Execute 创建TaskExecution(task_type=playbook)记录,采集stdout/stderr/退出码/耗时
- routes/routes.go: 注册 /playbooks 路由组(7个端点)
前端:
- services/api.ts: ansibleApi 从mock改为真实 /playbooks 后端调用
- AnsibleManager.tsx 完全重写:
- Playbook管理: 真实数据卡片列表(id/name/category/tags/run_count/timeout) + 搜索/分类筛选
- 新建/编辑对话框复用(编辑模式预填数据) — 新增编辑入口(原无编辑功能)
- 查看内容: 终端风格YAML查看器 + 快捷编辑按钮
- 执行: ConfirmProvider确认 + ansible-playbook本地执行 + toast结果反馈
- 执行记录tab: 真实TaskExecution记录(任务名/状态/开始时间/耗时/日志查看)
- 统计卡片: 总数/执行中/今日成功/今日失败(基于真实执行记录)
- 移除原inventory占位tab(无后端支持,避免非功能按钮)
- tags JSON数组与前端string[]互转映射
|
2026-06-14 23:14:16 +08:00 |
|
attacker
|
2807e4895b
|
docs: 更新开发日志 — 记录脚本/定时任务真实执行+输出捕获
|
2026-06-14 22:11:59 +08:00 |
|
attacker
|
a4fd5fc178
|
feat: 脚本/定时任务真实执行+输出捕获+执行历史 — 替换pending空壳为本地执行,采集stdout/stderr,更新统计;修复CronJobManager/Automation字段名不匹配(status→enabled,cron→cron_expr,command→content,language→type)
|
2026-06-14 22:11:18 +08:00 |
|
attacker
|
85bc2a8e05
|
feat: agent distribution via AIOps backend + install script
- Serve agent binaries from /agent/aiops-agent-linux-{amd64,arm64}
- One-line install: curl -fsSL http://server:8080/agent/install.sh | bash
- Auto-detects arch (x86_64/aarch64), creates systemd service
- GET /agent/arch returns version + download URLs
Signed-off-by: Logan.Li
|
2026-06-14 21:33:08 +08:00 |
|
attacker
|
ac0b8e75c0
|
feat: add monitoring agent (Go) + agent report API + cloud billing UI
- Go agent: CPU/mem/disk/port collectors, HTTP report, static binary
- Cross-compile: linux/amd64 + linux/arm64 (statically linked)
- One-line install script for all Linux distros
- Backend: POST /api/v1/agent/report (no JWT) + GET /agent/latest,history (JWT)
- CloudBilling.tsx: fixed syntax errors, stats/trends/records/alerts
- K8s menu renamed to Kubernetes管理
Signed-off-by: Logan.Li
|
2026-06-14 21:27:14 +08:00 |
|
attacker
|
77d13b07d5
|
docs: 更新开发日志 — 记录AI预测分析数据驱动化+CloudBilling修复
|
2026-06-14 21:14:16 +08:00 |
|
attacker
|
2da4f52209
|
feat: AI预测分析接入真实后端数据 + 修复CloudBilling文件损坏
- AIPredictiveAnalytics: 替换3组硬编码mock为实时数据驱动预测
- 指标预测: 基于dashboard metrics时序数据(cpu/memory/disk)线性回归计算斜率与R²
- 容量规划: 基于日均增长率推算阈值触及时间(天),动态生成AI扩容建议
- 异常预测: 基于告警规则阈值+当前趋势+事件频率计算异常触发概率
- 概览卡片数据驱动化(置信度基于R²拟合度,高风险/容量预警计数实时计算)
- CloudBilling.tsx: 修复read_file导致的行号前缀损坏(501行全部含N|前缀)
|
2026-06-14 21:13:49 +08:00 |
|
attacker
|
0ebe22d142
|
docs: 更新开发日志 — 记录K8s拓扑图接入真实后端数据
|
2026-06-14 20:13:04 +08:00 |
|
attacker
|
9f65faff6f
|
feat: K8s集群拓扑图接入真实后端数据 — 分层可视化Cluster→Ingress→Service→Deployment→Node + http.ts类型修复
|
2026-06-14 20:12:42 +08:00 |
|
attacker
|
4b094f4645
|
docs: 更新开发日志 — 记录AI告警分析接入真实后端数据
|
2026-06-14 14:07:25 +08:00 |
|
attacker
|
b99e971fc9
|
feat: AI告警智能分析接入真实后端告警事件 — 替换硬编码mock为动态分析
- AIAlertAnalyzer: 从 GET /alerts 加载真实告警事件(替代4条硬编码mock)
- mapAlertEvent: 映射AlertEvent→AlertItem(解析表达式提取指标/阈值,计算持续时间)
- generateAIAnalysis: 按指标类型(CPU/内存/磁盘/网络/服务)动态生成根因分析/影响评估/修复建议/自动修复脚本
- Dashboard: 服务器/告警增长率标签从硬编码改为数据驱动(基于error/week_count)
- DomainManager: 到期时间截取YYYY-MM-DD格式
- PipelineManager: 流水线创建传递stages/code/type字段
|
2026-06-14 14:07:03 +08:00 |
|
attacker
|
bae3a2f013
|
docs: 更新开发日志 — 记录告警规则关联通知渠道功能
|
2026-06-14 12:08:54 +08:00 |
|
attacker
|
f3e1b81a3a
|
feat: 告警规则关联真实通知渠道 — 规则表单选择已配置渠道替代硬编码类型
- 规则创建/编辑表单: 用实际已配置的通知渠道列表(运维钉钉群/DBA邮箱等)替代硬编码的email/sms/dingtalk类型开关
- 规则表notify_channels列: 渠道ID解析为渠道名称+类型图标(替代原先仅显示3个固定图标)
- 组件挂载时预加载notifyChannels(原先仅在通知渠道弹窗打开时加载)
- 向后兼容: resolveChannelRef同时支持新格式(渠道ID)和旧格式(类型字符串)
- 数据修复: 恢复3条被软删除的种子通知渠道记录
|
2026-06-14 12:08:36 +08:00 |
|
attacker
|
7fc0701acb
|
docs: 更新开发日志 — 记录流水线运行历史联调
|
2026-06-14 11:05:31 +08:00 |
|
attacker
|
6012418523
|
feat: 流水线运行历史前后端联调 — 详情弹窗历史记录标签展示真实PipelineRun数据(构建号/状态/分支/Commit/触发者/时间)
|
2026-06-14 11:05:09 +08:00 |
|
attacker
|
1d98503f37
|
feat: 仪表盘云成本增长率标签数据驱动化 — 基于month_trend真实计算环比(原硬编码+12.5%→实时+3.1%)
|
2026-06-14 10:04:02 +08:00 |
|
attacker
|
c1d33c1a9c
|
docs: 更新开发日志 — 记录域名管理增删改查功能
|
2026-06-14 09:07:29 +08:00 |
|
attacker
|
b110d38e73
|
feat: 域名管理增删改查 — 新增PUT /domains/:id编辑端点 + 创建/编辑弹窗 + 日期字段字符串解析修复
|
2026-06-14 09:07:11 +08:00 |
|
attacker
|
e05ecb4080
|
docs: 更新开发日志 — 记录云账号编辑功能+mock.go编译修复
|
2026-06-14 08:17:09 +08:00 |
|
attacker
|
af2e60acd9
|
feat: 云账号编辑功能 + 通知渠道种子数据 + 修复mock.go编译错误
- 新增 PUT /cloud-accounts/:id 后端端点(UpdateCloudAccount handler + 路由注册)
- 前端 CloudAccountManager 添加编辑弹窗:复用创建表单,凭证留空保持不变
- 修复 scripts/mock.go 编译错误:补充缺失的 generateNotifyChannels 函数(5种通知渠道种子)
- 包含前序未提交的告警通知渠道 CRUD 后端API + AlertManager 通知配置前端UI
|
2026-06-14 08:16:52 +08:00 |
|
attacker
|
01a9bebb0c
|
feat: 云账号创建表单 — 修复凭证反序列化bug + 添加账号弹窗
- 后端: 重构 CreateCloudAccount 用独立 createCloudAccountRequest struct,
修复 AccessKey/SecretKey 因 json:"-" 导致反序列化被跳过、凭证永远为空的 bug (Go Pitfall #8)
- 前端: 添加账号按钮接入 Dialog 表单 (名称/云平台/AccessKey/SecretKey/月费用/状态),
移除无 handler 的刷新/编辑按钮,新增名称必填校验
|
2026-06-14 07:05:19 +08:00 |
|
attacker
|
5db69e8abc
|
feat: 仪表盘成本统计数据驱动化 — CloudAccount新增MonthlyCost字段 + dashboard实时聚合云账号月费用
|
2026-06-14 06:04:56 +08:00 |
|
attacker
|
a1237587f6
|
feat: 服务器管理前后端字段对齐 — 移除CMDB幽灵字段 + SSH导向表单 + GB→MB内存转换
|
2026-06-14 05:11:15 +08:00 |
|
attacker
|
56e0cb15ac
|
docs: 更新开发日志 — 记录K8s集群监控数据展示完善
|
2026-06-14 04:07:23 +08:00 |
|
attacker
|
8d47f8d86c
|
feat: K8s集群监控数据展示 — 修复详情标签数据加载 + 补充Pod/Deployment/Service/Ingress种子数据 + deployment_count字段
|
2026-06-14 04:07:06 +08:00 |
|
attacker
|
1244a7cc6e
|
docs: 更新开发日志 — 记录告警规则配置页面完善
|
2026-06-14 03:08:04 +08:00 |
|
attacker
|
00d5510366
|
feat: 完善告警规则配置页面 — 增删改查弹窗 + 修复白屏bug + UpdateRule notify_channels序列化修复
- AlertManager: 新建/编辑告警规则弹窗(规则名称/描述/类型/数据源/表达式/级别/持续时间/通知渠道Switch)
- AlertManager: 修复白屏bug — getRules返回{list,total}未解包导致rules.map崩溃(Frontend Pitfall #1)
- AlertManager: 修复规则列表字段显示 — 原引用不存在的rule.metric/operator/threshold字段,改为rule.source/expression
- AlertManager: 新增规则删除按钮(带确认)
- alert.go: 修复UpdateRule notify_channels序列化bug — 原直接赋值[]string到text列导致500,改用toJSON()
- 同步提交前序未提交改动(WebShell/K8s/Server/Login等组件改进)
|
2026-06-14 03:07:44 +08:00 |
|
attacker
|
170818c141
|
docs: 更新开发日志 — 记录仪表盘数据管线修复
|
2026-06-14 02:11:40 +08: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 |
|
attacker
|
7d6674bddd
|
init: EZOps AIOps 智能运维平台
- 前端: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
- 后端: Go + Gin + GORM + JWT (golang-jwt/jwt/v5)
- 功能: 服务器管理、K8s集群、监控告警、CI/CD、自动化运维、审批流程、审计日志
- 文档: 设计文档(ROADMAP/PDD/架构/模块)
|
2026-06-13 23:09:47 +08:00 |
|