Redo route code (#2422)

Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
Kristoffer Dalby 2025-02-26 07:22:55 -08:00 committed by GitHub
parent 16868190c8
commit 7891378f57
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
53 changed files with 2977 additions and 6251 deletions

View file

@ -7,10 +7,8 @@ import "google/api/annotations.proto";
import "headscale/v1/user.proto";
import "headscale/v1/preauthkey.proto";
import "headscale/v1/node.proto";
import "headscale/v1/routes.proto";
import "headscale/v1/apikey.proto";
import "headscale/v1/policy.proto";
// import "headscale/v1/device.proto";
service HeadscaleService {
// --- User start ---
@ -87,6 +85,14 @@ service HeadscaleService {
};
}
rpc SetApprovedRoutes(SetApprovedRoutesRequest)
returns (SetApprovedRoutesResponse) {
option (google.api.http) = {
post : "/api/v1/node/{node_id}/approve_routes"
body : "*"
};
}
rpc RegisterNode(RegisterNodeRequest) returns (RegisterNodeResponse) {
option (google.api.http) = {
post : "/api/v1/node/register"
@ -133,39 +139,6 @@ service HeadscaleService {
// --- Node end ---
// --- Route start ---
rpc GetRoutes(GetRoutesRequest) returns (GetRoutesResponse) {
option (google.api.http) = {
get : "/api/v1/routes"
};
}
rpc EnableRoute(EnableRouteRequest) returns (EnableRouteResponse) {
option (google.api.http) = {
post : "/api/v1/routes/{route_id}/enable"
};
}
rpc DisableRoute(DisableRouteRequest) returns (DisableRouteResponse) {
option (google.api.http) = {
post : "/api/v1/routes/{route_id}/disable"
};
}
rpc GetNodeRoutes(GetNodeRoutesRequest) returns (GetNodeRoutesResponse) {
option (google.api.http) = {
get : "/api/v1/node/{node_id}/routes"
};
}
rpc DeleteRoute(DeleteRouteRequest) returns (DeleteRouteResponse) {
option (google.api.http) = {
delete : "/api/v1/routes/{route_id}"
};
}
// --- Route end ---
// --- ApiKeys start ---
rpc CreateApiKey(CreateApiKeyRequest) returns (CreateApiKeyResponse) {
option (google.api.http) = {

View file

@ -48,6 +48,9 @@ message Node {
repeated string valid_tags = 20;
string given_name = 21;
bool online = 22;
repeated string approved_routes = 23;
repeated string available_routes = 24;
repeated string subnet_routes = 25;
}
message RegisterNodeRequest {
@ -68,6 +71,13 @@ message SetTagsRequest {
message SetTagsResponse { Node node = 1; }
message SetApprovedRoutesRequest {
uint64 node_id = 1;
repeated string routes = 2;
}
message SetApprovedRoutesResponse { Node node = 1; }
message DeleteNodeRequest { uint64 node_id = 1; }
message DeleteNodeResponse {}

View file

@ -1,39 +0,0 @@
syntax = "proto3";
package headscale.v1;
option go_package = "github.com/juanfont/headscale/gen/go/v1";
import "google/protobuf/timestamp.proto";
import "headscale/v1/node.proto";
message Route {
uint64 id = 1;
Node node = 2;
string prefix = 3;
bool advertised = 4;
bool enabled = 5;
bool is_primary = 6;
google.protobuf.Timestamp created_at = 7;
google.protobuf.Timestamp updated_at = 8;
google.protobuf.Timestamp deleted_at = 9;
}
message GetRoutesRequest {}
message GetRoutesResponse { repeated Route routes = 1; }
message EnableRouteRequest { uint64 route_id = 1; }
message EnableRouteResponse {}
message DisableRouteRequest { uint64 route_id = 1; }
message DisableRouteResponse {}
message GetNodeRoutesRequest { uint64 node_id = 1; }
message GetNodeRoutesResponse { repeated Route routes = 1; }
message DeleteRouteRequest { uint64 route_id = 1; }
message DeleteRouteResponse {}