Skip to content

feat(billing): Add protobuf definitions for the seats service - #414

Merged
volokluev merged 7 commits into
mainfrom
billing/seats-service-protos
Sep 3, 2026
Merged

feat(billing): Add protobuf definitions for the seats service#414
volokluev merged 7 commits into
mainfrom
billing/seats-service-protos

Conversation

@volokluev

Copy link
Copy Markdown
Member

Summary

  • Adds protobuf message definitions for the billing platform seats service under proto/sentry_protos/billing/v1/services/seats/v1/
  • Defines SeatObject, request/response messages for all seat service endpoints, and enums (SeatOutcome, ExternalProductSeatStatus)
  • Replaces the dataclass prototypes currently in getsentry with proper protobuf types

Proto files

  • seat_object.proto — shared SeatObject message
  • endpoint_check_assign_seats.protoCheckAssignSeatsRequest/Response, SeatOutcome enum
  • endpoint_assign_seat.protoAssignSeatRequest/Response
  • endpoint_disable_seat.protoDisableSeatRequest
  • endpoint_remove_seat.protoRemoveSeatRequest
  • endpoint_update_seat_identifier.protoUpdateSeatIdentifierRequest
  • endpoint_get_seat_status.protoGetSeatStatusForExternalProductRequest/Response, ExternalProductSeatStatus enum
  • endpoint_get_daily_seat_usage_by_project.protoGetDailySeatUsageByProjectResponse, ProjectSeatUsage
  • endpoint_rollover_seats.protoRolloverSeatsToNewContractRequest

Companion PR

  • getsentry consumer PR: (will link once created)

Test plan

  • Proto files compile successfully with make build-py
  • Generated Python classes import and instantiate correctly
  • getsentry test suite passes with editable install of these protos

Define proto messages for the billing platform seats service endpoints:
- SeatObject: shared seat entity message
- CheckAssignSeats: request/response with SeatOutcome enum
- AssignSeat: request/response
- DisableSeat, RemoveSeat, UpdateSeatIdentifier: request messages
- GetSeatStatusForExternalProduct: request/response with ExternalProductSeatStatus enum
- GetDailySeatUsageByProject: response with ProjectSeatUsage
- RolloverSeatsToNewContract: request message
@volokluev
volokluev requested a review from a team as a code owner August 28, 2026 22:29
@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow ci / buf-checks (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedSep 3, 2026, 11:01 PM

@volokluev

Copy link
Copy Markdown
Member Author

Companion getsentry PR: https://github.com/getsentry/getsentry/pull/21710

volokluev and others added 3 commits August 28, 2026 22:51
Move SeatObject from services/seats/v1/ to billing/v1/ since it is a
shared type used across multiple service boundaries. Update all service
protos to import from the new location.
…n file

Move seat_object.proto from billing/v1/ to billing/v1/common/v1/ since
it is a shared type used across service boundaries. Extract SeatOutcome
enum from endpoint_check_assign_seats.proto into its own seat_outcome.proto
file within the seats service directory.
@volokluev volokluev added the enhancement New feature or request label Sep 3, 2026
@volokluev
volokluev merged commit a77c130 into main Sep 3, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants