Skip to content

Conversation

@dengjonathan
Copy link
Contributor

@dengjonathan dengjonathan commented Dec 3, 2025

  • Add low-level wrappers for policies, resource attributes, and user attributes
  • Add high-level APIs for policies, resource attributes, and user attributes
  • Add integration tests with workflow and error case coverage

Following the pattern in the sift_client library, the client code is implemented in two layers:

  1. Low Level API: wraps gRPC stubs for serialization/deserialization. All methods are async
  2. High Level API: Python classes representing the resource (i.e. Policy, ResourceAttribute) that has either sync/async CRUD methods. These can be called from a python testing script/notebook.

…ibutes

- Add low-level wrappers for policies, resource attributes, and user attributes
- Add high-level APIs for policies, resource attributes, and user attributes
- Add comprehensive integration tests with workflow and error case coverage
- Add test_user_id fixture to use authenticated user ID in tests
- Fix proto conversion issues for nested fields (cedar_policy, initial_enum_values, entity)
- Fix CEL filter issues (remove is_archived from user attributes filters)
- Fix policy update to copy read-only fields from current policy
- Fix ruff and mypy errors in ABAC client code
- Add noqa comments for intentional pytest.raises(Exception) usage
- Add noqa comments for cleanup try-except in loops
- Fix unused variable and whitespace issues
- Run ruff format on all new files
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