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

   ## Summary
   
   - add a guarded, disabled-by-default deployment adapter for Broker, 
NameServer and Proxy lifecycle operations;
   - wire the existing Broker and Proxy restart controls to typed dispatch 
results;
   - add independently allowlisted NameServer 
create/update/restart/upgrade/delete operations without conflating process 
lifecycle with registry CRUD;
   - validate discovered targets and version/address argument tokens before 
process launch;
   - bound adapter output and runtime, terminate descendant processes on 
timeout, and audit every dispatch;
   - document that exit code 0 means accepted, not healthy or converged.
   
   Fixes #4311
   Fixes #4355
   
   ## Review follow-up
   
   - The Broker restart button now calls the lifecycle service instead of 
rendering `restartNotSupported`.
   - Studio uses a registered global `AuthInterceptor`, not Spring Security 
annotations. With login protection enabled, all lifecycle POST routes reject 
readers; focused tests cover Broker, NameServer and Proxy endpoints. 
`login-required=false` remains an explicit local mode without an admin boundary.
   - `targetVersion` is normalized and validated at both the service and 
executor boundaries; option-like, whitespace/control-containing and oversized 
values never reach `ProcessBuilder`.
   - The NameServer tab remains registry CRUD. It is intentionally not wired to 
process create/update/delete because a registry row is an address directory 
entry, not deployment inventory. The lifecycle API/service contract stays 
separate for deployment integrations and a future discovered-node workflow.
   
   ## Adapter contract
   
   The deployment-owned executable maps validated cluster/address/version 
values to controlled inventory and owns idempotency, placement, health 
convergence and rollback. Studio does not embed Docker, Kubernetes or SSH 
orchestration. A retry may dispatch twice unless the adapter deduplicates by 
`requestId`.
   
   ## Verification
   
   - Java 21 with isolated H2 MySQL-compatible datasource: 2445 backend tests 
passed, Checkstyle 0 violations.
   - Focused lifecycle/auth backend tests: 111 passed.
   - Frontend: 1042 tests passed across 122 files; ClusterPage focused suite 27 
passed.
   - Frontend production build passed.
   - Frontend lint passed with 0 errors; 10 existing warnings remain in 
unrelated files.
   - `git diff --check` passed.
   - Independent code review found no remaining issues.
   
   GitHub Actions may still report repository-level startup failures before 
jobs are created; the commands above are local verification evidence.
   
   ---
   
   Replaces #4356 because its base branch (`rocketmq-studio`) was deleted. This 
PR uses the same head commit and targets `master`.


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