Skip to content

feat(api): migrate to api.armbian.com REST v1#129

Merged
SuperKali merged 6 commits intomainfrom
feat/api-armbian-migration
Apr 15, 2026
Merged

feat(api): migrate to api.armbian.com REST v1#129
SuperKali merged 6 commits intomainfrom
feat/api-armbian-migration

Conversation

@SuperKali
Copy link
Copy Markdown
Member

This branch migrates the imager's data layer from the legacy github.armbian.com/armbian-images.json dump to the new structured api.armbian.com/api/v1 REST API. Boards, images, and vendors are now served via dedicated, paginated endpoints, which lets us drop a lot of the ad-hoc parsing and grouping logic and rely on fields the API already provides (support_tier, format, companions, display_variants).

On the backend, a shared HTTP client sends the X-Armbian-Client header on every call, uses a short 10s timeout for metadata (keeping the long timeout only for image downloads), and hardens the integration with error_for_status, proper URL-encoded query params, paginated board fetch with an empty-page break and a hard safety cap, plus atomic JSON cache writes with a unique tmp suffix. The disk cache remains the offline fallback and is now populated from the REST responses. Picture-cache prepopulation and background refresh also flow through the new board and vendor lists.

On the frontend, the types (BoardInfo, ImageInfo, the new VendorInfo), IPC wrappers, image modal, board badges, vendor logo loading, and the QDL/flash hook are all updated to consume the REST schema. Routine tracing logs were demoted to debug level so uploaded session logs stay readable; user-facing events (flash start/end, device add/remove, authorization, errors) remain at info.

Replace github.armbian.com/armbian-images.json with the structured
REST API. Adds ApiBoardSummary / ApiImage / ApiVendor models plus a
shared HTTP client with the X-Armbian-Client header, paginated board
fetch, disk cache fallback, and atomic cache writes.
Route get_boards, get_images_for_board, and get_vendors through the
new API data layer, backed by AppState caches. Update the scraping
helper to use api.armbian.com asset paths, and apply remaining
client-side filters (stability, preinstalled application) on top of
server-side filtering.
Rework prepopulate_assets and refresh_stale_assets to source board
slugs and vendor logos from the new API endpoints, using the proper
size segment for each asset kind. Drop the legacy images JSON cleanup
path from main startup.
Update custom image board detection, download/flash operations, and
system helpers to consume the REST-based BoardInfo type. Demote
routine tracing logs to debug level to reduce log-file noise while
keeping user-facing events at info.
Introduce VendorInfo, refresh BoardInfo/ImageInfo to match the
ApiBoardSummary/ApiImage shape (support_tier, companions, display
variants, format field), and update useTauri invokers plus shared
utilities to the new field names.
Adapt ImageModal, BoardBadges, FlashProgress, vendor logo loading,
and the flash operation hook to the new support_tier / format /
companions fields exposed by the REST API. Ensures QDL detection
and badge rendering stay in sync with the backend migration.
@github-actions
Copy link
Copy Markdown

🧪 Test Builds

Version: 0.0.0-pr.129 | PR: #129 | Status: ready for testing

Platform Download
Linux x64 📦 .deb / .AppImage
Windows x64 📦 .exe
macOS ARM64 📦 .dmg
ℹ️ About these builds
  • 🔓 Public downloads via nightly.link (no GitHub login required)
  • ⚠️ Unsigned builds for testing purposes only
  • Expires in 7 days
  • 🔄 Updated on every push to this PR

@github-actions github-actions bot added the status: ready for review Ready to be reviewed label Apr 15, 2026
@SuperKali SuperKali merged commit aabb28c into main Apr 15, 2026
8 of 9 checks passed
@SuperKali SuperKali deleted the feat/api-armbian-migration branch April 15, 2026 20:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: ready for review Ready to be reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant