Deployment Platform/Sneakernet/Packets format
Packets format
Packets are tarball files with .packet
suffix.
On logic level, every packet consists of:
- one header, a dictionary of key-value pairs;
- records, a dictionary of key-value pairs and optional data depending on record type.
Header
Header is being stored in JSON notation in /header
file in packet tarball.
src
, sender's GUIDdst
, optional destination GUIDfilename
, suggested file name for packet file, it is assumed to be unique
Record types
Push changes of Sugar Network resource's properties.
cmd: sn_push
;content_type: records
;document
, Sugar Network resource to push diff to;guid
, document GUID to push diff for;diff
, dictionary of<prop_name>: {"value": <value>, "mtime": <mtime>
} with changed property values.
ACK packet:
type
:ack
src
: master's identitydst
: receiver's identity ack is intended forpush_sequence
: original PUSH packet's sequencepull_sequence
: Sequence after merging original PUSH packet
Pull Sugar Network data.
cmd: sn_pull
;sequence
: sequence to pull.
Pull files from shared directory.
cmd: files_pull
;directory
, synchronized directory to pull;sequence
, sequence to pull.
Push a file from shared directory.
cmd: files_push
;directory
, synchronized directory;path
, pushed file path relative todirectory
;
Push deleted file from shared directory.
cmd: files_delete
;directory
, synchronized directory;path
, pushed file path relative todirectory
;
Commit recently pushed shared files.
cmd: files_commit
;directory
, synchronized directory;sequence
, pushed sequence.