tju-yxq opened a new issue, #2424:
URL: https://github.com/apache/rocketmq-dashboard/issues/2424

   ## Problem
   
   The backend now exposes a bounded cloud-credential inventory:
   
   ```text
   GET /api/cloud-credentials?vendor=&search=&page=&pageSize=
   ```
   
   It returns `PageResult<CloudCredentialVO>`, and the repository applies 
vendor/name filtering and page bounds at the SQL layer.
   
   The Settings page still consumes only the first page:
   
   ```ts
   void listCloudCredentials()
     .then((result) => setCredentials(result.items));
   ```
   
   The table then renders:
   
   ```tsx
   <Table ... pagination={false} />
   ```
   
   Consequences:
   
   - credentials beyond the first 20 rows cannot be viewed or edited from the 
Settings page;
   - no vendor filter is exposed even though the API supports it;
   - no name search is exposed even though the API supports it;
   - page size cannot be changed;
   - the user is not told that the table is a bounded page rather than the 
complete inventory;
   - create/update/delete only mutate the local first-page array, so a deleted 
last row leaves an empty-looking page even when later pages still contain rows;
   - the page has no request sequencing, so changing filters can race with an 
older request.
   
   This is not a backend pagination bug: #2306 correctly added the inventory 
contract. The Settings UI was only changed to unwrap `result.items`; it never 
became a paginated inventory view.
   
   ## Expected behavior
   
   The credential management tab should consume the existing backend contract 
fully:
   
   - vendor filter;
   - debounced name search;
   - bounded pagination with page and page size;
   - total row count from the server;
   - reset to page 1 when filters change;
   - deterministic handling of an emptied current page;
   - request sequencing so stale responses cannot overwrite newer filters;
   - after create/update/delete, refresh the current server page rather than 
only patching an unbounded local array;
   - retain masked AccessKey display and write-only SecretKey handling.
   
   ## Suggested acceptance tests
   
   - initial load requests page 1 with page size 20;
   - changing vendor or search resets to page 1 and sends both filters;
   - pagination changes send the selected page and page size;
   - a stale response for an older filter cannot overwrite a newer result;
   - deleting the last row on a later page moves to the previous page when 
appropriate;
   - creating a credential refreshes the server page;
   - updating a credential replaces the row using the server response;
   - masked AccessKey remains displayed and SecretKey is never returned.
   
   ## Value / size
   
   This is a user-facing correctness/performance completion of an 
already-merged backend capability. It naturally spans the Settings page, API 
call construction, request sequencing, pagination UI, filter UI, and focused 
component tests; the production change is expected to exceed 100 lines without 
test padding.


-- 
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