Expose a human-readable Fluss server version via the client API
- Dominant language
- Java
- Stars
- 2.1k
- Forks
- 625
- Avg merge
- 3d 14h
- Merged PRs (30d)
- 97
Description
### Search before asking
- [x] I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar.
### Motivation
There's currently no way to retrieve a human-readable Fluss version string from a running cluster via the client API. `apiVersions()` is a gateway-level RPC (not on `Admin`) and returns only protocol `api_key`/`min`/`max` numbers plus `server_type` — no semantic version like `0.9.0` or `0.10.1`.
Any tool built on top of Fluss (a CLI, a UI, a monitoring agent) that wants to display which Fluss version a cluster is running — or that needs to adapt its own behavior to what a given server version actually supports (for example, the alterable table-property allow-list in `FlussConfigUtils.isAlterableTableOption` differs across versions) — currently has no way to query this from the server itself; it has to be supplied out-of-band by whoever operates the cluster.
### Solution
Add a way to retrieve the running server's version string, for example:
- A new `Admin` method, e.g. `CompletableFuture getClusterVersion()`, backed by the version already embedded in the server's build metadata, or
- Extending the existing `apiVersions()` gateway RPC response with an optional human-readable version field, alongside the existing protocol min/max numbers.
Either shape would let clients read the version they're talking to without guessing from behavior.
### Anything else?
_No response_
### Willingness to contribute
- [ ] I'm willing to submit a PR!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the Admin client API and the existing apiVersions() gateway RPC described in the issue, then trace where the server build version is available. Compare the two proposed response shapes and check FlussConfigUtils.isAlterableTableOption for the compatibility motivation. Done means a client can query and receive the running server's human-readable semantic version.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100