mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	This commit adds proto rpc definitions for the communication needed for the CLI interface. This will allow us to move the rest of the CLI interface over to gRPC and in the future allow remote access
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
| syntax = "proto3";
 | |
| package headscale.v1;
 | |
| option  go_package = "github.com/juanfont/headscale/gen/go/v1";
 | |
| 
 | |
| import "google/protobuf/timestamp.proto";
 | |
| 
 | |
| // This is a potential reimplementation of Tailscale's API
 | |
| // https://github.com/tailscale/tailscale/blob/main/api.md
 | |
| 
 | |
| message Latency {
 | |
|     float latency_ms = 1;
 | |
|     bool  preferred  = 2;
 | |
| }
 | |
| 
 | |
| message ClientSupports {
 | |
|     bool hair_pinning = 1;
 | |
|     bool ipv6         = 2;
 | |
|     bool pcp          = 3;
 | |
|     bool pmp          = 4;
 | |
|     bool udp          = 5;
 | |
|     bool upnp         = 6;
 | |
| }
 | |
| 
 | |
| message ClientConnectivity {
 | |
|     repeated string      endpoints                 = 1;
 | |
|     string               derp                      = 2;
 | |
|     bool                 mapping_varies_by_dest_ip = 3;
 | |
|     map<string, Latency> latency                   = 4;
 | |
|     ClientSupports       client_supports           = 5;
 | |
| }
 | |
| 
 | |
| message GetDeviceRequest {
 | |
|     string id = 1;
 | |
| }
 | |
| 
 | |
| message GetDeviceResponse {
 | |
|     repeated string           addresses                   = 1;
 | |
|     string                    id                          = 2;
 | |
|     string                    user                        = 3;
 | |
|     string                    name                        = 4;
 | |
|     string                    hostname                    = 5;
 | |
|     string                    client_version              = 6;
 | |
|     bool                      update_available            = 7;
 | |
|     string                    os                          = 8;
 | |
|     google.protobuf.Timestamp created                     = 9;
 | |
|     google.protobuf.Timestamp last_seen                   = 10;
 | |
|     bool                      key_expiry_disabled         = 11;
 | |
|     google.protobuf.Timestamp expires                     = 12;
 | |
|     bool                      authorized                  = 13;
 | |
|     bool                      is_external                 = 14;
 | |
|     string                    machine_key                 = 15;
 | |
|     string                    node_key                    = 16;
 | |
|     bool                      blocks_incoming_connections = 17;
 | |
|     repeated string           enabled_routes              = 18;
 | |
|     repeated string           advertised_routes           = 19;
 | |
|     ClientConnectivity        client_connectivity         = 20;
 | |
| }
 | |
| 
 | |
| message DeleteDeviceRequest {
 | |
|     string id = 1;
 | |
| }
 | |
| 
 | |
| message DeleteDeviceResponse {
 | |
| }
 | |
| 
 | |
| message GetDeviceRoutesRequest {
 | |
|     string id = 1;
 | |
| }
 | |
| 
 | |
| message GetDeviceRoutesResponse {
 | |
|     repeated string enabled_routes    = 1;
 | |
|     repeated string advertised_routes = 2;
 | |
| }
 | |
| 
 | |
| message EnableDeviceRoutesRequest {
 | |
|     string          id     = 1;
 | |
|     repeated string routes = 2;
 | |
| }
 | |
| 
 | |
| message EnableDeviceRoutesResponse {
 | |
|     repeated string enabled_routes    = 1;
 | |
|     repeated string advertised_routes = 2;
 | |
| }
 |