Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions proto/agynio/api/gateway/v1/users.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
syntax = "proto3";

package agynio.api.gateway.v1;

import "agynio/api/users/v1/users.proto";

option go_package = "github.com/agynio/api/gen/agynio/api/gateway/v1;gatewayv1";

service UsersGateway {
// --- API Tokens ---
rpc CreateAPIToken(agynio.api.users.v1.CreateAPITokenRequest) returns (agynio.api.users.v1.CreateAPITokenResponse);
rpc ListAPITokens(agynio.api.users.v1.ListAPITokensRequest) returns (agynio.api.users.v1.ListAPITokensResponse);
rpc RevokeAPIToken(agynio.api.users.v1.RevokeAPITokenRequest) returns (agynio.api.users.v1.RevokeAPITokenResponse);
}
45 changes: 45 additions & 0 deletions proto/agynio/api/users/v1/users.proto
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ service UsersService {
rpc GetUserByOIDCSubject(GetUserByOIDCSubjectRequest) returns (GetUserByOIDCSubjectResponse);
rpc BatchGetUsers(BatchGetUsersRequest) returns (BatchGetUsersResponse);
rpc UpdateUser(UpdateUserRequest) returns (UpdateUserResponse);
rpc CreateAPIToken(CreateAPITokenRequest) returns (CreateAPITokenResponse);
rpc ListAPITokens(ListAPITokensRequest) returns (ListAPITokensResponse);
rpc RevokeAPIToken(RevokeAPITokenRequest) returns (RevokeAPITokenResponse);
rpc ResolveAPIToken(ResolveAPITokenRequest) returns (ResolveAPITokenResponse);
}

message EntityMeta {
Expand Down Expand Up @@ -74,3 +78,44 @@ message UpdateUserRequest {
message UpdateUserResponse {
User user = 1;
}

message APIToken {
string id = 1;
string identity_id = 2;
string name = 3;
string token_prefix = 4;
google.protobuf.Timestamp expires_at = 5;
google.protobuf.Timestamp created_at = 6;
google.protobuf.Timestamp last_used_at = 7;
}

message CreateAPITokenRequest {
string name = 1;
google.protobuf.Timestamp expires_at = 2;
}

message CreateAPITokenResponse {
APIToken token = 1;
string plaintext_token = 2;
}

message ListAPITokensRequest {}

message ListAPITokensResponse {
repeated APIToken tokens = 1;
}

message RevokeAPITokenRequest {
string token_id = 1;
}

message RevokeAPITokenResponse {}

message ResolveAPITokenRequest {
string token_hash = 1;
}

message ResolveAPITokenResponse {
string identity_id = 1;
APIToken token = 2;
}
Loading