From 7649f481eed1546d373f6ff920c10eb2f6b587f1 Mon Sep 17 00:00:00 2001 From: Konyaka1 <47553039+Konyaka1@users.noreply.github.com> Date: Fri, 17 Jul 2026 23:57:06 -0400 Subject: [PATCH] orgsvc: add pagination to ListMembers Add limit + cursor to ListMembersRequest.Base and next_cursor to ListMembersResponse, so the public ListMembers surface exposes the same cursor pagination the priv implementation already ships. Field numbers match the priv-side override (limit=2, cursor=3, next_cursor=2) so the override stays a pure signed-envelope overlay. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../splitsecure/orgsvc/v1/list_members_pb.ts | 17 ++++++++- .../splitsecure/orgsvc/v1/list_members.pb.go | 36 ++++++++++++++++--- .../splitsecure/orgsvc/v1/list_members.proto | 3 ++ 3 files changed, 51 insertions(+), 5 deletions(-) diff --git a/gen/es/proto/splitsecure/orgsvc/v1/list_members_pb.ts b/gen/es/proto/splitsecure/orgsvc/v1/list_members_pb.ts index 45be777..eb9ced6 100644 --- a/gen/es/proto/splitsecure/orgsvc/v1/list_members_pb.ts +++ b/gen/es/proto/splitsecure/orgsvc/v1/list_members_pb.ts @@ -12,7 +12,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file splitsecure/orgsvc/v1/list_members.proto. */ export const file_splitsecure_orgsvc_v1_list_members: GenFile = /*@__PURE__*/ - fileDesc("CihzcGxpdHNlY3VyZS9vcmdzdmMvdjEvbGlzdF9tZW1iZXJzLnByb3RvEhVzcGxpdHNlY3VyZS5vcmdzdmMudjEicwoSTGlzdE1lbWJlcnNSZXF1ZXN0EjwKBGJhc2UYAiABKAsyLi5zcGxpdHNlY3VyZS5vcmdzdmMudjEuTGlzdE1lbWJlcnNSZXF1ZXN0LkJhc2UaHwoEQmFzZRIXCg9vcmdhbml6YXRpb25faWQYASABKAkiRQoTTGlzdE1lbWJlcnNSZXNwb25zZRIuCgdtZW1iZXJzGAEgAygLMh0uc3BsaXRzZWN1cmUub3Jnc3ZjLnYxLk1lbWJlckLsAQoZY29tLnNwbGl0c2VjdXJlLm9yZ3N2Yy52MUIQTGlzdE1lbWJlcnNQcm90b1ABWkdnaXRodWIuY29tL3NwbGl0c2VjdXJlL2FwaXMvZ2VuL2dvL3Byb3RvL3NwbGl0c2VjdXJlL29yZ3N2Yy92MTtvcmdzdmN2MaICA1NPWKoCFVNwbGl0c2VjdXJlLk9yZ3N2Yy5WMcoCFVNwbGl0c2VjdXJlXE9yZ3N2Y1xWMeICIVNwbGl0c2VjdXJlXE9yZ3N2Y1xWMVxHUEJNZXRhZGF0YeoCF1NwbGl0c2VjdXJlOjpPcmdzdmM6OlYxYgZwcm90bzM", [file_splitsecure_orgsvc_v1_member]); + fileDesc("CihzcGxpdHNlY3VyZS9vcmdzdmMvdjEvbGlzdF9tZW1iZXJzLnByb3RvEhVzcGxpdHNlY3VyZS5vcmdzdmMudjEikgEKEkxpc3RNZW1iZXJzUmVxdWVzdBI8CgRiYXNlGAIgASgLMi4uc3BsaXRzZWN1cmUub3Jnc3ZjLnYxLkxpc3RNZW1iZXJzUmVxdWVzdC5CYXNlGj4KBEJhc2USFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEg0KBWxpbWl0GAIgASgFEg4KBmN1cnNvchgDIAEoCSJaChNMaXN0TWVtYmVyc1Jlc3BvbnNlEi4KB21lbWJlcnMYASADKAsyHS5zcGxpdHNlY3VyZS5vcmdzdmMudjEuTWVtYmVyEhMKC25leHRfY3Vyc29yGAIgASgJQuwBChljb20uc3BsaXRzZWN1cmUub3Jnc3ZjLnYxQhBMaXN0TWVtYmVyc1Byb3RvUAFaR2dpdGh1Yi5jb20vc3BsaXRzZWN1cmUvYXBpcy9nZW4vZ28vcHJvdG8vc3BsaXRzZWN1cmUvb3Jnc3ZjL3YxO29yZ3N2Y3YxogIDU09YqgIVU3BsaXRzZWN1cmUuT3Jnc3ZjLlYxygIVU3BsaXRzZWN1cmVcT3Jnc3ZjXFYx4gIhU3BsaXRzZWN1cmVcT3Jnc3ZjXFYxXEdQQk1ldGFkYXRh6gIXU3BsaXRzZWN1cmU6Ok9yZ3N2Yzo6VjFiBnByb3RvMw", [file_splitsecure_orgsvc_v1_member]); /** * @generated from message splitsecure.orgsvc.v1.ListMembersRequest @@ -39,6 +39,16 @@ export type ListMembersRequest_Base = Message<"splitsecure.orgsvc.v1.ListMembers * @generated from field: string organization_id = 1; */ organizationId: string; + + /** + * @generated from field: int32 limit = 2; + */ + limit: number; + + /** + * @generated from field: string cursor = 3; + */ + cursor: string; }; /** @@ -56,6 +66,11 @@ export type ListMembersResponse = Message<"splitsecure.orgsvc.v1.ListMembersResp * @generated from field: repeated splitsecure.orgsvc.v1.Member members = 1; */ members: Member[]; + + /** + * @generated from field: string next_cursor = 2; + */ + nextCursor: string; }; /** diff --git a/gen/go/proto/splitsecure/orgsvc/v1/list_members.pb.go b/gen/go/proto/splitsecure/orgsvc/v1/list_members.pb.go index ac5cc28..0dfcdb7 100644 --- a/gen/go/proto/splitsecure/orgsvc/v1/list_members.pb.go +++ b/gen/go/proto/splitsecure/orgsvc/v1/list_members.pb.go @@ -68,6 +68,7 @@ func (x *ListMembersRequest) GetBase() *ListMembersRequest_Base { type ListMembersResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Members []*Member `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"` + NextCursor string `protobuf:"bytes,2,opt,name=next_cursor,json=nextCursor,proto3" json:"next_cursor,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -109,9 +110,18 @@ func (x *ListMembersResponse) GetMembers() []*Member { return nil } +func (x *ListMembersResponse) GetNextCursor() string { + if x != nil { + return x.NextCursor + } + return "" +} + type ListMembersRequest_Base struct { state protoimpl.MessageState `protogen:"open.v1"` OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"` + Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + Cursor string `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -153,17 +163,35 @@ func (x *ListMembersRequest_Base) GetOrganizationId() string { return "" } +func (x *ListMembersRequest_Base) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *ListMembersRequest_Base) GetCursor() string { + if x != nil { + return x.Cursor + } + return "" +} + var File_splitsecure_orgsvc_v1_list_members_proto protoreflect.FileDescriptor const file_splitsecure_orgsvc_v1_list_members_proto_rawDesc = "" + "\n" + - "(splitsecure/orgsvc/v1/list_members.proto\x12\x15splitsecure.orgsvc.v1\x1a\"splitsecure/orgsvc/v1/member.proto\"\x89\x01\n" + + "(splitsecure/orgsvc/v1/list_members.proto\x12\x15splitsecure.orgsvc.v1\x1a\"splitsecure/orgsvc/v1/member.proto\"\xb7\x01\n" + "\x12ListMembersRequest\x12B\n" + - "\x04base\x18\x02 \x01(\v2..splitsecure.orgsvc.v1.ListMembersRequest.BaseR\x04base\x1a/\n" + + "\x04base\x18\x02 \x01(\v2..splitsecure.orgsvc.v1.ListMembersRequest.BaseR\x04base\x1a]\n" + "\x04Base\x12'\n" + - "\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\"N\n" + + "\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12\x14\n" + + "\x05limit\x18\x02 \x01(\x05R\x05limit\x12\x16\n" + + "\x06cursor\x18\x03 \x01(\tR\x06cursor\"o\n" + "\x13ListMembersResponse\x127\n" + - "\amembers\x18\x01 \x03(\v2\x1d.splitsecure.orgsvc.v1.MemberR\amembersB\xec\x01\n" + + "\amembers\x18\x01 \x03(\v2\x1d.splitsecure.orgsvc.v1.MemberR\amembers\x12\x1f\n" + + "\vnext_cursor\x18\x02 \x01(\tR\n" + + "nextCursorB\xec\x01\n" + "\x19com.splitsecure.orgsvc.v1B\x10ListMembersProtoP\x01ZGgithub.com/splitsecure/apis/gen/go/proto/splitsecure/orgsvc/v1;orgsvcv1\xa2\x02\x03SOX\xaa\x02\x15Splitsecure.Orgsvc.V1\xca\x02\x15Splitsecure\\Orgsvc\\V1\xe2\x02!Splitsecure\\Orgsvc\\V1\\GPBMetadata\xea\x02\x17Splitsecure::Orgsvc::V1b\x06proto3" var ( diff --git a/proto/splitsecure/orgsvc/v1/list_members.proto b/proto/splitsecure/orgsvc/v1/list_members.proto index ef7bdba..a3d20bc 100644 --- a/proto/splitsecure/orgsvc/v1/list_members.proto +++ b/proto/splitsecure/orgsvc/v1/list_members.proto @@ -8,9 +8,12 @@ message ListMembersRequest { Base base = 2; message Base { string organization_id = 1; + int32 limit = 2; + string cursor = 3; } } message ListMembersResponse { repeated Member members = 1; + string next_cursor = 2; }