apache / apache/rocketmq-dashboard

Consumer Group Push/Pop filter only filters the current page

Open
#3,150 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
1.4k
Forks
683
Avg merge
2d 14h
Merged PRs (30d)
58

Description

## Problem

The Consumer Group page has a Push/Pop filter, but the backend paged endpoint does not support it.

Current behavior:

- `/api/groups/page` accepts only `instanceId`, `clusterId`, `search`, `page`, and `pageSize`.
- `web/src/pages/instance/consumer.tsx` fetches one page and then filters that page in memory with `visibleConsumerGroups(groups, modeFilter)`.
- The repository query in `RocketMQMetadataProvider.listConsumerGroupsPage` also has no subscription-mode condition.

This makes the filter incorrect for real inventories:

- switching to `Push` or `Pop` filters only the rows on the current page, not the whole inventory;
- the returned `total` remains the unfiltered total;
- a page can render zero rows while the pagination still says there are many results;
- later pages are unreachable for the selected mode because they may contain no matching rows;
- CSV export uses the selected mode, so exported data and the visible page no longer describe the same query.

## Expected behavior

- `/api/groups/page` should accept an optional `subscriptionMode` filter.
- Apache-backed groups should filter in the database query, preserving correct totals and paging.
- Cloud providers that return provider-native pages should apply the same filter without breaking existing search/pagination behavior.
- The frontend should send the selected mode to the backend and stop filtering only the current page locally.
- CSV export should continue to use the same backend-visible mode filter.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at /api/groups/page and web/src/pages/instance/consumer.tsx, then trace RocketMQMetadataProvider.listConsumerGroupsPage and the existing visibleConsumerGroups(groups, modeFilter) call. Follow how Apache-backed and cloud-provider pages handle search and pagination. Done means subscriptionMode reaches the backend, totals and pages are mode-filtered consistently, local page-only filtering is removed, and CSV export matches the visible query.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, typescript
Domain
api, cloud, databases, full-stack
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.