This repository has been archived by the owner on Jan 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Example Holium Node ecosystem data flow
dolled-possum edited this page Jun 13, 2023
·
9 revisions
- Jane, who is a user with one ship (~simpel-marbus), launches their Realm desktop client. They've used it before, so it's already properly configured to connect to ~simpel-marbus's Holium Node's URL; all they need to do is input their PIN.
- The Realm desktop client is able to the ~simpel-marbus's Holium Node, and the client issues a my-node-details request.
- ~simpel-marbus's Holium Node responds with the following:
{
"node": "simpel-marbus-node",
"node_token": "ey037428374.ey234298739832987423234.ey18238",
"address": "https://simpel-marbus-node.third.earth",
"linked_ship": "~simpel-marbus",
"current_time": 1686320950,
"spaces": [
{
"name": "simpel-marbus",
"space_token": "ey037428374.ey234298739832987423234.ey18238",
"description": "(default space created by Holium Node)",
"image": "https://simpel-marbus-node.third.earth/assets/images/default_space_avatar.jpg",
"most_recent_response": 1686320936,
"host": "simpel-marbus-node",
"privacy": "private",
"membership_status": "owner"
},
{
"name": "Abacus Collector",
"space_token": "ey0374236891.ey23429892389708d832938.ey83y",
"description": "A public community of abacus enthusiasts sharing their collections and tips",
"image": "https://nyc1.spaces.digitalocean.com/sampel-ritdev/hittite_abacus_glamor_shot.jpg",
"most_recent_response": 1686320915,
"host": "sampel-ritdev-node",
"privacy": "public",
"membership_status": "member"
},
]
}
- The Realm Client can display a Spaces chooser, or automatically default to one, or the last one accessed, or whatever. It can also decorate each individual entry with a "staleness" indicator depending upon how long it has been since the information was retrieved.
- The Realm Client now follows with a my-space-details request for Abacus Collector (probably by some ID not shown in the above response, would be preferable to just a Space name)
- The ~simpel-marbus's Holium Node (even though the information is about a Space hosted by ~sampel-ritdev, it's ~simpel-marbus's Holium Node that has retrieved all of the details and it serving it to its Realm clients) responds with the following:
{
"members": [
{ "id": "~pidful-dolzod", "last_activity": "1686320915", "nickname": "James", "avatar": <snip>},
{ "id": "~piddev-marbus", "last_activity": "1686318008", "nickname": "tinstreamer 3555", "avatar": <snip>},
{ "id": "~gampel-filter", "last_activity": "1686319544", "nickname": "Dylan Vittozzi", "avatar": <snip>},
...
],
"services": [
{ "chat": [
{ "id": "Abacus Repair", "style": <some CSS or whatever>, "avatar": <snip>},
{ "id": "Unusual Abacuses", "style": <some CSS or whatever>, "avatar": <snip>}
]
},
{ "videocollab": [
{ "id": "Abacus Arithmetic Speed Competition", "style": <some CSS or whatever>, "avatar": <snip>}
]
},
{ "filesharing": [
{ "id": "Abacus Repair Hell", "style": <some CSS or whatever>, "avatar": <snip>},
{ "id": "Most Beautiful Abacuses", "style": <some CSS or whatever>, "avatar": <snip>}
]
},
]
}
- The Realm Client can now show all of the interactive options for the Space, and who else has been in the Space.
- Jane clicks to see details of the Unusual Abacuses chat. This causes the Realm Client to make a my-space-service-details request for the Abacus Collector space's chat:"Unusual Abacuses" instance.
- The Holium Node responds with everything that the Chat renderer needs to connect to the chat. (Sample payload not included, but would definitely include a URL, maybe a list of participants, who knows what else.)
- Clicks "join chat" which results in the Chat renderer connecting to that URL passing the Abacus Collector "space_token" in the header to connect. etc.