Files
frp-panel/idl/rpc_master.proto
2025-05-06 02:08:59 +00:00

149 lines
3.1 KiB
Protocol Buffer

syntax = "proto3";
package master;
import "common.proto";
option go_package="../pb";
enum Event {
EVENT_UNSPECIFIED = 0;
EVENT_REGISTER_CLIENT = 1;
EVENT_REGISTER_SERVER = 2;
EVENT_ERROR = 3;
EVENT_DATA = 4;
EVENT_UPDATE_FRPC = 5;
EVENT_REMOVE_FRPC = 6;
EVENT_UPDATE_FRPS = 7;
EVENT_REMOVE_FRPS = 8;
EVENT_PING = 9;
EVENT_PONG = 10;
EVENT_STOP_FRPC = 11;
EVENT_START_FRPC = 12;
EVENT_STOP_FRPS = 13;
EVENT_START_FRPS = 14;
EVENT_START_STREAM_LOG = 15;
EVENT_STOP_STREAM_LOG = 16;
EVENT_START_PTY_CONNECT = 17;
EVENT_GET_PROXY_INFO = 18;
EVENT_CREATE_WORKER = 19;
EVENT_REMOVE_WORKER = 20;
EVENT_GET_WORKER_STATUS = 21;
EVENT_INSTALL_WORKERD = 22;
}
message ServerBase {
string server_id = 1;
string server_secret = 2;
}
message ClientBase {
string client_id = 1;
string client_secret = 2;
}
message ServerMessage {
Event event = 1;
string client_id = 2;
string session_id = 3;
bytes data = 4;
}
message ClientMessage {
Event event = 1;
string client_id = 2;
string session_id = 3;
string secret = 4;
bytes data = 5;
}
message PullClientConfigReq {
ClientBase base = 255;
}
message PullClientConfigResp {
common.Status status = 1;
common.Client client = 2;
}
message PullServerConfigReq {
ServerBase base = 255;
}
message PullServerConfigResp {
common.Status status = 1;
common.Server server = 2;
}
message FRPAuthRequest {
string user = 1;
string token = 2;
ServerBase base = 255;
}
message FRPAuthResponse {
common.Status status = 1;
bool ok = 2;
}
message PushProxyInfoReq {
ServerBase base = 255;
repeated common.ProxyInfo proxy_infos = 1;
}
message PushProxyInfoResp {
common.Status status = 1;
}
message PushServerStreamLogReq {
bytes log = 1;
ServerBase base = 255;
}
message PushClientStreamLogReq {
bytes log = 1;
ClientBase base = 255;
}
message PushStreamLogResp {
common.Status status = 1;
bool ok = 2;
}
message PTYClientMessage {
optional bytes data = 1;
string session_id = 2;
bool done = 3;
oneof Base {
ServerBase server_base = 254;
ClientBase client_base = 255;
}
}
message PTYServerMessage {
optional bytes data = 1;
optional int32 height = 2;
optional int32 width = 3;
bool done = 4;
}
message ListClientWorkersRequest {
ClientBase base = 255;
}
message ListClientWorkersResponse {
common.Status status = 1;
repeated common.Worker workers = 2;
}
service Master {
rpc ServerSend(stream ClientMessage) returns(stream ServerMessage);
rpc PullClientConfig(PullClientConfigReq) returns(PullClientConfigResp);
rpc PullServerConfig(PullServerConfigReq) returns(PullServerConfigResp);
rpc ListClientWorkers(ListClientWorkersRequest) returns(ListClientWorkersResponse);
rpc FRPCAuth(FRPAuthRequest) returns(FRPAuthResponse);
rpc PushProxyInfo(PushProxyInfoReq) returns(PushProxyInfoResp);
rpc PushClientStreamLog(stream PushClientStreamLogReq) returns(PushStreamLogResp);
rpc PushServerStreamLog(stream PushServerStreamLogReq) returns(PushStreamLogResp);
rpc PTYConnect(stream PTYClientMessage) returns(stream PTYServerMessage);
}