The recovery graph models entity relationships for dependency analysis, impact analysis, and recovery planning.
| View | Purpose |
|---|---|
| Dependency graph | Upstream dependencies (depends_on, consumes, controls) |
| Impact graph | Downstream entities affected by a failure |
| Recovery graph | Critical recovery paths |
Mission → Robot → Camera → Firmware → Provider → Package → Gateway → Cloud
use spanda_recovery::build_recovery_graph;
let graph = build_recovery_graph(®istry, Some("robot-1"));
let (upstream, downstream) = spanda_recovery::analyze_impact(&graph, "camera-1");
spanda recovery graph rover.sd --entity robot-1 --json
GET /v1/recovery/graph?entity_id=robot-1
GET /v1/recovery/recoverable-entities — list entities from the orchestrator registry (program
robots overlaid when a program is loaded).
client.get_recovery_graph(Some("robot-1"))?;
client.list_recoverable_entities()?;
client.get_recovery_graph("robot-1")
client.list_recoverable_entities()
await client.getRecoveryGraph("robot-1");
await client.listRecoverableEntities();
The Recovery tab in @davalgi-spanda/web RecoveryPanel loads /v1/recovery/graph and
displays nodes and dependency/impact edges in tables alongside plan, simulate, and execute
workflows. Role-gated actions require a Bearer token with Operate permission.