Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Represent IPFS Cluster in WebUI/Desktop #59

Open
3 tasks
olizilla opened this issue Jul 17, 2018 · 10 comments
Open
3 tasks

Represent IPFS Cluster in WebUI/Desktop #59

olizilla opened this issue Jul 17, 2018 · 10 comments
Labels
dif/medium Prior experience is likely helpful effort/weeks Estimated to take multiple weeks kind/enhancement A net-new feature or improvement to an existing feature need/analysis Needs further analysis before proceeding P3 Low: Not priority right now status/deferred Conscious decision to pause or backlog topic/design-front-end Front-end implementation of UX/UI work topic/design-ux UX strategy, research, not solely visual design topic/design-visual Visual design ONLY, not part of a larger UX effort

Comments

@olizilla
Copy link
Member

olizilla commented Jul 17, 2018

ETA April 2020: Let's also consider the "pinning buddy system" thoughts originally in #36 as one way to introduce Cluster concepts.

@hsanjuan made the good point that the IPFS Web UI could usefully show info about IPFS Cluster nodes if the api is available.

As we discussed about having a Cluster tab in the IPFS web UI, here are some pointers and thoughts.

Things we need

  • Support CORS Headers in Cluster for browsers to be happy showing stuff from here.
  • See my list of peers with their names and IDs (or a fancy diagram).
  • Display the pin statuses (/pins), filter, sort them etc. CIDs would have links to the IPLD explorer.

...and more input!

  • What extra info does cluster expose that we'd benefit from visualising?
  • What blockers are there to re-using the new Web UI with cluster today?
@lidel
Copy link
Member

lidel commented Jul 23, 2018

Here's an idea: how about making "Cluster UI" a proof-of-concept of the "WebUI Add-on Apps" Juan mentioned in recent conversations?

@olizilla
Copy link
Member Author

One couple of milestones for this could be

  • Web UI can show cluster info
  • Cluster gets its own web app that is focused on the needs of a sys-admin managing a professional set up

The current Web UI would remain focused on on-boarding new users to IPFS; the cluster UI could become the sys-admins dashboard for monitoring network conditions, managing access control, and visualising the balance of data across the nodes.

@olizilla
Copy link
Member Author

Also of note, cluster could be a good place to experiment with a streaming / websocket / graphql based api so we can build fancy live updating UIs without polling a restful api.

@hsanjuan
Copy link
Contributor

Hello, I will add CORS support for the next release.

The cluster page should show:

  • From /id
    • Current peer (name and peer ID)
  • From /allocations
    • List of pins and names and replication factors

The two above are local-peer commands. Non local peer commands extract information from other peers and may take longer to return if one of them is hanging:

  • From /peers: information about other peers in the cluster
  • From /pins: pin status list (same items as /allocations), with information about the item being pinned or pinning or error or remote in each peer. This may be an expensive call on very large pinsets.

Both /pins and /allocations support requesting single-item information by attaching /<cid> to the path.

I'm not sure if this should all be in a single tab, or in several. Probably it makes sense to be able to see the list of allocations and then if the user clicks on them show all the information for that CID.

@hsanjuan
Copy link
Contributor

Also of note, cluster could be a good place to experiment with a streaming / websocket / graphql based api so we can build fancy live updating UIs without polling a restful api.

For a while I wanted to have a streaming event API but that's going to need some time. It would be faster to provide a websocket API though, which just behaves more or less the same but taking request on a websocket connection. I don't know if this has any advantages though.

@hsanjuan
Copy link
Contributor

hsanjuan commented Nov 2, 2018

Hey all, Cluster 0.7.0 added [CORS] headers support to the API, so it should be possible to put the web ui on top and have it work nicely.

@vasa-develop
Copy link
Member

Hey!
I was working on something similar. Here is a POC of what I am building.

@ericronne ericronne added design topic/design-visual Visual design ONLY, not part of a larger UX effort and removed design labels May 22, 2019
@jessicaschilling jessicaschilling changed the title Web UI for IPFS Cluster Represent IPFS Cluster in WebUI/Desktop Apr 6, 2020
@jessicaschilling jessicaschilling added dif/medium Prior experience is likely helpful effort/weeks Estimated to take multiple weeks kind/enhancement A net-new feature or improvement to an existing feature need/analysis Needs further analysis before proceeding P3 Low: Not priority right now status/deferred Conscious decision to pause or backlog topic/design-front-end Front-end implementation of UX/UI work topic/design-ux UX strategy, research, not solely visual design labels Apr 6, 2020
@jessicaschilling
Copy link
Contributor

Linking here to (closed) issue #36 for thoughts on incorporating collaborative cluster nodes in our GUIs. Representing it as a "pinning buddy system" may be a good way to introduce the concept to those who aren't familiar with Cluster.

@jessicaschilling
Copy link
Contributor

Note recent ipfs/ipfs-desktop#1648 for request for this functionality. Revisiting after pinning service integration work is complete might be a good path forward.

@jessicaschilling
Copy link
Contributor

Cross-referencing ipfs/roadmap#85.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dif/medium Prior experience is likely helpful effort/weeks Estimated to take multiple weeks kind/enhancement A net-new feature or improvement to an existing feature need/analysis Needs further analysis before proceeding P3 Low: Not priority right now status/deferred Conscious decision to pause or backlog topic/design-front-end Front-end implementation of UX/UI work topic/design-ux UX strategy, research, not solely visual design topic/design-visual Visual design ONLY, not part of a larger UX effort
Projects
No open projects
Status: Needs Grooming
Development

No branches or pull requests

6 participants