Hubs-Foundation / hubs-cloud

Resources for self hosted Hubs Cloud instances
Mozilla Public License 2.0
151 stars 92 forks source link

Provide option to allow admins to see all rooms on their stack #142

Open camelgod opened 3 years ago

camelgod commented 3 years ago

So one of our use cases for hubs-cloud is very room-based, and it would be nice to be able to see all rooms ever created so we can make sure to close them again when not in use. Admins could be able to see a list of rooms, including those not public. This is also useful for my custom bot scripts that they can find and support users in private rooms.

┆Issue is synchronized with this Jira Task

rawnsley commented 3 years ago

It's worth noting that empty rooms consume no resources; they are basically just a few bytes in a database table. Also a list of "all rooms" would become unwieldy quite quickly, requiring pagination and search tools.

I would suggest an event-driven system might suit your needs better. An event that fired when a user enters a room would allow your bot or human support representative to join and support them.

camelgod commented 3 years ago

@rawnsley That is true, but even though they consume no resources, we don't want people back into rooms after a certain session has expired. We currently have no way to track if users are re-using old rooms or not, and need to manually keep track of rooms that are created and when/if they are closed.

Maybe room options such as start and stop date would also be cool to explore. We only have about 10 rooms or so at the same time, so it is not too wild, but if this is a "feature" I suppose you need some tools. Just exposing a paginated api without a frontend would be really really useful, as almost every single thing on our hubs-cloud except reticulum is basically customized. Our main painpoint now is if someone forgets to put a room to public and forgets the link, we might lose it forever and people can use it when they are not supposed to.

rawnsley commented 3 years ago

Gotcha. Hopefully the upcoming API will support this sort of thing.

I would still be inclined to make it event based. For instance, you could close a room once the last person leaves. We have this exact requirement as well actually, but no easy way to deliver it.

camelgod commented 3 years ago

@rawnsley Yeah that would be nice to do with the upcoming api. Did not think about that. Our workflow is basically:

A room can last throughout an entire day, multiple days (for multi-phase workshops, events etc.) and people can join and leave for breaks etc. Therefore having it event based and at the same time work with very varied use cases can be a bit tricky. Would be easier for our admins to just close them (or have them timed closing. We actually use the invite only links and revoke them right now per "session" so we dont have too many rooms. Maybe I can rewrite my bot system to revoke / close rooms automatically at a set date, but that would require alot of work for something that could be just a list.

I think the upcoming api will do the trick :) But I will keep this issue open so they can see it and maybe work it into graphql.