PiliLily opened a new pull request, #514: URL: https://github.com/apache/rocketmq-dashboard/pull/514
## Summary - add a versioned YAML tool catalog with a Draft 2020-12 schema, SHA-256 digest, minimum-client metadata, deep immutability, and startup validation - add capability-aware discovery and schema-validated execution for the read-only `rmq.cluster.list` and `rmq.capabilities` L1 tools - extend the existing AI tools API without changing its response envelope, and add catalog metadata headers plus a generic execute endpoint - fail closed for invalid catalogs, embedded schemas, handler mappings, non-L1 tools, malformed input/output, and incomplete cluster metadata Closes #513. ## Why RIP-3 needs one stable tool contract that later Go CLI, MCP, and Studio UI clients can share. This PR intentionally provides only the first server-side read slice. It follows the maintainer feedback on earlier large submissions by keeping write tools, approval tokens, Go binaries, MCP transports, and UI work out of scope for independent follow-up PRs. Competition context: https://www.taiyi.top/competition-details?id=2f410866-6fa3-11f1-b193-02420a000011 ## Compatibility and safety - `GET /api/ai/tools` keeps the existing `Result<List<AiToolVO>>` body and only adds fields and `X-RMQ-*` catalog headers. - Remote cluster access still goes through existing Studio services; no endpoint, broker, proxy, or NameServer details are exposed. - Tool registration is exactly one-to-one with the catalog and is verified when Spring starts. - Input and output schemas are meta-validated and eagerly initialized so invalid references fail before traffic is accepted. - Only L1 tools can execute in this slice. - Business exceptions preserve their HTTP 400/404 status and response-envelope code. ## Validation - `mvn -B -ntp clean verify` — 204 tests passed, Checkstyle 0, executable JAR produced - `npm run lint` — 0 errors; 4 pre-existing React Fast Refresh warnings - `npm run build` — passed; existing bundle-size warning only - `npm test -- src/api/ai.test.ts --run` — 9 tests passed - packaged-JAR smoke test — application started; cluster-list execution returned 200 and an unknown tool returned the expected 404 envelope The complete frontend suite remains at its existing baseline of 135/138 tests: the three unrelated assertion failures are covered by #498, which is open and mergeable. This PR does not modify frontend source or tests. -- 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]
