Skip to content

feat: paginate Studio user management - #2541

Open
tju-yxq wants to merge 1 commit into
apache:rocketmq-studiofrom
tju-yxq:codex/studio-user-pagination
Open

feat: paginate Studio user management#2541
tju-yxq wants to merge 1 commit into
apache:rocketmq-studiofrom
tju-yxq:codex/studio-user-pagination

Conversation

@tju-yxq

@tju-yxq tju-yxq commented Aug 22, 2026

Copy link
Copy Markdown

Summary

  • add server-side pagination to GET /api/studio-users with default page=1, pageSize=20, and a 100-row maximum
  • filter by username substring, administrator role, and enabled status
  • keep stable username ASC, id ASC ordering and perform filtering/pagination in MyBatis-Plus
  • reject invalid pagination and oversized search input before repository access
  • update the user management page with debounced username search, role/status filters, server total, and 20/50/100 page sizes
  • preserve existing create, enable/disable, password reset, and password-hash redaction behavior

Why

The page previously loaded every Studio account in one request and had no way to narrow a growing inventory. This also made it inconsistent with the cloud credential and data source management pages, which are server-paginated.

Tests

  • focused backend: AuthServiceDatabaseTest,StudioUserControllerTest — 13 tests passed
  • backend full suite: 1,555 tests passed; Checkstyle 0 violations
  • focused frontend: API and user-management page — 2 files / 3 tests passed
  • full frontend suite: 98 files / 670 tests passed; one unrelated ClusterPage test initially timed out under full-suite load, then its file passed in isolation with 15/15 tests
  • npm run lint -- --quiet: 0 errors (3 pre-existing warnings)
  • npm run build: passed
  • git diff --check: passed

Production changes: 198 additions / 19 deletions across backend and frontend, naturally exceeding 100 production lines without test padding.

Closes #2540

@RockteMQ-AI RockteMQ-AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Summary

This PR modifies 8 file(s) with +532 -19 lines. Found 1 critical issue(s) that should be addressed before merging.

Findings

  • [CRITICAL] diff:1 — Potential hardcoded credentials detected. Ensure secrets are not committed and use environment variables or secret management.

Automated review by github-manager-bot

Additional notes (not anchored to a changed line)

  • [CRITICAL] diff:1 — Potential hardcoded credentials detected. Ensure secrets are not committed and use environment variables or secret management. (line outside diff)

@RockteMQ-AI RockteMQ-AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Summary

This PR adds server-side pagination for Studio user management with search, role filter, and status filter. Clean implementation — proper database-level pagination via MyBatis-Plus Page, thorough input validation (page/pageSize/search length bounds), and excellent test coverage across both backend and frontend.

The frontend race-condition handling with requestSeqRef and the edge-case recovery (empty page beyond last page → auto-correct) are well done.

LGTM — no blocking issues.


Automated review by github-manager-bot

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