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

Discussion on Exploration and Design of Hubs Extensibility #1976

Open
misslivirose opened this issue Dec 16, 2019 · 8 comments
Open

Discussion on Exploration and Design of Hubs Extensibility #1976

misslivirose opened this issue Dec 16, 2019 · 8 comments
Labels

Comments

@misslivirose
Copy link
Contributor

Background
With the work that we've done to launch Hubs Cloud, we anticipate that one of the next needs that will derive from having a straightforward, endorsed, and consistent manner for external parties to extend Hubs to support their specific use cases. This issue and discussion will track the work that we believe needs to happen to create a path forward for users who want to more easily customize forks of Hubs to be deployed.

Describe the solution you'd like
As a developer, I would like to have a consistent path where I can modify a client fork of Hubs. This would include access to a set of APIs (for example, perhaps a way that I can add a custom button to the HUD, remove existing buttons, create new /commands) that would reliably be supported across future updates to the platform and loaded in such a way that maintaining my fork of Hubs would not be excessively difficult. There are additional other development scenarios that should be considered as part of an extensibility story:

  • Third-party authentication and chat platform integrations
  • Building third-party applications that perform a set of server commands (for example, automatically creating rooms with a Google Calendar integration [Create a GCal Integration to use Hubs rooms as a meeting location #1661], or changing scenes every N minutes)
  • Creating custom components that have a networked room element (for example, GitHub issues printed as text that pulls from a repository, photo galleries that update on an interval)

Exclusions
In the first pass around design and extensibility, we will likely not be enabling the execution of third-party code arbitrarily in the client

Relation to Interactive Components
In parallel with any work that we do to facilitate extensibility, we should also consider relevant work that is or can be done with Spoke custom components

@misslivirose misslivirose added enhancement work that enhances an existing feature discussion Let's talk about this! labels Dec 16, 2019
@misslivirose misslivirose modified the milestones: H1 2020 Planning, H1 2020 Dec 16, 2019
@blairmacintyre
Copy link

Given hubs foundation on a variation of AFrame, I would like to be able to create new components to do arbitrary things. Is "execution of third party code" explicitly rejecting this?

One thing I'd like is to have the ability to move from room to room within my self-hosted instance with as little friction as possible (e.g., if I follow a link from one hubs room to another in my own instance, I would like to eliminate as much of the entry/permission flow as possible, especially if the person has given mic permissions for the domain).

@misslivirose misslivirose modified the milestones: H1 2020, Q2 Considerations Mar 31, 2020
@misslivirose
Copy link
Contributor Author

Notes from Dom:

One consideration here - discussion of the home page / configuring the home page for Hubs Cloud since it could be deployed without the rest of Hubs.

Additional thoughts: Shipping public APIs

@robertlong
Copy link
Contributor

robertlong commented Mar 31, 2020

Additional public APIs we may need:

  • Bulk account / room creation APIs
  • Role based permissions
  • CRUD APIs for most resources we have in Reticulum

APIs that are only available via Phoenix channel should also have a REST API

@blairmacintyre
Copy link

It seems there are two distinct parts here

  • things that involve extending hubs itself (which I was talking about above)
  • things that allow extensibility externally (APIs, more powerful admin panels and permissions)

In addition to REST and CRUD APIs, we need some connection oriented APIs to allow rapid and efficient status updates (e.g., I want to know the status of 100's of rooms and be able to show them on a web page like the VR 2020 page ... REST isn't going to cut it).

@blairmacintyre
Copy link

Another thing I would add:

  • the ability to load scenes from external URLs.

Originally this was possible, and a lot of interesting possibilities where available, especially for verticals where rooms would benefit from (or need to be) generated dynamically from app-specific data.

For VR, I could have generated all the poster rooms, and all the viewing rooms, completely dynamically, from some google spreadsheets and a small node server running on AWS. It would have made things dramatically easier.

A lot of my personal uses need this (or would benefit from it) too. Combined with all the APIs, it would be really easy to have a single server display the user facing pages, provide UI for managing data, and generate rooms from that data.

@misslivirose misslivirose removed the enhancement work that enhances an existing feature label Mar 31, 2020
@robertlong robertlong self-assigned this Apr 1, 2020
@Charlesc22
Copy link

Dynamically generated rooms is something we would also want to be able to do.
We also need more options for Role base permissions that can also be dynamically assigned.

@blairmacintyre
Copy link

I'll second dynamic room generation (some sort of API), and more permissions. The academic (K12 and college) use cases require us to be able to create rooms programmatically, and to control who has access to individual rooms based on classes registered for, teams, etc.

@misslivirose misslivirose modified the milestones: Q2 Planned, Q3 Planned Jul 17, 2020
@robertlong robertlong modified the milestones: Q3 Planned, Q3 Sprint 1 Jul 20, 2020
@robertlong robertlong removed their assignment Jul 20, 2020
@robertlong robertlong modified the milestones: Q3 Sprint 1, Q3 Sprint 2 Aug 3, 2020
@joshmarinacci joshmarinacci modified the milestones: Q3 Sprint 2, Q3 Planned Aug 3, 2020
@thomasmo
Copy link

thomasmo commented Dec 14, 2020

Note: it could be good to include folks from Firefox addons team for lessons learned that could be helpful for Hubs :-)
https://github.com/zombie would probably be a good start

@misslivirose misslivirose removed this from the Q3 Planned milestone Jan 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants