Files
frp-panel/idl/common.proto
T
2025-04-29 16:49:02 +00:00

99 lines
2.6 KiB
Protocol Buffer

syntax = "proto3";
package common;
option go_package="../pb";
enum RespCode {
RESP_CODE_UNSPECIFIED = 0;
RESP_CODE_SUCCESS = 1;
RESP_CODE_NOT_FOUND = 2;
RESP_CODE_ALREADY_EXISTS = 3;
RESP_CODE_INVALID = 4;
RESP_CODE_FINISH = 5;
RESP_CODE_UNAUTHORIZED = 6;
}
enum ClientType {
CLIENT_TYPE_UNSPECIFIED = 0;
CLIENT_TYPE_FRPC = 1;
CLIENT_TYPE_FRPS = 2;
}
message Status {
RespCode code = 1;
string message = 2;
}
message CommonRequest {
optional string data = 1;
}
message CommonResponse {
optional Status status = 1;
optional string data = 2;
}
message Client {
optional string id = 1;
optional string secret = 2;
optional string config = 3;
optional string comment = 5; // 用户自定义的备注
optional string server_id = 6;
optional bool stopped = 7;
repeated string client_ids = 8; // some client can connected to more than one server, make a shadow client to handle this
optional string origin_client_id = 9;
optional string frps_url = 10; // 客户端用于连接frps的url,解决 frp 在 CDN 后的问题,格式类似 [tcp/ws/wss/quic/kcp]://example.com:7000
optional bool ephemeral = 11; // 是否临时节点
optional int64 last_seen_at = 12; // 最后一次心跳时间戳
}
message Server {
optional string id = 1;
optional string secret = 2;
optional string ip = 3;
optional string config = 4; // 在定义上,ip和port只是为了方便使用
optional string comment = 5; // 用户自定义的备注
repeated string frps_urls = 6; // 客户端用于连接frps的url,解决 frp 在 CDN 后的问题,格式类似 [tcp/ws/wss/quic/kcp]://example.com:7000,可以有多个
}
message User {
optional int64 UserID = 1;
optional int64 TenantID = 2;
optional string UserName = 3;
optional string Email = 4;
optional string Status = 5;
optional string Role = 6;
optional string Token = 7;
optional string RawPassword = 8;
}
message ProxyInfo {
optional string name = 1;
optional string type = 2;
optional string client_id = 3;
optional string server_id = 4;
optional int64 today_traffic_in = 5;
optional int64 today_traffic_out = 6;
optional int64 history_traffic_in = 7;
optional int64 history_traffic_out = 8;
optional bool first_sync = 9;
}
message ProxyConfig {
optional uint32 id = 1;
optional string name = 2;
optional string type = 3;
optional string client_id = 4;
optional string server_id = 5;
optional string config = 6;
optional string origin_client_id = 7;
}
message ProxyWorkingStatus {
optional string name = 1;
optional string type = 2;
optional string status = 3;
optional string err = 4;
optional string remote_addr = 5;
}