Skip to content

CUST-5289 [v3] Python SDK ListGrantsQueryParams uses camelCase keys t…#464

Open
samLRodrigues wants to merge 2 commits intomainfrom
CUST-5289-v-3-python-sdk-list-grants-query-params-uses-camel-case-keys-that-are-silently-ignored-by-the-api
Open

CUST-5289 [v3] Python SDK ListGrantsQueryParams uses camelCase keys t…#464
samLRodrigues wants to merge 2 commits intomainfrom
CUST-5289-v-3-python-sdk-list-grants-query-params-uses-camel-case-keys-that-are-silently-ignored-by-the-api

Conversation

@samLRodrigues
Copy link
Copy Markdown
Contributor

@samLRodrigues samLRodrigues commented Apr 13, 2026

License

I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Fix ListGrantsQueryParams key handling in Python SDK

  • Fix bug where sortBy, orderBy, and grantStatus are sent as-is and ignored by the API.
  • Normalize grants query aliases to sort_by, order_by, and grant_status at request serialization time.
  • Align type hints with snake_case API contract while keeping camelCase aliases for backwards compatibility.
  • Preserve existing SDK behavior for callers already using snake_case keys.

✅ Tests checks:

  • pytest tests/handler/test_http_client.py -k test_build_query_params -q (100%)
  • Manual serialization check for grants aliases via _build_query_params (verified)

Note

Low Risk
Low risk: small, targeted change to query-string serialization and type hints; behavior only differs when callers pass the affected camelCase keys, which now map to the API-expected snake_case names.

Overview
Fixes a bug where ListGrantsQueryParams camelCase keys (sortBy, orderBy, grantStatus) were serialized as-is and ignored by the API by normalizing them to sort_by, order_by, and grant_status inside http_client._build_query_params.

Updates ListGrantsQueryParams typing/docs to prefer snake_case keys while keeping the camelCase fields as deprecated, backward-compatible aliases.

Reviewed by Cursor Bugbot for commit 9ff6150. Bugbot is set up for automated code reviews on this repo. Configure here.

…hat are silently ignored by the API

License
I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Fix ListGrantsQueryParams key handling in Python SDK

- Fix bug where `sortBy`, `orderBy`, and `grantStatus` are sent as-is and ignored by the API.
- Normalize grants query aliases to `sort_by`, `order_by`, and `grant_status` at request serialization time.
- Align type hints with snake_case API contract while keeping camelCase aliases for backwards compatibility.
- Preserve existing SDK behavior for callers already using snake_case keys.

✅ Tests checks:

- `pytest tests/handler/test_http_client.py -k test_build_query_params -q` (100%)
- Manual serialization check for grants aliases via `_build_query_params` (verified)

Made-with: Cursor
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 9ff6150. Configure here.

Copy link
Copy Markdown
Contributor

@pengfeiye pengfeiye left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM fix cursor sugesstion

Move camelCase-to-snake_case key normalization out of the shared HTTP query builder and into the grants resource so only grants list parameters are transformed. Add grants-specific tests to verify camelCase compatibility and snake_case precedence.

Made-with: Cursor
@cursor
Copy link
Copy Markdown

cursor bot commented Apr 13, 2026

You have used all of your free Bugbot PR reviews.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

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.

2 participants