diff --git a/proto/headscale/v1/auth.proto b/proto/headscale/v1/auth.proto new file mode 100644 index 00000000..cc0ec95a --- /dev/null +++ b/proto/headscale/v1/auth.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; +package headscale.v1; +option go_package = "github.com/juanfont/headscale/gen/go/v1"; + +import "headscale/v1/node.proto"; + +message AuthRegisterRequest { + string user = 1; + string auth_id = 2; +} + +message AuthRegisterResponse { + Node node = 1; +} + +message AuthApproveRequest { + string auth_id = 1; +} + +message AuthApproveResponse {} + +message AuthRejectRequest { + string auth_id = 1; +} + +message AuthRejectResponse {} diff --git a/proto/headscale/v1/headscale.proto b/proto/headscale/v1/headscale.proto index 5e556255..5e540b2f 100644 --- a/proto/headscale/v1/headscale.proto +++ b/proto/headscale/v1/headscale.proto @@ -8,6 +8,7 @@ import "headscale/v1/user.proto"; import "headscale/v1/preauthkey.proto"; import "headscale/v1/node.proto"; import "headscale/v1/apikey.proto"; +import "headscale/v1/auth.proto"; import "headscale/v1/policy.proto"; service HeadscaleService { @@ -139,6 +140,29 @@ service HeadscaleService { // --- Node end --- + // --- Auth start --- + rpc AuthRegister(AuthRegisterRequest) returns (AuthRegisterResponse) { + option (google.api.http) = { + post : "/api/v1/auth/register" + body : "*" + }; + } + + rpc AuthApprove(AuthApproveRequest) returns (AuthApproveResponse) { + option (google.api.http) = { + post : "/api/v1/auth/approve" + body : "*" + }; + } + + rpc AuthReject(AuthRejectRequest) returns (AuthRejectResponse) { + option (google.api.http) = { + post : "/api/v1/auth/reject" + body : "*" + }; + } + // --- Auth end --- + // --- ApiKeys start --- rpc CreateApiKey(CreateApiKeyRequest) returns (CreateApiKeyResponse) { option (google.api.http) = {