pub struct RedundancyStatusWire {
pub role: String,
pub project_state: Option<String>,
pub activity_level: Option<String>,
pub local_id: Option<String>,
pub peer_id: Option<String>,
pub peer_connected: bool,
pub has_config_access: bool,
pub sync_pending: bool,
pub failover_pending: bool,
pub uptime: Option<i64>,
pub last_sync_timestamp: Option<i64>,
pub extra: BTreeMap<String, Value>,
}Expand description
GET /data/api/v1/redundancy — the redundancy status. Live-captured
200 on BOTH rigs (09-LIVE-CAPTURES §3); byte-shape identical, values
differ only in localId + uptime.
Fields§
§role: String"Independent" (both fresh rigs) / "Master" / "Backup" (the
live pair, block C-S3). Configuration only: it does not say
which node is active (see active_node). A String on purpose:
an unknown future role must ride, not refuse.
project_state: Option<String>"Unknown" on both captures (a fresh Independent rig has no
project state to report).
activity_level: Option<String>"Active" on the serving node, "Cold" on the standby (block
C-S3); "Active" on both fresh Independent rigs. Moves on
failover while role stays fixed.
local_id: Option<String>This gateway’s id — the container IP on both captures
(203.0.113.22 / 203.0.113.12).
peer_id: Option<String>The peer’s id — ABSENT on both fresh-rig captures (no peer exists); the flat research shape documents it, so it rides Option. Peer-connected shapes were NOT capturable on a single fresh rig — everything peer-shaped stays Option/lenient.
peer_connected: boolfalse on both captures (no peer on a fresh rig).
has_config_access: booltrue on both captures (an Independent gateway owns its config).
sync_pending: boolfalse on both captures.
failover_pending: boolfalse on both captures.
uptime: Option<i64>Milliseconds since gateway (JVM) start — capture-proven by wall-clock cross-check on BOTH rigs (module doc; 09-LIVE-CAPTURES §3). Option: present on both captures, defaulted for tolerance.
last_sync_timestamp: Option<i64>Epoch-ms (block C-S3: 1791586091827 on a live 8.3.6 pair);
-1 is the NEVER-SYNCED sentinel (both fresh Independent
rigs). Use Self::last_sync_epoch_ms — raw -1 rides here,
never misread as a real timestamp.
extra: BTreeMap<String, Value>Unknown keys round-trip (version tolerance).
Implementations§
Source§impl RedundancyStatusWire
impl RedundancyStatusWire
Sourcepub fn last_sync_epoch_ms(&self) -> Option<i64>
pub fn last_sync_epoch_ms(&self) -> Option<i64>
lastSyncTimestamp normalized: the -1 sentinel (“never
synced” — both fresh rigs) and absent keys → None; a
non-negative value is epoch-ms (block C-S3).