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 ✅
This commit is contained in:
1 parent
e57718998a
commit
77c234b060
314 files changed
+10050
-4065
No files matched your search
@@ -4,8 +4,8 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"ezops/internal/config"
|
||||
"ezops/internal/models"
|
||||
"ezops/config"
|
||||
"ezops/model"
|
||||
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/driver/postgres"
|
||||
@@ -58,82 +58,82 @@ func New(cfg config.DatabaseConfig) (*gorm.DB, error) {
|
||||
// 避免 GORM + MySQL 8.0 的 "Can't DROP" 索引问题导致整个启动失败
|
||||
func AutoMigrate(db *gorm.DB) error {
|
||||
allModels := []interface{}{
|
||||
&models.User{},
|
||||
&models.Role{},
|
||||
&models.Permission{},
|
||||
&models.Server{},
|
||||
&models.Cloud{},
|
||||
&models.CloudAccount{},
|
||||
&models.Region{},
|
||||
&models.Domain{},
|
||||
&models.KubernetesCluster{},
|
||||
&models.KubernetesNode{},
|
||||
&models.KubernetesPod{},
|
||||
&models.KubernetesDeployment{},
|
||||
&models.KubernetesService{},
|
||||
&models.KubernetesIngress{},
|
||||
&models.AlertRule{},
|
||||
&models.AlertEvent{},
|
||||
&models.NotifyChannel{},
|
||||
&models.MetricData{},
|
||||
&models.Pipeline{},
|
||||
&models.PipelineRun{},
|
||||
&models.AppRelease{},
|
||||
&models.CronJob{},
|
||||
&models.Script{},
|
||||
&models.TaskExecution{},
|
||||
&models.ApprovalTemplate{},
|
||||
&models.ApprovalProcess{},
|
||||
&models.ApprovalStep{},
|
||||
&models.NavigationGroup{},
|
||||
&models.NavigationLink{},
|
||||
&models.AuditLog{},
|
||||
&models.LDAPConfig{},
|
||||
&models.ResourceModel{},
|
||||
&models.CloudBilling{},
|
||||
&models.BillingAlertRule{},
|
||||
&models.AgentReport{},
|
||||
&models.AgentTask{},
|
||||
&models.AgentRule{},
|
||||
&models.AgentAlert{},
|
||||
&models.AnsiblePlaybook{},
|
||||
&models.AnsibleJob{},
|
||||
&models.AnsibleInventory{},
|
||||
&models.LogSource{},
|
||||
&models.LogEntry{},
|
||||
&models.TopologyLayout{}, // 拓扑布局保存 // Logan.Li
|
||||
&models.TerminalSession{}, // 终端会话录制(终端审计) // Logan.Li
|
||||
&models.LLMConfig{}, // 大语言模型配置(AI 智能助手) // Logan.Li
|
||||
&models.ChatHistory{}, // 对话历史记录(按用户隔离) // Logan.Li
|
||||
&models.MetricsAggregate{}, // 指标时序聚合(Redis → MySQL)// Logan.Li
|
||||
&models.MonitorTarget{}, // 监控目标(主机/中间件/设备/站点) // Logan.Li
|
||||
&models.MonitorMetric{}, // 监控指标定义 // Logan.Li
|
||||
&models.MetricValue{}, // 指标当前值 // Logan.Li
|
||||
&models.MetricHistory{}, // 指标历史时序 // Logan.Li
|
||||
&models.HostGroup{}, // 主机组 // Logan.Li
|
||||
&models.SNMPDevice{}, // SNMP设备 // Logan.Li
|
||||
&models.SNMPTemplate{}, // SNMP模板 // Logan.Li
|
||||
&models.SiteTask{}, // 站点拨测任务 // Logan.Li
|
||||
&models.SiteResult{}, // 拨测结果 // Logan.Li
|
||||
&models.SiteAlert{}, // 拨测告警 // Logan.Li
|
||||
&models.PrometheusDataSource{}, // Prometheus 数据源配置 // Logan.Li
|
||||
&models.ZabbixDataSource{}, // Zabbix 数据源配置 // Logan.Li
|
||||
&models.Credential{}, // 凭据管理(SSH密钥/API Token) // Logan.Li
|
||||
&models.PipelineRepo{}, // Git 仓库认证 // Logan.Li
|
||||
&models.PipelineRegistry{}, // 镜像仓库认证 // Logan.Li
|
||||
&models.DeployEnvironment{}, // 发布环境分组 // Logan.Li
|
||||
&models.DeployPipelineMember{}, // 流水线成员 // Logan.Li
|
||||
&models.DeployUserGroup{}, // 用户组 // Logan.Li
|
||||
&models.DeployUserGroupMember{}, // 用户组成员 // Logan.Li
|
||||
&models.ItemRole{}, // Jenkins-style Item Role (regex pipeline matching) // Logan.Li
|
||||
&models.UserItemRole{}, // User ↔ ItemRole association // Logan.Li
|
||||
&models.DeployTool{}, // 工具配置(懒加载/预装/禁用) // Logan.Li
|
||||
&models.AlertCondition{}, // 告警条件 // Logan.Li
|
||||
&models.AlertNotifyTemplate{}, // 告警通知模板 // Logan.Li
|
||||
&models.AlertUpgrade{}, // 告警升级策略 // Logan.Li
|
||||
&models.AlertUpgradeRecord{}, // 告警升级记录 // Logan.Li
|
||||
&models.AlertSilence{}, // 告警静默 // Logan.Li
|
||||
&models.HealthProbe{}, // 健康探针配置 // Logan.Li
|
||||
&model.User{},
|
||||
&model.Role{},
|
||||
&model.Permission{},
|
||||
&model.Server{},
|
||||
&model.Cloud{},
|
||||
&model.CloudAccount{},
|
||||
&model.Region{},
|
||||
&model.Domain{},
|
||||
&model.KubernetesCluster{},
|
||||
&model.KubernetesNode{},
|
||||
&model.KubernetesPod{},
|
||||
&model.KubernetesDeployment{},
|
||||
&model.KubernetesService{},
|
||||
&model.KubernetesIngress{},
|
||||
&model.AlertRule{},
|
||||
&model.AlertEvent{},
|
||||
&model.NotifyChannel{},
|
||||
&model.MetricData{},
|
||||
&model.Pipeline{},
|
||||
&model.PipelineRun{},
|
||||
&model.AppRelease{},
|
||||
&model.CronJob{},
|
||||
&model.Script{},
|
||||
&model.TaskExecution{},
|
||||
&model.ApprovalTemplate{},
|
||||
&model.ApprovalProcess{},
|
||||
&model.ApprovalStep{},
|
||||
&model.NavigationGroup{},
|
||||
&model.NavigationLink{},
|
||||
&model.AuditLog{},
|
||||
&model.LDAPConfig{},
|
||||
&model.ResourceModel{},
|
||||
&model.CloudBilling{},
|
||||
&model.BillingAlertRule{},
|
||||
&model.AgentReport{},
|
||||
&model.AgentTask{},
|
||||
&model.AgentRule{},
|
||||
&model.AgentAlert{},
|
||||
&model.AnsiblePlaybook{},
|
||||
&model.AnsibleJob{},
|
||||
&model.AnsibleInventory{},
|
||||
&model.LogSource{},
|
||||
&model.LogEntry{},
|
||||
&model.TopologyLayout{}, // 拓扑布局保存 // Logan.Li
|
||||
&model.TerminalSession{}, // 终端会话录制(终端审计) // Logan.Li
|
||||
&model.LLMConfig{}, // 大语言模型配置(AI 智能助手) // Logan.Li
|
||||
&model.ChatHistory{}, // 对话历史记录(按用户隔离) // Logan.Li
|
||||
&model.MetricsAggregate{}, // 指标时序聚合(Redis → MySQL)// Logan.Li
|
||||
&model.MonitorTarget{}, // 监控目标(主机/中间件/设备/站点) // Logan.Li
|
||||
&model.MonitorMetric{}, // 监控指标定义 // Logan.Li
|
||||
&model.MetricValue{}, // 指标当前值 // Logan.Li
|
||||
&model.MetricHistory{}, // 指标历史时序 // Logan.Li
|
||||
&model.HostGroup{}, // 主机组 // Logan.Li
|
||||
&model.SNMPDevice{}, // SNMP设备 // Logan.Li
|
||||
&model.SNMPTemplate{}, // SNMP模板 // Logan.Li
|
||||
&model.SiteTask{}, // 站点拨测任务 // Logan.Li
|
||||
&model.SiteResult{}, // 拨测结果 // Logan.Li
|
||||
&model.SiteAlert{}, // 拨测告警 // Logan.Li
|
||||
&model.PrometheusDataSource{}, // Prometheus 数据源配置 // Logan.Li
|
||||
&model.ZabbixDataSource{}, // Zabbix 数据源配置 // Logan.Li
|
||||
&model.Credential{}, // 凭据管理(SSH密钥/API Token) // Logan.Li
|
||||
&model.PipelineRepo{}, // Git 仓库认证 // Logan.Li
|
||||
&model.PipelineRegistry{}, // 镜像仓库认证 // Logan.Li
|
||||
&model.DeployEnvironment{}, // 发布环境分组 // Logan.Li
|
||||
&model.DeployPipelineMember{}, // 流水线成员 // Logan.Li
|
||||
&model.DeployUserGroup{}, // 用户组 // Logan.Li
|
||||
&model.DeployUserGroupMember{}, // 用户组成员 // Logan.Li
|
||||
&model.ItemRole{}, // Jenkins-style Item Role (regex pipeline matching) // Logan.Li
|
||||
&model.UserItemRole{}, // User ↔ ItemRole association // Logan.Li
|
||||
&model.DeployTool{}, // 工具配置(懒加载/预装/禁用) // Logan.Li
|
||||
&model.AlertCondition{}, // 告警条件 // Logan.Li
|
||||
&model.AlertNotifyTemplate{}, // 告警通知模板 // Logan.Li
|
||||
&model.AlertUpgrade{}, // 告警升级策略 // Logan.Li
|
||||
&model.AlertUpgradeRecord{}, // 告警升级记录 // Logan.Li
|
||||
&model.AlertSilence{}, // 告警静默 // Logan.Li
|
||||
&model.HealthProbe{}, // 健康探针配置 // Logan.Li
|
||||
}
|
||||
|
||||
var lastErr error
|
||||
|
||||
Reference in new issue
Block a user