yx9o opened a new pull request, #7096:
URL: https://github.com/apache/rocketmq-dashboard/pull/7096

   ## What is the purpose of the change
   
   An Apache topic update without `perm` currently replaces every target 
Broker's live permission with the stored catalog value. If an operator disabled 
writes outside Studio while the catalog still says `RW`, an unrelated 
queue-count or remark edit can re-enable writes.
   
   ## Brief changelog
   
   - Preserve each existing Broker's exact permission mask when the update 
omits `perm`, including disabled and inherited permissions.
   - Continue applying explicit `RO` / `WO` / `RW` requests to all target 
Brokers. When a target Broker does not yet have the topic, retain the existing 
stored-permission fallback for provisioning it.
   - Leave the stored permission unchanged when omitted and clarify the Apache 
update contract in the API documentation.
   - Add parameterized regressions for different permissions on two Brokers and 
explicit overrides; strengthen the absent-configuration controls.
   
   The catalog is not synchronized from externally changed Broker permissions. 
API schemas and queue-count handling are unchanged.
   
   ## Verifying this change
   
   Commands used `JAVA_HOME=/Users/yx9o/home/env/jdk-22.0.2.jdk/Contents/Home` 
(the project compiles for Java 21).
   
   - `cd server && mvn -B -ntp 
-Dtest='RocketMQAdminClientImplTest#updateTopicWithoutPermissionPreservesEachBrokersPermissionTest+updateTopicWithPermissionOverridesEachBrokersPermissionTest+updateTopicStillCreatesConfigurationOnMissingMastersTest'
 test` — before the fix: 8 cases, 3 expected failures demonstrating permission 
overwrite; after the fix: all 8 passed.
   - `cd server && mvn -B -ntp 
-Dtest=RocketMQAdminClientImplTest,RocketMQMetadataProviderTest,MetadataServiceTest,TopicControllerTest,TopicMutationPlanTest,ApacheInstanceProviderTest
 test` — 271 tests passed, no failures, errors, or skips; compilation and 
Checkstyle passed.
   - `git diff --check` — passed.
   
   Broker RPCs are mocked in these regressions. No live RocketMQ cluster or 
full backend suite was exercised.
   


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