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
3 changes: 3 additions & 0 deletions proto/agynio/api/gateway/v1/organizations.proto
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,7 @@ service OrganizationsGateway {
rpc UpdateMembershipRole(agynio.api.organizations.v1.UpdateMembershipRoleRequest) returns (agynio.api.organizations.v1.UpdateMembershipRoleResponse);
rpc ListMembers(agynio.api.organizations.v1.ListMembersRequest) returns (agynio.api.organizations.v1.ListMembersResponse);
rpc ListMyMemberships(agynio.api.organizations.v1.ListMyMembershipsRequest) returns (agynio.api.organizations.v1.ListMyMembershipsResponse);

// --- Org Nicknames ---
rpc SetMyOrgNickname(agynio.api.organizations.v1.SetMyOrgNicknameRequest) returns (agynio.api.organizations.v1.SetMyOrgNicknameResponse);
}
4 changes: 4 additions & 0 deletions proto/agynio/api/gateway/v1/users.proto
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ option go_package = "github.com/agynio/api/gen/agynio/api/gateway/v1;gatewayv1";
service UsersGateway {
// --- Current User ---
rpc GetMe(agynio.api.users.v1.GetMeRequest) returns (agynio.api.users.v1.GetMeResponse);
rpc UpdateMe(agynio.api.users.v1.UpdateMeRequest) returns (agynio.api.users.v1.UpdateMeResponse);

// --- User Directory ---
rpc SearchUsers(agynio.api.users.v1.SearchUsersRequest) returns (agynio.api.users.v1.SearchUsersResponse);

// --- Admin User Management ---
rpc CreateUser(agynio.api.users.v1.CreateUserRequest) returns (agynio.api.users.v1.CreateUserResponse);
Expand Down
16 changes: 16 additions & 0 deletions proto/agynio/api/organizations/v1/organizations.proto
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ service OrganizationsService {
rpc UpdateMembershipRole(UpdateMembershipRoleRequest) returns (UpdateMembershipRoleResponse);
rpc ListMembers(ListMembersRequest) returns (ListMembersResponse);
rpc ListMyMemberships(ListMyMembershipsRequest) returns (ListMyMembershipsResponse);

// --- Org Nicknames ---
// Self-service org nickname update for the calling identity.
rpc SetMyOrgNickname(SetMyOrgNicknameRequest) returns (SetMyOrgNicknameResponse);
}

// ===========================================================================
Expand Down Expand Up @@ -209,3 +213,15 @@ message ListMyMembershipsResponse {
repeated Membership memberships = 1;
string next_page_token = 2;
}

// ===========================================================================
// SetMyOrgNickname
// ===========================================================================

message SetMyOrgNicknameRequest {
string organization_id = 1; // UUID
// Organization-scoped nickname for the caller.
string nickname = 2;
}

message SetMyOrgNicknameResponse {}
48 changes: 48 additions & 0 deletions proto/agynio/api/users/v1/users.proto
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ service UsersService {

// --- Current User ---
rpc GetMe(GetMeRequest) returns (GetMeResponse);
// Updates cluster-wide profile fields (name/username). Org-scoped
// nicknames are managed via OrganizationsService.SetMyOrgNickname.
rpc UpdateMe(UpdateMeRequest) returns (UpdateMeResponse);

// --- User Directory ---
rpc SearchUsers(SearchUsersRequest) returns (SearchUsersResponse);

// --- Admin User Management ---
rpc ListUsers(ListUsersRequest) returns (ListUsersResponse);
Expand Down Expand Up @@ -62,7 +68,10 @@ message User {
string name = 3;
string email = 4;
string photo_url = 5;
// Organization-scoped nickname (set via OrganizationsService.SetMyOrgNickname).
string nickname = 6;
// Cluster-wide username. May be empty for existing users until set.
string username = 7;
Comment thread
noa-lucent marked this conversation as resolved.
}

// ===========================================================================
Expand All @@ -86,6 +95,7 @@ message ResolveOrCreateUserRequest {
string name = 2;
string email = 3;
string photo_url = 4;
optional string preferred_username = 5;
}

message ResolveOrCreateUserResponse {
Expand Down Expand Up @@ -141,6 +151,7 @@ message UpdateUserRequest {
optional string photo_url = 4;
optional string nickname = 5;
optional ClusterRole cluster_role = 6;
optional string username = 7;
}

message UpdateUserResponse {
Expand All @@ -158,6 +169,42 @@ message GetMeResponse {
ClusterRole cluster_role = 2;
}

// ===========================================================================
// UpdateMe
// ===========================================================================

message UpdateMeRequest {
Comment thread
noa-lucent marked this conversation as resolved.
optional string name = 1;
// Cluster-wide username. Org-scoped nicknames are set via OrganizationsService.SetMyOrgNickname.
optional string username = 2;
}

message UpdateMeResponse {
User user = 1;
ClusterRole cluster_role = 2;
}

// ===========================================================================
// SearchUsers
// ===========================================================================

message UserDirectoryEntry {
string identity_id = 1;
string username = 2;
string name = 3;
string photo_url = 4;
}

message SearchUsersRequest {
Comment thread
noa-lucent marked this conversation as resolved.
string prefix = 1;
// Defaults to 10 when unset or zero. Max 20.
int32 limit = 2;
}

message SearchUsersResponse {
repeated UserDirectoryEntry users = 1;
}

// ===========================================================================
// ListUsers
// ===========================================================================
Expand All @@ -182,6 +229,7 @@ message CreateUserRequest {
optional string nickname = 3;
optional string photo_url = 4;
ClusterRole cluster_role = 5;
optional string username = 6;
}

message CreateUserResponse {
Expand Down
Loading