Overview
EdgeFlow supports Over-the-Air (OTA) firmware updates from the cloud. Firmware binaries are uploaded to S3-compatible storage (MinIO/AWS S3), verified with SHA256 checksums, and distributed to devices via time-limited presigned URLs. Updates can target individual devices or entire fleets using rolling and canary strategies.
Update Flow
Cloud Device
│ │
│ 1. Upload firmware binary to S3 │
│ (SHA256 checksum verification) │
│ │
│ 2. Initiate OTA update │
│ (target device or fleet) │
│ │
│ 3. Send update command via tunnel │
│────────────────────────────────────────>│
│ │
│ 4. Device downloads firmware │
│ (presigned URL, 1hr expiry) │
│ │
│ 5. Verify checksum │
│ │
│ 6. Apply update and reboot │
│ │
│ 7. Report new version │
│<────────────────────────────────────────│
│ │
│ 8. Update device record │ Firmware Storage
Firmware binaries are stored in S3-compatible object storage with organization-scoped paths:
# S3 key format
firmware/{organization_id}/{version}/{sha256_checksum}.bin
# Example
firmware/org_xyz789/1.3.0/a1b2c3d4e5f6...abc.bin Upload Requirements
- Binary firmware file (.bin format)
- SHA256 checksum for integrity verification
- Semantic version number
- Release notes (optional)
Update Strategies
Single Device Update
Update a specific device to a target firmware version:
- Checks current firmware version on device
- Verifies device is online and reachable
- Generates presigned download URL (1-hour expiry)
- Queues update job via async worker
Bulk Fleet Update
Update multiple devices using deployment strategies:
| Strategy | Description |
|---|---|
| All-at-Once | Push firmware to all target devices simultaneously |
| Rolling | Update devices in sequential batches |
| Canary | Update a small percentage first, then the rest |
Update Status
| Status | Description |
|---|---|
idle | No update in progress |
updating | Firmware download/install in progress |
completed | Update applied successfully |
failed | Update failed (device remains on previous version) |
OTA Device Record
{
"device_id": "dev_abc123",
"current_version": "1.2.3",
"target_version": "1.3.0",
"ota_status": "updating",
"progress": 65,
"last_update_at": "2026-02-21T12:00:00Z"
} Rollback
If an update fails or causes issues, EdgeFlow supports rolling back to the previous firmware version. The rollback process re-initiates an OTA update using the last known good firmware binary, which remains stored in S3.
Force Update
By default, OTA updates skip devices already running the target version. Use the force flag to override version checks and re-apply the firmware, useful for recovering from corrupted installations.
Security
- SHA256 Checksums — Every firmware binary is verified before and after download
- Presigned URLs — Download links expire after 1 hour
- Organization Scoping — Firmware is isolated per organization in S3
- TLS Transport — All downloads use HTTPS