Class ClusterController
Endpoints: GET /api/cluster/status — full node status including Raft state GET /api/cluster/members — cluster membership GET /api/cluster/health — production health check (UP/DOWN)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordstatic final record -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionchangeClusterState(@Nullable ClusterController.ClusterStateChangeRequest request) Change the cluster operational state.changeClusterVersion(@Nullable ClusterController.ClusterVersionChangeRequest request) Change the cluster version gate used during rolling upgrades.forceCloseCpSession(String sessionId) Force-close a local CP session and release its tracked resources.Force the current local Raft leader to step down.health()Production health check endpoint.Authenticated health-details endpoint.List local CP/Raft groups for operator inspection.List active local CP sessions for operator inspection.members(int offset, int limit) Get cluster membership information.Reset the local CP subsystem state for operator recovery.status(int offset, int limit) Get full node status including Raft consensus state.
-
Constructor Details
-
ClusterController
Construct the cluster controller.- Parameters:
cacheNode- the cache node instance
-
-
Method Details
-
status
@RolesAllowed("ADMIN") @GetMapping("/status") public org.springframework.http.ResponseEntity<Map<String,Object>> status(@RequestParam(defaultValue="0") int offset, @RequestParam(defaultValue="100") int limit) Get full node status including Raft consensus state.- Parameters:
offset- zero-based offset for the paged Raft member viewlimit- maximum number of Raft members to include- Returns:
- response with node ID, instance, port, running state, Raft state/term/leader, cluster members, and connection count
-
changeClusterState
@RolesAllowed("ADMIN") @PostMapping("/state") public org.springframework.http.ResponseEntity<Map<String,Object>> changeClusterState(@RequestBody @Nullable ClusterController.ClusterStateChangeRequest request) Change the cluster operational state.- Parameters:
request- requested state transition- Returns:
- response with previous and current state details
-
changeClusterVersion
@RolesAllowed("ADMIN") @PostMapping("/version") public org.springframework.http.ResponseEntity<Map<String,Object>> changeClusterVersion(@RequestBody @Nullable ClusterController.ClusterVersionChangeRequest request) Change the cluster version gate used during rolling upgrades.- Parameters:
request- requested cluster version- Returns:
- response with previous and current version details
-
resetCpSubsystem
-
listCpGroups
-
listCpSessions
-
forceCloseCpSession
@RolesAllowed("ADMIN") @PostMapping("/cp-subsystem/sessions/{sessionId}/force-close") public org.springframework.http.ResponseEntity<Map<String,Object>> forceCloseCpSession(@PathVariable String sessionId) Force-close a local CP session and release its tracked resources.- Parameters:
sessionId- session ID to close- Returns:
- response describing whether the session was closed or not found
-
forceLeaderStepDown
-
members
@RolesAllowed("ADMIN") @GetMapping("/members") public org.springframework.http.ResponseEntity<Map<String,Object>> members(@RequestParam(defaultValue="0") int offset, @RequestParam(defaultValue="100") int limit) Get cluster membership information.- Parameters:
offset- zero-based offset for the paged member viewlimit- maximum number of cluster members to include- Returns:
- response with list of all cluster members and count of alive members
-
health
Production health check endpoint.BLK-2026-04-22-008: this endpoint is intentionally unauthenticated (used by external probes). Previously it disclosed the
leaderfield, which lets any anonymous caller enumerate cluster topology. The leader detail has been removed; the unauthenticated response is now bare UP/DOWN. Authenticated callers can usehealthDetails()or/api/cluster/topologyfor leader information.Returns 200 OK with
{"status":"UP"}if: - The node is running - The Raft engine is running - The node knows who the leader is (or IS the leader)Returns 503 Service Unavailable with
{"status":"DOWN"}otherwise.- Returns:
- response with health status (no leader / topology details)
-
healthDetails
-