WIP: protobuf defs
This commit is contained in:
parent
85640ffce1
commit
9b640a555a
4 changed files with 103 additions and 0 deletions
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
|
|
@ -22,5 +22,10 @@
|
||||||
"editor.autoIndent": "advanced",
|
"editor.autoIndent": "advanced",
|
||||||
"diffEditor.ignoreTrimWhitespace": false,
|
"diffEditor.ignoreTrimWhitespace": false,
|
||||||
"editor.formatOnSave": false
|
"editor.formatOnSave": false
|
||||||
|
},
|
||||||
|
"protoc": {
|
||||||
|
"options": [
|
||||||
|
"--proto_path=proto/"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@ package burrow;
|
||||||
|
|
||||||
import "google/protobuf/timestamp.proto";
|
import "google/protobuf/timestamp.proto";
|
||||||
|
|
||||||
|
// Internal service for managing tunnels and networks
|
||||||
|
// Used for IPC
|
||||||
|
|
||||||
service Tunnel {
|
service Tunnel {
|
||||||
rpc TunnelConfiguration (Empty) returns (stream TunnelConfigurationResponse);
|
rpc TunnelConfiguration (Empty) returns (stream TunnelConfigurationResponse);
|
||||||
rpc TunnelStart (Empty) returns (Empty);
|
rpc TunnelStart (Empty) returns (Empty);
|
||||||
|
|
|
||||||
42
proto/burrowweb.proto
Normal file
42
proto/burrowweb.proto
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package burrowweb;
|
||||||
|
|
||||||
|
import "wireguard.proto";
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: Frontend sends slack token → receive JWT
|
||||||
|
// TODO: create/delete/list routes
|
||||||
|
|
||||||
|
service BurrowWeb {
|
||||||
|
rpc SlackAuth (SlackAuthRequest) returns (JWTInfo);
|
||||||
|
// Server assigns a IP address, generates a token, saves a user entry,
|
||||||
|
// then responds back with WireGuard configuration
|
||||||
|
rpc CreateDevice (CreateDeviceRequest) returns (CreateDeviceResponse);
|
||||||
|
rpc DeleteDevice (JWTInfo) returns (Empty);
|
||||||
|
rpc ListDevices (JWTInfo) returns (ListDevicesResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
message Empty {}
|
||||||
|
|
||||||
|
message SlackAuthRequest {
|
||||||
|
string slack_token = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
message JWTInfo {
|
||||||
|
string jwt = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message CreateDeviceRequest {
|
||||||
|
JWTInfo jwt = 1;
|
||||||
|
string public_key = 2; // User's specified WG Public Key
|
||||||
|
}
|
||||||
|
|
||||||
|
message CreateDeviceResponse {
|
||||||
|
wireguard.Config wg_config = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListDevicesResponse {
|
||||||
|
repeated wireguard.Device devices = 1;
|
||||||
|
}
|
||||||
53
proto/wireguard.proto
Normal file
53
proto/wireguard.proto
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
syntax = "proto3";
|
||||||
|
package wireguard;
|
||||||
|
|
||||||
|
message Peer {
|
||||||
|
string public_key = 1;
|
||||||
|
optional string preshared_key = 2;
|
||||||
|
repeated string allowed_ips = 3;
|
||||||
|
string endpoint = 4;
|
||||||
|
optional uint32 persistent_keepalive = 5;
|
||||||
|
optional string name = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
message InterfaceConfig {
|
||||||
|
// Does not include private key; the client is responsible for generating & persisting that
|
||||||
|
repeated string address = 1;
|
||||||
|
optional uint32 listen_port = 2;
|
||||||
|
repeated string dns = 3;
|
||||||
|
optional uint32 mtu = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Device {
|
||||||
|
int32 id = 1;
|
||||||
|
optional string name = 2;
|
||||||
|
string public_key = 3;
|
||||||
|
optional string apns_token = 4;
|
||||||
|
int32 user_id = 5;
|
||||||
|
string created_at = 6;
|
||||||
|
string ipv4 = 7;
|
||||||
|
string ipv6 = 8;
|
||||||
|
string access_token = 9;
|
||||||
|
string refresh_token = 10;
|
||||||
|
string expires_at = 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
message User {
|
||||||
|
int32 id = 1;
|
||||||
|
string created_at = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UserConnection {
|
||||||
|
int32 user_id = 1;
|
||||||
|
string openid_provider = 2;
|
||||||
|
string openid_user_id = 3;
|
||||||
|
string openid_user_name = 4;
|
||||||
|
string access_token = 5;
|
||||||
|
string refresh_token = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
message Config {
|
||||||
|
InterfaceConfig interface = 1;
|
||||||
|
repeated Peer peers = 2;
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue