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

   ## What changed
   
   - add a versioned, tri-state cluster capability catalog with 13 stable wire 
keys
   - add an immutable capability response model and a conservative 
configured-default resolver
   - expose `GET /api/clusters/{id}/capabilities`
   - add model, resolver, MockMvc, serialization-order, immutability, and 
data-leak tests
   - document the complete v1 API contract in `docs/api-spec.md`
   
   ## Why
   
   RIP-1 / ARCH-01 needs a stable capability boundary before RocketMQ adapters 
and runtime probes can be added safely. Consumers should reason about the 
effective capabilities available through the current Studio access path instead 
of inferring support from a RocketMQ version or a cluster type alone.
   
   ## Contract and conservative defaults
   
   - states are `supported`, `unsupported`, and `unknown`
   - `configured-default` never claims `supported`; support must eventually be 
verified by an adapter or runtime probe
   - `V4_DIRECT` marks only `grpc-admin`, `lite-topic`, `pop-consume`, and 
`batch-consume` as `unsupported`; all other capabilities remain `unknown`
   - both v5 proxy modes and an unconfigured cluster type remain entirely 
`unknown`
   - `pop-consume` represents RocketMQ 5.x Pop consumption
   - `batch-consume` represents newer 5.x batch-consumption/runtime-diagnostics 
semantics, not the legacy batch-send API
   
   ## Compatibility and non-goals
   
   - this is an additive endpoint and does not change existing cluster APIs
   - the current global error contract is preserved: a missing cluster returns 
HTTP 400 with body code 404
   - no RocketMQ SDK integration, live probes, config/probe merge policy, 
cache, credentials, frontend changes, or LiteTopic compatibility endpoint 
removal are included
   
   ## Security boundary
   
   The capability response contains no endpoint, NameServer/Proxy address, 
username, password, token, access key, secret key, or credentials field. The 
response is built from a normalized capability map rather than from the cluster 
entity.
   
   ## Verification
   
   - `mvn -B -ntp clean test` — 183 tests passed
   - `mvn -B -ntp checkstyle:check package` — 0 violations; executable JAR 
produced
   - Node 20.20.2: `npm ci`, `npm run lint`, and `npm run build` passed (lint 
has 4 existing warnings)
   - frontend tests reproduce only the 3 existing baseline assertion failures 
already covered by #498; this PR has no frontend diff
   - Compose config validated; both images built and started; the live endpoint 
was verified inside the Compose network with all 13 states and no sensitive 
fields
   - the host-side Nginx proxy on Docker Desktop remains affected by the 
existing hard-coded resolver issue tracked by #494; this PR intentionally does 
not duplicate that fix
   - final diff: 7 files; whitespace and secret scans passed
   
   Part of #427.


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