geist_supervisor-0.1.0 is not a library.
Visit the last successful build:
geist_supervisor-0.1.26
Roc Supervisor
The Roc Supervisor is the central orchestrator for the Geist ecosystem. A Rust-based tool that manages the update process, debugging, and runtime control of the Geist and associated applications.
Key Features
-
Unified Updates:
- Ensures all components (Geist binaries, Roc Camera App, microcontroller firmware) are updated simultaneously to a single unified version.
-
Update Process:
- Automatically verifies and applies updates for:
- Geist binaries.
- Roc Camera App binaries.
- Microcontroller firmware.
- Ensures integrity with checksum and signature validation.
- Restarts all services in the correct order after updating.
- Automatically verifies and applies updates for:
-
Bootloader and Self-Update:
- Acts as the bootloader for the Geist application, the Roc Camera App, and any future firmware components.
- The only application that can self-update over the network.
Workflow
Unified Update Workflow
-
Version Check:
- The Roc Camera App checks its version against the network repository (e.g., Artifactory).
- If an update is available, it requests the Geist Supervisor to handle the update.
-
Initiating Update:
- The Roc Supervisor downloads all artifacts (Geist binaries, Roc Camera App binaries, microcontroller firmware) for the requested version.
-
Verification:
- Validates the integrity of all downloaded artifacts using checksums and cryptographic signatures.
-
Update Application:
- Replaces the binaries for the Geist and Roc Camera App.
- Flashes microcontrollers (if applicable).
-
Service Restart:
- Restarts components in the correct order:
- Flash microcontrollers first.
- Restart the Geist software.
- Restart the Roc Camera App.
- Restarts components in the correct order:
Debugging and Runtime Management
- Start, stop, and manage nodes in Geist.
- Echo topics to the console for debugging.
CLI Commands
The command line interface is built using clap. It should just be geist <command>
.
Update Commands
geist update <version>
: Updates all components (Geist, Roc Camera App, microcontroller firmware) to the specified version.geist verify <version>
: Verifies that all artifacts for a given version are available and valid.geist rollback <version>
: Rolls back to a previous known-good version.cargo binstall roc_supervisor
: Installs the Geist Supervisor to the system.
Directory Structure for Updates
Artifacts are hosted in a central location (e.g., Artifactory, S3 bucket) with the following structure:
- TBD