Skip to content

Latest commit

 

History

History
41 lines (33 loc) · 1.71 KB

PROTOCOL.md

File metadata and controls

41 lines (33 loc) · 1.71 KB

remotifyd server compatibility

RemotifyUI implements the protocol exposed by the checked-in remotifyd sources. The daemon creates outbound connections only.

Transport

  • Enrollment: POST /v1/devices, Bearer enrollment token, HTTP 201.
  • Connection: GET /v1/device-connections, Bearer device credential, X-Remotify-Shell-Type: sh|cmd|powershell.
  • WebSocket messages are binary and no larger than 131072 bytes.
  • A connection sends a heartbeat after 15 seconds and every 15 seconds after that.
  • Operations and queued responses are connection-owned and are never replayed.

Frame

0..2   type_id     u16 big-endian
2..4   version     u16 big-endian (1)
4..8   request_id  u32 big-endian, non-zero
8..10  status      u16 big-endian (0 ok, 3 failed)
10..   payload

Payload unsigned integers use LEB128. Strings and bytes use varuint(length) + bytes. Signed exit codes use ZigZag i32 followed by varuint. The optional exit-code marker is 0=present, 1=absent.

ID Direction Message
1 Server → device ExecRunRequest
2 Device → server ExecReport
3 / 4 Device → server / server → device Heartbeat request / response
5 / 6 Server → device / device → server File stat request / response
7 / 8 Server → device / device → server File upload request / response
9 / 10 Server → device / device → server File download request / response
11 / 12 Server → device / device → server Apply patch request / response

File directions are daemon-centric: type 7 uploads from the device to an HTTP URL; type 9 downloads an HTTP URL to the device. The UI instead says “retrieve from device” and “send to device”.