enyDyne API
.md

Client Registry

Server publishes client binaries bundled with current deployment. Registry endpoints are public and use lowercase client, kernel, and architecture names.

Current printer target is printer-linux-armv7:

GET /api/clients/printer/linux/armv7/latest
GET /api/clients/printer/linux/armv7/latest/download

Metadata response:

{
  "name": "printer",
  "kernel": "linux",
  "architecture": "armv7",
  "filename": "printer-linux-armv7",
  "sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
  "size": 1234567,
  "download_url": "/api/clients/printer/linux/armv7/latest/download"
}

Download and verify:

curl --fail --output printer "https://example.com/api/clients/printer/linux/armv7/latest/download"
sha256sum printer
chmod +x printer

Compare sha256sum output with metadata sha256. Latest URLs require cache revalidation and support HTTP range requests.

Build Registry

Build all configured clients locally:

just clients

Artifacts are written to clients/ as <client>-<kernel>-<architecture> plus exact .sha256 sidecars. Deployment rebuilds this directory inside server image. Server indexes file metadata at startup and streams binary from disk; binaries are not embedded in server executable or loaded into memory.