All checks were successful
Build Multi-Platform Binaries / build-frontend (push) Successful in 41s
Build Multi-Platform Binaries / build-binaries (amd64, linux, client, true) (push) Successful in 1m31s
Build Multi-Platform Binaries / build-binaries (amd64, darwin, server, false) (push) Successful in 1m38s
Build Multi-Platform Binaries / build-binaries (amd64, windows, client, true) (push) Successful in 1m27s
Build Multi-Platform Binaries / build-binaries (amd64, linux, server, true) (push) Successful in 2m0s
Build Multi-Platform Binaries / build-binaries (amd64, windows, server, true) (push) Successful in 1m42s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, client, true) (push) Successful in 1m13s
Build Multi-Platform Binaries / build-binaries (arm64, darwin, server, false) (push) Successful in 1m48s
Build Multi-Platform Binaries / build-binaries (arm, 7, linux, server, true) (push) Successful in 2m10s
Build Multi-Platform Binaries / build-binaries (arm64, linux, client, true) (push) Successful in 1m12s
Build Multi-Platform Binaries / build-binaries (arm64, linux, server, true) (push) Successful in 1m51s
Build Multi-Platform Binaries / build-binaries (arm64, windows, server, false) (push) Successful in 1m29s
- 将侧边栏菜单改为顶部标签页导航设计 - 添加客户端操作系统和架构信息显示 - 实现客户端自动更新检查和应用功能 - 添加底部页脚显示版本和GitHub链接 - 更新主题颜色为紫色渐变风格 - 优化首页和插件页面的UI布局结构 - 修改路由配置将更新页面重命名为设置页面 - 在认证协议中添加客户端平台信息字段 - 重构App.vue中的导航和状态管理逻辑
63 lines
2.5 KiB
Go
63 lines
2.5 KiB
Go
package dto
|
|
|
|
import (
|
|
"github.com/gotunnel/internal/server/db"
|
|
"github.com/gotunnel/pkg/protocol"
|
|
)
|
|
|
|
// CreateClientRequest 创建客户端请求
|
|
// @Description 创建新客户端的请求体
|
|
type CreateClientRequest struct {
|
|
ID string `json:"id" binding:"required,min=1,max=64" example:"client-001"`
|
|
Rules []protocol.ProxyRule `json:"rules"`
|
|
}
|
|
|
|
// UpdateClientRequest 更新客户端请求
|
|
// @Description 更新客户端配置的请求体
|
|
type UpdateClientRequest struct {
|
|
Nickname string `json:"nickname" binding:"max=128" example:"My Client"`
|
|
Rules []protocol.ProxyRule `json:"rules"`
|
|
Plugins []db.ClientPlugin `json:"plugins"`
|
|
}
|
|
|
|
// ClientResponse 客户端详情响应
|
|
// @Description 客户端详细信息
|
|
type ClientResponse struct {
|
|
ID string `json:"id" example:"client-001"`
|
|
Nickname string `json:"nickname,omitempty" example:"My Client"`
|
|
Rules []protocol.ProxyRule `json:"rules"`
|
|
Plugins []db.ClientPlugin `json:"plugins,omitempty"`
|
|
Online bool `json:"online" example:"true"`
|
|
LastPing string `json:"last_ping,omitempty" example:"2025-01-02T10:30:00Z"`
|
|
RemoteAddr string `json:"remote_addr,omitempty" example:"192.168.1.100:54321"`
|
|
OS string `json:"os,omitempty" example:"linux"`
|
|
Arch string `json:"arch,omitempty" example:"amd64"`
|
|
}
|
|
|
|
// ClientListItem 客户端列表项
|
|
// @Description 客户端列表中的单个项目
|
|
type ClientListItem struct {
|
|
ID string `json:"id" example:"client-001"`
|
|
Nickname string `json:"nickname,omitempty" example:"My Client"`
|
|
Online bool `json:"online" example:"true"`
|
|
LastPing string `json:"last_ping,omitempty"`
|
|
RemoteAddr string `json:"remote_addr,omitempty"`
|
|
RuleCount int `json:"rule_count" example:"3"`
|
|
OS string `json:"os,omitempty" example:"linux"`
|
|
Arch string `json:"arch,omitempty" example:"amd64"`
|
|
}
|
|
|
|
// InstallPluginsRequest 安装插件到客户端请求
|
|
// @Description 安装插件到指定客户端
|
|
type InstallPluginsRequest struct {
|
|
Plugins []string `json:"plugins" binding:"required,min=1,dive,required" example:"socks5,http-proxy"`
|
|
}
|
|
|
|
// ClientPluginActionRequest 客户端插件操作请求
|
|
// @Description 对客户端插件执行操作
|
|
type ClientPluginActionRequest struct {
|
|
RuleName string `json:"rule_name"`
|
|
Config map[string]string `json:"config,omitempty"`
|
|
Restart bool `json:"restart"`
|
|
}
|