This commit is contained in:
zxr
2026-03-30 15:26:16 +08:00
parent 5939a3d62d
commit 279021bf86
25 changed files with 1794 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
package models
import "time"
type LogEvent struct {
ID uint `gorm:"primaryKey" json:"id"`
CreatedAt time.Time `json:"created_at"`
SourceKind string `gorm:"size:16;index" json:"source_kind"`
RemoteAddr string `gorm:"size:64" json:"remote_addr"`
RawPayload string `gorm:"type:text" json:"raw_payload"`
NormalizedSummary string `gorm:"type:text" json:"normalized_summary"`
NormalizedDetail string `gorm:"type:text" json:"normalized_detail"`
DeviceName string `gorm:"size:512;index" json:"device_name"`
SeverityCode string `gorm:"size:32" json:"severity_code"`
TrapOID string `gorm:"size:512;index" json:"trap_oid"`
AlertSent bool `json:"alert_sent"`
}
func (LogEvent) TableName() string {
return "logs_events"
}

17
internal/models/query.go Normal file
View File

@@ -0,0 +1,17 @@
package models
// GetAllModels 数据库迁移用模型列表
func GetAllModels() []interface{} {
return []interface{}{
&LogEvent{},
&TrapDictionaryEntry{},
&SyslogRule{},
&TrapRule{},
&TrapShield{},
}
}
// InitData 预留默认数据
func InitData() error {
return nil
}

View File

@@ -0,0 +1,21 @@
package models
import "time"
type SyslogRule struct {
ID uint `gorm:"primaryKey" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Name string `gorm:"size:256" json:"name"`
Enabled bool `gorm:"default:true" json:"enabled"`
Priority int `gorm:"index" json:"priority"`
DeviceNameContains string `gorm:"size:512" json:"device_name_contains"`
KeywordRegex string `gorm:"size:512" json:"keyword_regex"`
AlertName string `gorm:"size:256" json:"alert_name"`
SeverityCode string `gorm:"size:32" json:"severity_code"`
PolicyID uint `json:"policy_id"`
}
func (SyslogRule) TableName() string {
return "logs_syslog_rules"
}

View File

@@ -0,0 +1,19 @@
package models
import "time"
type TrapDictionaryEntry struct {
ID uint `gorm:"primaryKey" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
OIDPrefix string `gorm:"size:512;uniqueIndex" json:"oid_prefix"`
Title string `gorm:"size:512" json:"title"`
Description string `gorm:"type:text" json:"description"`
SeverityCode string `gorm:"size:32" json:"severity_code"`
RecoveryMessage string `gorm:"type:text" json:"recovery_message"`
Enabled bool `gorm:"default:true" json:"enabled"`
}
func (TrapDictionaryEntry) TableName() string {
return "logs_trap_dictionary"
}

View File

@@ -0,0 +1,21 @@
package models
import "time"
type TrapRule struct {
ID uint `gorm:"primaryKey" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Name string `gorm:"size:256" json:"name"`
Enabled bool `gorm:"default:true" json:"enabled"`
Priority int `gorm:"index" json:"priority"`
OIDPrefix string `gorm:"size:512" json:"oid_prefix"`
VarbindMatchRegex string `gorm:"size:512" json:"varbind_match_regex"`
AlertName string `gorm:"size:256" json:"alert_name"`
SeverityCode string `gorm:"size:32" json:"severity_code"`
PolicyID uint `json:"policy_id"`
}
func (TrapRule) TableName() string {
return "logs_trap_rules"
}

View File

@@ -0,0 +1,19 @@
package models
import "time"
type TrapShield struct {
ID uint `gorm:"primaryKey" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Name string `gorm:"size:256" json:"name"`
Enabled bool `gorm:"default:true" json:"enabled"`
SourceIPCIDR string `gorm:"size:64" json:"source_ip_cidr"`
OIDPrefix string `gorm:"size:512" json:"oid_prefix"`
InterfaceHint string `gorm:"size:256" json:"interface_hint"`
TimeWindowsJSON string `gorm:"type:text" json:"time_windows_json"`
}
func (TrapShield) TableName() string {
return "logs_trap_shields"
}