lasdf1234 opened a new pull request, #11882:
URL: https://github.com/apache/gravitino/pull/11882

   ### What changes were proposed in this pull request?
   
   This PR implements SCIM epic subtask #11833: JDBC-backed pagination for 
users and groups.
   
   - Add `PagedResult<T>` in `api` with `totalCount()` and `items()`
   - Add dispatcher APIs:
     - `PagedResult<User> listUsers(metalake, offset, limit)`
     - `long countUsers(metalake)`
     - `PagedResult<Group> listGroups(metalake, offset, limit)`
     - `long countGroups(metalake)`
   - Implement pagination via `UserMetaService` / `GroupMetaService` with 
`LIMIT`/`OFFSET` SQL ordered by `user_id` / `group_id ASC`, including role joins
   - Wire through `AccessControlManager`, `UserGroupManager`, hook/event 
dispatchers (pass-through, no new events)
   - Keep existing full-list APIs unchanged; no pagination on `listUserNames` / 
`listGroupNames`; no REST exposure
   
   Stacked on #11848 — after opening, change base branch to 
`feat/scim-dispatcher-11832-11833` so only pagination commits are reviewed.
   
   ### Why are the changes needed?
   
   SCIM list operations require efficient paginated access to users and groups 
at the dispatcher layer, without loading entire metalake populations into 
memory.
   
   Fix: #11833
   
   ### Does this PR introduce _any_ user-facing change?
   
   1. New internal dispatcher APIs for paginated list and count (not exposed 
via REST in this PR).
   
   ### How was this patch tested?
   
   - `./gradlew spotlessApply`
   - `./gradlew :core:test --tests 
"org.apache.gravitino.authorization.TestAccessControlManager.testUserPagination"
 --tests 
"org.apache.gravitino.authorization.TestAccessControlManager.testGroupPagination"
 -PskipITs`
   - `./gradlew :core:test --tests 
"org.apache.gravitino.storage.relational.service.TestUserMetaService.testUserPagination"
 --tests 
"org.apache.gravitino.storage.relational.service.TestGroupMetaService.testGroupPagination"
 -PskipITs`
   - `./gradlew :core:test --tests 
"org.apache.gravitino.authorization.TestAccessControlManager" -PskipITs`
   
   
   Made with [Cursor](https://cursor.com)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to