Aias00 opened a new pull request, #4387: URL: https://github.com/apache/rocketmq-dashboard/pull/4387
## Summary - Make Ops manage Studio default Apache RocketMQ NameServer selection, VIP channel, and TLS only when explicitly enabled; leave instance-scoped endpoints and credentials untouched. - Persist the separate `ops-connection` settings row and read the current configuration for each default-client operation. Validate addresses, protect the active/last address, and enforce admin rights at service level even when login enforcement is disabled. - Apply VIP/TLS before admin, producer, or pull-consumer startup. TLS enabling requires secure (non-test) server verification and a readable deployment-owned trust certificate; no secrets are persisted. - Use one immutable selection for endpoint metadata and the actual client call; retire obsolete managed clients without shutting down in-flight admin/send operations, and key Proxy discovery cache by the selected default NameServer. - Keep the feature disabled by default and document Compose/JVM setup. Fixes #4348 ## Verification - Java 21, isolated H2 MySQL-compatible datasource: `cd server && env JAVA_HOME=/Users/aias/Library/Java/JavaVirtualMachines/openjdk-21.0.2/Contents/Home PATH=/Users/aias/Library/Java/JavaVirtualMachines/openjdk-21.0.2/Contents/Home/bin:/opt/homebrew/bin:/usr/bin:/bin SPRING_DATASOURCE_URL="jdbc:h2:mem:ops_runtime_lease_full_suite;MODE=MySQL;DATABASE_TO_LOWER=TRUE;DB_CLOSE_DELAY=-1" SPRING_DATASOURCE_USERNAME=sa SPRING_DATASOURCE_PASSWORD= SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.h2.Driver mvn -B -ntp -q test` -> exit 0; 2421 tests, 0 failures/errors, Checkstyle 0 violations. - Focused provider suite -> 180 tests passed; cache/proxy/lease regression suite -> 40 tests passed; default-cluster MCP credentials -> 23 tests passed. - `cd web && npm test -- --run src/pages/studio/__tests__/Ops.test.tsx` -> 6 passed; `npm run build` -> passed; `npm run lint` -> 0 errors, 10 existing warnings in unchanged files. - `docker compose --env-file deploy/.env.example -f deploy/docker-compose.yml config --format json` -> Ops environment values resolve; custom default/override NameServer variants verified. - `git diff --check` -> clean. The lease tests first failed because a runtime update shut down admin/producer clients while actions were still in progress, then passed after deferred retirement. The Proxy cache test first returned the previous cluster addresses after switching NameServer, then passed with endpoint-scoped keys. ## CI note GitHub Actions is currently `startup_failure` before creating jobs for this PR and other `rocketmq-studio` PRs. Local clean-suite results above are the available validation evidence. ## Scope note PR #4154 adds complementary Ops frontend preflight, not the backend runtime application implemented here. No frontend source files are changed in this PR. --- Replaces #4352 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]
