Dragon Wind Desktop — Native Electron uploader for Grass Valley AMPP/Dragon Wind. High-speed parallel file transfers to S3 via the Dragon Wind server. MASV/Aspera-style tray app.
Find a file
Zac e5f5255a41
Some checks failed
Build Dragon Wind Desktop / Linux (AppImage) (push) Failing after 8s
Build Dragon Wind Desktop / Create Release (push) Failing after 0s
feat: add dragon logo icons for window, tray, and taskbar (all platforms)
2026-04-08 22:48:18 -04:00
.forgejo/workflows ci: target self-hosted linux runner, comment out windows job until runner added 2026-04-06 23:28:25 -04:00
.github/workflows ci: fix — use npm install instead of npm ci (no lockfile) 2026-04-08 08:07:54 -04:00
assets feat: add dragon logo icons for window, tray, and taskbar (all platforms) 2026-04-08 22:48:18 -04:00
docs feat: initial Dragon Wind Desktop scaffold 2026-04-06 23:17:07 -04:00
src feat: add dragon logo icons for window, tray, and taskbar (all platforms) 2026-04-08 22:48:18 -04:00
.gitignore feat: initial Dragon Wind Desktop scaffold 2026-04-06 23:17:07 -04:00
package.json fix: remove unused @aws-sdk deps — ESM incompatible, not needed (raw HTTP used instead) 2026-04-08 08:30:16 -04:00
README.md feat: initial Dragon Wind Desktop scaffold 2026-04-06 23:17:07 -04:00

Dragon Wind Desktop

Native Electron desktop uploader for Dragon Wind / Grass Valley AMPP.

High-speed parallel file transfers to S3 — same approach as MASV and Aspera. No browser, no extension, no UDP firewall headaches.

How it works

Files are split into chunks and uploaded concurrently via presigned S3 PUT URLs. The Dragon Wind server orchestrates multipart uploads; the desktop app drives the data plane directly to S3.

User drops file
  → Dragon Wind server: POST /api/desktop/multipart/init
    ← uploadId + N presigned S3 PUT URLs
  → S3: PUT each chunk in parallel (N workers)
  → Dragon Wind server: POST /api/desktop/multipart/complete
    ← done ✅

Requirements

  • Node.js 18+
  • A running Dragon Wind server (v0.x or later with desktop API endpoints)
  • Electron 30+

Dev

npm install
npm run dev

Build

npm run build:mac    # DMG for macOS (x64 + arm64)
npm run build:win    # NSIS installer for Windows
npm run build:linux  # AppImage for Linux

Server-side additions needed

Add these endpoints to the Dragon Wind server.js:

  • POST /api/desktop/multipart/init — creates S3 multipart upload, returns presigned part URLs
  • POST /api/desktop/multipart/complete — completes the multipart upload
  • POST /api/desktop/multipart/abort — aborts on cancel/error

See docs/server-api.md for full spec.

Settings

Setting Default Description
Workers 6 Concurrent chunk uploads
Chunk size 16 MB Per-part size (min 5 MB, S3 limit)

Tune workers up on high-bandwidth links (50+ Mbps). Tune chunk size up for high-latency WAN to reduce round trips.