zmuxuny opened a new issue, #6035: URL: https://github.com/apache/rocketmq-dashboard/issues/6035
### Before Creating the Feature Request - [x] I have searched the [open issues](https://github.com/apache/rocketmq-dashboard/issues) and believe this is not a duplicate. - [x] I understand that a non-trivial feature is agreed in this issue first: the design is discussed here before a pull request is sent, as described in CONTRIBUTING.md. ### Is Your Feature Request Related to a Problem? ## Tracking continuation (2026-10-10) This replaces #4497, which was automatically closed by github-actions[bot] for inactivity on 2026-09-25. The issue's technical/design scope is preserved. Its current discussion and related issue/PR searches were rechecked before creating this continuation; no existing replacement issue was found. The provider field matrix and API scope remain awaiting maintainer agreement. The historical prototype at 541fff679eee15875aed75f32da8fd7e05690f52 must not be submitted unchanged: any later implementation must rebase, retain Apache's all-Broker pre-read boundary from #4542, reconcile Aliyun response handling with the current read/catalog review, and rerun the relevant suites. Existing PR #5652 addresses rejection of unsupported cloud updates, explicitly leaving real cloud update support out of scope. No competing feature PR is being opened. The original report below retains its stated baseline and historical verification. It does not claim fresh test results, fully green CI, or new maintainer approval. Discussion and prior evidence remain available in #4497. The Consumer Group detail modal already has a **Settings** tab, but Studio disables it for Aliyun and Tencent instances. Operators can create/delete cloud groups and inspect progress/subscriptions, yet changing supported group settings still requires leaving Studio for the cloud console or provider CLI/API. The SDK versions already pinned by Studio expose the required management APIs, so no dependency upgrade is needed: - Aliyun RocketMQ 5.x: `GetConsumerGroup` / `UpdateConsumerGroup`. - Tencent Trocket 5.x: `DescribeConsumerGroup` / `ModifyConsumerGroup`. ### Describe the Solution You'd Like Add `CONSUMER_GROUP_SETTINGS` to the provider capability contract and route the existing settings endpoint through `InstanceProvider` instead of an Apache-only gate. The provider returns an `editableFields` list, so the web form renders and submits only fields that the selected provider actually supports. **Apache** keeps the existing behavior unchanged: retry queue count, max retry count, consume-enable, orderly-consume, and broadcast-consume remain editable. **Aliyun**: - read current state with `GetConsumerGroup`; - edit `maxRetryTimes`, `deadLetterTargetTopic`, `maxReceiveTps`, `remark`, and `fixedIntervalRetryTime` when the current retry policy is fixed-interval; - show delivery order and retry-policy type as read-only; - preserve the current retry-policy type and delivery semantics when updating, because Aliyun documents `deliveryOrderType` as not modifiable and requires a complete retry-policy object in `UpdateConsumerGroup`. **Tencent**: - read current state with `DescribeConsumerGroup`; - edit `maxRetryTimes`, `consumeEnable`, `consumeMessageOrderly`, and `remark` through `ModifyConsumerGroup`; - GET current state before mutation so omitted fields are preserved. ### Safety and compatibility - Unsupported fields fail closed with HTTP 400 instead of being silently discarded. - Cloud mutations use the existing `MetadataService.executeWithAudit` path. - No schema migration or dependency upgrade. - Existing Apache request semantics stay compatible. - The UI shows a provider notice and builds the mutation payload from `editableFields`, not from a hard-coded union of all provider fields. ### Acceptance criteria 1. The cloud Consumer Group Settings tab is usable for Aliyun and Tencent instances. 2. Values are loaded from the provider's official management API. 3. Only provider-supported fields are editable/submitted; unsupported fields are rejected server-side too. 4. Omitted values are preserved during cloud updates. 5. Aliyun delivery order/retry-policy type are not accidentally changed. 6. Apache settings behavior remains unchanged. 7. Provider mapping, controller/service compatibility, and cloud UI behavior have focused tests. ### Describe Alternatives You've Considered Continue using the cloud console or provider CLI/API while the provider field matrix and API scope are discussed. Existing PR #5652 rejects unsupported updates but deliberately does not implement real cloud settings updates. This continuation does not treat the design as approved or open a competing feature PR. ### Additional Context ### Historical prototype verification I built a local prototype only to validate the design; I will wait for maintainer feedback here before opening a PR. On current `master` (`987b748e8f4f421c5cd3c4c4e51a064cc7e59f18`): - Java 21 focused backend suite: **229 tests passed**, 0 failures/errors; Checkstyle 0 violations. - Provider contract tests cover Aliyun/Tencent read, merge-update, immutable/unsupported fields, and Apache compatibility. - Tencent cloud UI regression verifies the tab is enabled and the save payload excludes Apache-only fields. - TypeScript/Vite production build, touched-file ESLint, Prettier, and `git diff --check` pass. AI-assisted design/implementation prototype; SDK signatures and provider semantics were independently checked against the pinned SDKs and current provider code. ### Are You Willing to Implement It? - [ ] Yes, I am willing to submit a pull request once the design is agreed. -- 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]
