l-vpn-proto/proto/agent.proto

119 lines
2.7 KiB
Protocol Buffer

syntax = "proto3";
package agent;
option go_package = "l_vpn_proto/proto";
service WireGuardAgent {
rpc GetClientConfigs(GetClientConfigsRequest) returns (GetClientConfigsResponse);
rpc RegisterClient(RegisterClientRequest) returns (RegisterClientResponse);
rpc UnregisterClient(UnregisterClientRequest) returns (UnregisterClientResponse);
rpc GetServerStatus(GetServerStatusRequest) returns (GetServerStatusResponse);
rpc PingHosts(PingHostsRequest) returns (PingHostsResponse);
// Xray / VLESS+Reality management
rpc GetXrayStatus(GetXrayStatusRequest) returns (GetXrayStatusResponse);
rpc GetXrayPublicKey(GetXrayPublicKeyRequest) returns (GetXrayPublicKeyResponse);
rpc AddXrayUser(AddXrayUserRequest) returns (AddXrayUserResponse);
rpc RemoveXrayUser(RemoveXrayUserRequest) returns (RemoveXrayUserResponse);
}
message GetClientConfigsRequest {}
message ClientConfig {
string name = 1;
string public_key = 2;
string private_key = 3;
string endpoint = 4;
string allowed_ips = 5;
string created_at = 6;
}
message GetClientConfigsResponse {
bool success = 1;
string error = 2;
repeated ClientConfig clients = 3;
}
message RegisterClientRequest {
string name = 1;
string allowed_ips = 2;
}
message RegisterClientResponse {
bool success = 1;
string error = 2;
ClientConfig client = 3;
}
message UnregisterClientRequest {
string public_key = 1;
}
message UnregisterClientResponse {
bool success = 1;
string error = 2;
}
message GetServerStatusRequest {}
message GetServerStatusResponse {
bool success = 1;
string error = 2;
string interface_name = 3;
string public_key = 4;
string listening_port = 5;
int32 peers_count = 6;
}
message PingHostsRequest {
repeated string hosts = 1;
}
message PingResult {
string host = 1;
double latency_ms = 2; // -1 if unreachable
bool reachable = 3;
string error = 4;
}
message PingHostsResponse {
bool success = 1;
string error = 2;
repeated PingResult results = 3;
}
// ── Xray messages ─────────────────────────────────────────────────────────────
message GetXrayStatusRequest {}
message GetXrayStatusResponse {
bool running = 1;
int32 port = 2;
string error = 3;
}
message GetXrayPublicKeyRequest {}
message GetXrayPublicKeyResponse {
string public_key = 1;
string short_id = 2;
string server_name = 3;
int32 port = 4;
}
message AddXrayUserRequest {
string uuid = 1;
string email = 2;
}
message AddXrayUserResponse {
bool success = 1;
string error = 2;
}
message RemoveXrayUserRequest {
string uuid = 1;
}
message RemoveXrayUserResponse {
bool success = 1;
string error = 2;
}