X-LightYear opened a new issue, #5114:
URL: https://github.com/apache/rocketmq-dashboard/issues/5114

   ## Problem
   
   The `rmq.acl.update` MCP tool rejects Tencent Cloud ACL role names before 
the request reaches the provider, even though Tencent ACL roles use the role 
name as their identifier and the REST/service path supports that identifier.
   
   ## Reproduction
   
   1. Configure a Tencent RocketMQ instance with ACL management enabled.
   2. Discover a Tencent ACL rule whose `id` is null and whose `principal` is a 
role name, for example `role-orders`.
   3. Execute `rmq.acl.update` with `instanceId` set to the Tencent instance, 
`id` set to `role-orders`, and the updated rule fields.
   
   ## Expected behavior
   
   The MCP handler should pass the provider-specific identifier to 
`AclService`, and Tencent should update the role through 
`TencentAclService.updateRule`.
   
   ## Actual behavior
   
   `AclUpdateToolHandler.parseId` requires every identifier to parse as a 
`Long` and returns `ACL_ID_INVALID` (`ACL id must be numeric: role-orders`). 
The Tencent provider is never reached.
   
   ## Root cause
   
   `AclService.updateRule` already routes Tencent instances to 
`TencentAclService.updateRule`, which uses the rule principal as the Tencent 
role name. The MCP handler performs an unconditional numeric conversion before 
that provider-aware service path, so REST and MCP expose different provider 
capabilities.
   
   ## Regression evidence
   
   A deterministic regression test was added to `AclUpdateToolHandlerTest`:
   
   `applyShouldAcceptTencentRoleNameIdentifier`
   
   It fails on the current upstream code with `ACL id must be numeric: 
role-orders` and passes after the minimal handler fix. The related ACL handler, 
service, controller, Tencent provider, and MCP schema tests pass.
   
   ## Related work
   
   PR #4574 fixed null-id ACL read outputs and explicitly left `rmq.acl.update` 
numeric-id handling as a follow-up. This issue covers that separate write-path 
gap.


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