Documentation
¶
Index ¶
- Constants
- Variables
- func AdminPermissions() []string
- func AllPermissions() []string
- func GetConfig(key, defaultValue string) string
- func GetConfigInt(key string, defaultValue int) int
- func InitConfigCache()
- func LoadProxyTagListMap(proxyUuids []string) (map[string][]TagBasic, error)
- func LoadTagMap() (map[string]*TagBasic, error)
- func NewGormDB()
- func OpsPermissions() []string
- func ReplaceProxyTags(tx *gorm.DB, proxyUuid string, tagUuidList []string) error
- func SetConfig(key, value string) error
- type AlertRecord
- type AuditLog
- type ConfigBasic
- type NodeBasic
- func (table *NodeBasic) All() ([]*NodeBasic, error)
- func (table *NodeBasic) CountForName() (int64, error)
- func (table *NodeBasic) Create() error
- func (table *NodeBasic) Delete() error
- func (table *NodeBasic) First() error
- func (table *NodeBasic) TableName() string
- func (table *NodeBasic) Update() error
- type ProxyBasic
- type ProxyTag
- type RoleBasic
- type TagBasic
- type TrafficPolicy
- type UserBasic
Constants ¶
View Source
const ( AuditModuleAuth = "AUTH" // 用户登录 AuditModuleProxy = "PROXY" // 代理管理 AuditModuleTrafficPolicy = "TRAFFIC_POLICY" // 限速配额 )
审计日志模块类型常量
View Source
const ( AuditActionLogin = "LOGIN" // 登录 AuditActionCreate = "CREATE" // 新增 AuditActionUpdate = "UPDATE" // 修改 AuditActionDelete = "DELETE" // 删除 AuditActionStart = "START" // 启动 AuditActionStop = "STOP" // 停止 AuditActionRestart = "RESTART" // 重启 AuditActionEnable = "ENABLE" // 启用 AuditActionDisable = "DISABLE" // 停用 AuditActionImport = "IMPORT" // 导入 )
审计日志操作类型常量
View Source
const ( ProxyTypeTcp = "TCP" ProxyTypeUdp = "UDP" ProxyTypeHttp = "HTTP" ProxyTypeSocks5 = "SOCKS5" )
代理类型
View Source
const ( PermDashboardView = "dashboard.view" // 仪表盘 PermProxyView = "proxy.view" // 代理列表 PermTagManage = "tag.manage" // 标签管理 PermTrafficPolicy = "traffic_policy.manage" // 限速配额 PermAlertView = "alert.view" // 告警通知 PermAuditView = "audit.view" // 日志审计 PermTerminalView = "terminal.view" // Web 终端 PermUserManage = "user.manage" // 用户列表 PermRoleManage = "role.manage" // 权限策略 PermBasicSettings = "basic_settings.manage" // 基础配置 PermNodeManage = "node.manage" // 节点管理 )
Permission keys(菜单级别)
View Source
const ( RoleNameAdmin = "admin" RoleNameOps = "ops" )
BuiltIn role names
View Source
const ( TrafficPolicyStatusEnabled = "ENABLED" TrafficPolicyStatusDisabled = "DISABLED" )
View Source
const ( OverLimitActionSlowdown = "SLOWDOWN" OverLimitActionAlert = "ALERT" )
View Source
const ( // UserLevelRoot 超级管理员 UserLevelRoot = "root" // UserLevelUser 普通用户 UserLevelUser = "user" )
View Source
const (
AlertLevelWarning = "WARNING"
)
Variables ¶
View Source
var ( ProxyStateRunning = "RUNNING" ProxyStateStopped = "STOPPED" )
代理状态
View Source
var DB *gorm.DB
Functions ¶
func AdminPermissions ¶ added in v1.2.0
func AdminPermissions() []string
AdminPermissions returns all permissions for admin role
func AllPermissions ¶ added in v1.2.0
func AllPermissions() []string
AllPermissions returns all available permission keys
func GetConfigInt ¶ added in v1.2.0
GetConfigInt 获取 int 类型配置
func InitConfigCache ¶ added in v1.2.0
func InitConfigCache()
InitConfigCache 启动时调用:将 config_basic 全表加载进内存缓存
func LoadProxyTagListMap ¶ added in v1.1.0
func LoadTagMap ¶ added in v1.1.0
func OpsPermissions ¶ added in v1.2.0
func OpsPermissions() []string
OpsPermissions returns permissions for ops role
func ReplaceProxyTags ¶ added in v1.1.0
Types ¶
type AlertRecord ¶ added in v1.2.0
type AlertRecord struct {
Uuid string `json:"uuid"`
Source string `json:"source"` // 来源模块,例如:TRAFFIC_POLICY
SourceUuid string `json:"source_uuid"` // 来源对象 uuid
Level string `json:"level"`
Title string `json:"title"`
Content string `json:"content"`
CreatedAt int64 `gorm:"column:created_at; autoCreateTime:milli" json:"created_at"`
UpdatedAt int64 `gorm:"column:updated_at; autoUpdateTime:milli" json:"updated_at"`
}
func (*AlertRecord) TableName ¶ added in v1.2.0
func (table *AlertRecord) TableName() string
type AuditLog ¶ added in v1.2.0
type AuditLog struct {
Uuid string `json:"uuid"`
Username string `json:"username"` // 操作人用户名
Module string `json:"module"` // 所属模块:AUTH / PROXY / TRAFFIC_POLICY
Action string `json:"action"` // 操作类型:LOGIN / CREATE / UPDATE / DELETE / START / STOP / RESTART / ENABLE / DISABLE
Target string `json:"target"` // 操作对象名称
TargetUuid string `json:"target_uuid"` // 操作对象 UUID
Detail string `json:"detail"` // 详情描述
SourceIp string `json:"source_ip"` // 来源 IP
CreatedAt int64 `gorm:"column:created_at; autoCreateTime:milli" json:"created_at"`
}
AuditLog 审计日志记录
type ConfigBasic ¶
type ConfigBasic struct {
Key string `json:"key"` // 键
Value string `json:"value"` // 值
CreatedAt int64 `gorm:"column:created_at; autoCreateTime:milli" json:"created_at"` // 创建时间,时间戳,毫秒
UpdatedAt int64 `gorm:"column:updated_at; autoUpdateTime:milli" json:"updated_at"` // 更新时间,时间戳,毫秒
}
func (*ConfigBasic) First ¶
func (table *ConfigBasic) First() error
func (*ConfigBasic) GetServerPort ¶
func (table *ConfigBasic) GetServerPort() string
GetServerPort 获取服务端口
func (*ConfigBasic) SaveServerPort ¶
func (table *ConfigBasic) SaveServerPort(port string) error
SaveServerPort 保存服务端口
func (*ConfigBasic) TableName ¶
func (table *ConfigBasic) TableName() string
type NodeBasic ¶ added in v1.2.0
type NodeBasic struct {
Uuid string `json:"uuid"` // 唯一标识
Name string `json:"name"` // 节点名称
Address string `json:"address"` // 节点地址(含端口,如 192.168.1.100:12312)
SecretKey string `json:"secret_key"` // 节点密钥(对应目标节点的 JwtKey)
Enabled bool `json:"enabled"` // 启用状态
IsLocal bool `json:"is_local"` // 是否为本地节点
CreatedAt int64 `gorm:"column:created_at; autoCreateTime:milli" json:"created_at"` // 创建时间,时间戳,毫秒
UpdatedAt int64 `gorm:"column:updated_at; autoUpdateTime:milli" json:"updated_at"` // 更新时间,时间戳,毫秒
}
NodeBasic 节点信息
func (*NodeBasic) CountForName ¶ added in v1.2.0
CountForName 名称判重
type ProxyBasic ¶
type ProxyBasic struct {
Uuid string `json:"uuid"` // 唯一标识
Name string `json:"name"` // 代理名称
TagUuidList []string `gorm:"-" json:"tag_uuid_list,omitempty"` // 标签唯一标识列表
TagList []TagBasic `gorm:"-" json:"tag_list,omitempty"` // 标签列表
Type string `json:"type"` // 代理类型
ListenAddress string `json:"listen_address"` // 监听地址
ListenPort string `json:"listen_port"` // 监听端口
TargetAddress string `json:"target_address"` // 目标地址
TargetPort string `json:"target_port"` // 目标端口
Socks5Username string `json:"socks5_username"` // SOCKS5 认证用户名
Socks5Password string `json:"socks5_password"` // SOCKS5 认证密码
State string `json:"state"` // 代理状态
FailDetail string `json:"fail_detail"` // 代理失败详情
CreatedAt int64 `gorm:"column:created_at; autoCreateTime:milli" json:"created_at"` // 创建时间,时间戳,毫秒
UpdatedAt int64 `gorm:"column:updated_at; autoUpdateTime:milli" json:"updated_at"` // 更新时间,时间戳,毫秒
}
func (*ProxyBasic) CountForName ¶
func (table *ProxyBasic) CountForName() (int64, error)
CountForName 保存时名称判重
func (*ProxyBasic) CountForPort ¶
func (table *ProxyBasic) CountForPort() (int64, error)
CountForPort 端口判重
func (*ProxyBasic) TableName ¶
func (table *ProxyBasic) TableName() string
type ProxyTag ¶ added in v1.1.0
type ProxyTag struct {
ProxyUuid string `gorm:"column:proxy_uuid;uniqueIndex:idx_proxy_tag" json:"proxy_uuid"` // 代理唯一标识
TagUuid string `gorm:"column:tag_uuid;uniqueIndex:idx_proxy_tag" json:"tag_uuid"` // 标签唯一标识
CreatedAt int64 `gorm:"column:created_at; autoCreateTime:milli" json:"created_at"`
UpdatedAt int64 `gorm:"column:updated_at; autoUpdateTime:milli" json:"updated_at"`
}
type RoleBasic ¶ added in v1.2.0
type RoleBasic struct {
Uuid string `json:"uuid" gorm:"primaryKey"` // 唯一标识
Name string `json:"name" gorm:"uniqueIndex"` // 角色名称
Description string `json:"description"` // 角色描述
BuiltIn bool `json:"built_in" gorm:"default:false"` // 是否内置角色
Permissions string `json:"permissions" gorm:"type:text"` // JSON array of permission keys
CreatedAt int64 `gorm:"column:created_at; autoCreateTime:milli" json:"created_at"`
UpdatedAt int64 `gorm:"column:updated_at; autoUpdateTime:milli" json:"updated_at"`
}
func (*RoleBasic) BeforeSave ¶ added in v1.2.0
BeforeSave GORM hook to ensure permissions is valid JSON
func (*RoleBasic) GetPermissionList ¶ added in v1.2.0
GetPermissionList 解析权限列表
func (*RoleBasic) HasPermission ¶ added in v1.2.0
HasPermission 检查是否有指定权限
func (*RoleBasic) IsAdminRole ¶ added in v1.2.0
IsAdminRole 判断是否为管理员角色(拥有所有权限)
func (*RoleBasic) SetPermissionList ¶ added in v1.2.0
SetPermissionList 设置权限列表
type TagBasic ¶ added in v1.1.0
type TagBasic struct {
Uuid string `json:"uuid"` // 唯一标识
Name string `json:"name"` // 标签名称
CreatedAt int64 `gorm:"column:created_at; autoCreateTime:milli" json:"created_at"` // 创建时间,时间戳,毫秒
UpdatedAt int64 `gorm:"column:updated_at; autoUpdateTime:milli" json:"updated_at"` // 更新时间,时间戳,毫秒
}
func (*TagBasic) CountForName ¶ added in v1.1.0
CountForName 保存时名称判重
type TrafficPolicy ¶ added in v1.2.0
type TrafficPolicy struct {
Uuid string `json:"uuid"`
Name string `json:"name"`
ScopeType string `json:"scope_type"` // 作用范围类型:ALL / TAG / PROXY
ScopeValue string `json:"scope_value"` // 作用范围值:标签 uuid / 代理 uuid
ScopeName string `gorm:"-" json:"scope_name"` // 作用范围名称
OutboundLimit string `json:"outbound_limit"` // 出站上限,例如:50MB/s
MaxConnections string `json:"max_connections"` // 并发连接,例如:300
PeriodQuota string `json:"period_quota"` // 周期配额,例如:800GB/月
QuotaUsed string `json:"quota_used"` // 配额已用额度,例如:536GB
OverLimitAction string `json:"over_limit_action"` // 超额动作,逗号分隔:SLOWDOWN,ALERT
OverLimitActionList []string `gorm:"-" json:"over_limit_action_list,omitempty"`
Status string `json:"status"`
CreatedAt int64 `gorm:"column:created_at; autoCreateTime:milli" json:"created_at"`
UpdatedAt int64 `gorm:"column:updated_at; autoUpdateTime:milli" json:"updated_at"`
}
func (*TrafficPolicy) CountForName ¶ added in v1.2.0
func (table *TrafficPolicy) CountForName() (int64, error)
func (*TrafficPolicy) TableName ¶ added in v1.2.0
func (table *TrafficPolicy) TableName() string
type UserBasic ¶
type UserBasic struct {
Uuid string `json:"uuid"` // 唯一标识
Username string `json:"username"` // 用户名
Password string `json:"password"` // 密码
Level string `json:"level"` // 等级,root,user
RoleID string `json:"role_id" gorm:"column:role_id; default:''"` // 角色UUID
CreatedAt int64 `gorm:"column:created_at; autoCreateTime:milli" json:"created_at"` // 创建时间,时间戳,毫秒
UpdatedAt int64 `gorm:"column:updated_at; autoUpdateTime:milli" json:"updated_at"` // 修改时间,时间戳,毫秒
}
func (*UserBasic) CountForSave ¶
CountForSave 总数,名称判重
Click to show internal directories.
Click to hide internal directories.