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]

Reply via email to