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]