- Agent CLI: 多轮对话、SSH 长连接、流式推理、Evolver 按用户隔离、历史侧栏 - 终端审计: 回放播放器、命令书签、筛选分页导出、命令输出统计、录制落盘修复 - 修复 session_commands 表迁移、Kill 竞态导致录制丢失、无录制会话回放提示 - 审计历史页只读(移除删除),移除回放弹框录制搜索
41 lines
1.6 KiB
Go
41 lines
1.6 KiB
Go
package model
|
||
|
||
import "time"
|
||
|
||
// TerminalSession SSH终端会话记录(JumpServer 式终端审计) // Logan.Li
|
||
type TerminalSession struct {
|
||
ID uint `gorm:"primarykey" json:"id"`
|
||
UserID *uint `json:"user_id"`
|
||
Username string `gorm:"size:64" json:"username"`
|
||
ServerID uint `json:"server_id"`
|
||
ServerName string `gorm:"size:128" json:"server_name"`
|
||
ServerIP string `gorm:"size:64" json:"server_ip"`
|
||
ServerPort int `json:"server_port"`
|
||
ClientIP string `gorm:"size:64" json:"client_ip"`
|
||
Status string `gorm:"size:32" json:"status"` // active, closed, failed
|
||
Duration int `json:"duration"` // seconds
|
||
RecordData string `gorm:"type:mediumtext" json:"-"` // 终端录制原始输出(asciicast v2 格式,max 16MB)
|
||
RecordSize int `json:"record_size"` // 录制字节数
|
||
StartTime time.Time `json:"start_time"`
|
||
EndTime *time.Time `json:"end_time"`
|
||
CreatedAt time.Time `json:"created_at"`
|
||
}
|
||
|
||
// TableName 表名
|
||
func (TerminalSession) TableName() string {
|
||
return "sys_terminal_sessions"
|
||
}
|
||
|
||
// TerminalSessionQuery 终端会话查询 // Logan.Li
|
||
type TerminalSessionQuery struct {
|
||
ServerID uint `form:"server_id"`
|
||
Username string `form:"username"`
|
||
Status string `form:"status"`
|
||
Keyword string `form:"keyword"` // 模糊匹配用户/主机名/IP/客户端IP
|
||
StartDate string `form:"start_date"` // YYYY-MM-DD
|
||
EndDate string `form:"end_date"` // YYYY-MM-DD
|
||
HasRecord string `form:"has_record"` // 1/true 仅含录制
|
||
Page int `form:"page,default=1"`
|
||
PageSize int `form:"page_size,default=20"`
|
||
}
|