Group: GNU Social P2P/Design/Agent2RemoteCore
Core to Core
Remember that values are opaque to Cores.
HTTP REST
A simple binding over HTTP REST. All {} enclosed structures are JSON encoded.
$route = { uri: $destURI }
enqueue
Notify a remote of a new value at a certain path.
$path_keys = [ $path_key* ]
path_keys is an array of encrypted path keys that would enable the friend's Agent to decrypt the value. It starts with a path_key encrypted with the friend's public key.
POST '/send', { route: $route, body: recipient, { path: $path, path_keys: $path_keys, value: $value, } }
result is:
{ success: true }
or
{ success: false, message: "why" }
get
Request the value at a certain path.
GET '/get', { route: $route, body: { friend_id: $friend_id, path: $path, } }
result is:
{ success: true, value: $value, $path_keys }
or
{ success: false, message: "why" }
scan
Request the paths at a subtree:
GET '/scan', { route: $route, body: { friend_id: $friend_id, path: $path, end_path: $end_path, max: $max, order: $order, } }
result is:
{ success: true, paths: [$path*], $path_keys }
or
{ success: false, message: "why" }