tju-yxq opened a new issue, #2540:
URL: https://github.com/apache/rocketmq-dashboard/issues/2540
## Problem
The Studio user management page loads every local account in one request:
```java
public List<RmqStudioUser> listUsers() {
return userMapper.selectList(new
QueryWrapper<RmqStudioUser>().orderByAsc("username"));
}
```
The page has no username search, role/status filters, page size control, or
server total. This differs from the other Studio inventories (cloud credentials
and data sources), which already use server-side pagination and bounded
`pageSize`.
As the local account inventory grows, the admin endpoint transfers all rows
and the UI has no way to narrow the list. There is also no shared invalid-page
rejection before the database is queried.
## Expected behavior
- `GET /api/studio-users` should accept:
- `search` (username substring)
- `admin`
- `enabled`
- `page` (default 1)
- `pageSize` (default 20, maximum 100)
- Filtering, stable ordering, and pagination should run in SQL rather than
in JavaScript.
- Invalid page/pageSize and oversized search text should be rejected before
repository access.
- The user management page should debounce search input, reset to page 1
when filters change, show the server total, and use 20/50/100 page sizes.
- Password hashes must remain absent from the response.
- Existing account creation, enable/disable, and password reset behavior
should remain unchanged.
## Verification scope
Tests should cover service pagination validation and SQL construction, the
HTTP response contract (including no password hash), API query parameters, and
UI loading/filtering behavior.
--
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]