Skip to content

feat(billing): add ListTagValues RPC and Tags cardinality fields - #895

Open
topphh wants to merge 1 commit into
mainfrom
feat/list-tag-values
Open

topphh wants to merge 1 commit into
mainfrom
feat/list-tag-values

Conversation

@topphh

@topphh topphh commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds Tags.totalValueCount (int32) and Tags.truncated (bool) so GetTags can report per-key cardinality alongside a capped value list.
  • Adds a new ListTagValues RPC (GET /v1/tags:values), offset-paginated following ListBillingGroupsPaginated's convention (pageNumber/pageSize), returning a page of a single (vendor, customerId, tagKey)'s distinct values plus totalValueCount/pageNumber/pageSize/totalPages.

Part of the tags-improvement Spanner migration tracked in ripple-openspec's optimize-tags-customer-index change (task 4.1) — unblocks Ouchan's billingd read-path rewrite (fetchTags/GetTags capping + drill-down) documented in that change's design.md/specs/tag-retrieval/spec.md.

Test plan

  • buf generate runs clean end-to-end (protoc-gen-go, protoc-gen-go-grpc, protoc-gen-grpc-gateway) with the submodule protos dependency initialized; new ListTagValuesRequest/ListTagValuesResponse/Tags.TotalValueCount/Tags.Truncated and the Billing_ListTagValues gRPC client/server + gateway handler all generated correctly.
  • Re-vendor into Ouchan (go get github.com/alphauslabs/blue-sdk-go@<new tag>) once this merges and a new blue-sdk-go release is cut, to unblock the billingd capping/streaming rewrite.

🤖 Generated with Claude Code

Adds Tags.totalValueCount/truncated and a paginated ListTagValues RPC
(following ListBillingGroupsPaginated's offset-pagination convention) so
GetTags callers can cap per-key value lists and drill into a high-
cardinality key on demand.

Part of the tags-improvement Spanner migration (ripple-openspec
optimize-tags-customer-index, task 4.1).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant