Rooms/Workspaces #3484

Closed
opened 2026-02-05 06:51:47 +03:00 by OVERLORD · 4 comments
Owner

Originally created by @oblivioncth on GitHub (Feb 1, 2023).

Describe the feature you'd like

A final outer layer that better encapsulates a user's content/collection and perhaps has a focus on user access permissions.

Describe the benefits this would bring to existing BookStack users

I know Dan generally doesn't like these ideas, but here we go...

Most requests I've seen about expanding levels have focused on sub-chapters, or adding theoretically infinite nesting of shelves-in-shelves. I don't want either of those, and overall like the tier system that BookStack has. I like that it keeps thing from spiraling out of control and that once you're in a book, the rest of the outer hierarchy isn't visible because it isn't relevant.

The current tiers work perfectly for me... as one user. My issue, is that while I know a lot of people use software like this for collaboration, I'd actually prefer if there was a way to better segment users, so that I can self-host this in a way that's a bit more like Google Drive/Docs.

Correct me if I'm wrong, but I believe the way it works now is that if a user has read access to another users shelf (or anything for that matter), it will appear in their shelf list when they go to the Shelves view. That right there basically sums up my "problem". I think it would be great if you could better encapsulation of each user/group of users while still allowing for collaboration/sharing.

If something like Rooms existed, each user/group could have a dedicated space where they can make use of the current tier system (Shelf, Book, Chapter, Page). They then could selectively expose portions of their Rooms to other users, with those users needing to select that Room to see everything under it. To be clear, I mean that all "things" that are accessible to you but owned by other people will stay within the "Room" level, so that your own workspace is never polluted.

I'd enjoy this as I basically want to self-host this in a way that not only I, but my friends/families can create their own "Libraries", sharing them as they desire, but largely having one to each call their own. I wouldn't want to share a shelf with someone and then have that person go their shelf view only to always have to see mine rearing it's ugly head when they might not want it there all the time, messing with organization. Instead, they would have to visit my Room/Workspace/Library/Whatever-you-want-to-call-it to view that content. Existing users that prefer everything being merged into one massive library can simply have one Room and basically ignore the feature. Furthermore, you could have rooms that set to be entirely shared by a group of people that are all working on the same project, while they still maintain their own private (or partially private) Rooms.

It would also be a good place have dedicated access permissions, allowing one to simply deny or allow access to their entire room for a given user. I'd imagine this would cover all sub-content, unlike with shelves/books.

Can the goal of this request already be achieved via other means?

  • I could basically treat shelves as they exist now as these "Rooms", but then each user basically looses an entire layer and is down to just Books and chapters. Not something I'd want to live with.

  • Run multiple instances of the software. Really ugly, inefficient, massive duplication of user credentials, and messes up collaboration when you want it. Idk... maybe it wouldn't be that bad, and is how stuff like this goes (i.e. Jira), but I'm not a commercial business so it just feels messy.

Both options ultimately significantly gimp usage of the software.

A less complete, but somewhat decent alternative would be if there was an option to quickly filter out content that isn't owned by you when looking at any of the given existing tiers.

Have you searched for an existing open/closed issue?

  • I have searched for existing issues and none cover my fundemental request

How long have you been using BookStack?

Not using yet, just scoping

Additional context

Sorry to harras you with yet another layer request... i have seen your thoughts on this in general, but none of the request that I could fine were quite this specific so I figured I'd try anyway. Thanks for the awesome software!

Originally created by @oblivioncth on GitHub (Feb 1, 2023). ### Describe the feature you'd like A final outer layer that better encapsulates a user's content/collection and perhaps has a focus on user access permissions. ### Describe the benefits this would bring to existing BookStack users I know Dan generally doesn't like these ideas, but here we go... Most requests I've seen about expanding levels have focused on sub-chapters, or adding theoretically infinite nesting of shelves-in-shelves. I don't want either of those, and overall like the tier system that BookStack has. I like that it keeps thing from spiraling out of control and that once you're in a book, the rest of the outer hierarchy isn't visible because it isn't relevant. The current tiers work perfectly for me... as one user. My issue, is that while I know a lot of people use software like this for collaboration, I'd actually prefer if there was a way to better segment users, so that I can self-host this in a way that's a bit more like Google Drive/Docs. Correct me if I'm wrong, but I believe the way it works now is that if a user has read access to another users shelf (or anything for that matter), it will appear in their shelf list when they go to the Shelves view. That right there basically sums up my "problem". I think it would be great if you could better encapsulation of each user/group of users while still allowing for collaboration/sharing. If something like Rooms existed, each user/group could have a dedicated space where they can make use of the current tier system (Shelf, Book, Chapter, Page). They then could selectively expose portions of their Rooms to other users, with those users needing to select that Room to see everything under it. To be clear, I mean that all "things" that are accessible to you but owned by other people will stay within the "Room" level, so that your own workspace is never polluted. I'd enjoy this as I basically want to self-host this in a way that not only I, but my friends/families can create their own "Libraries", sharing them as they desire, but largely having one to each call their own. I wouldn't want to share a shelf with someone and then have that person go their shelf view only to always have to see mine rearing it's ugly head when they might not want it there all the time, messing with organization. Instead, they would have to visit my Room/Workspace/Library/Whatever-you-want-to-call-it to view that content. Existing users that prefer everything being merged into one massive library can simply have one Room and basically ignore the feature. Furthermore, you could have rooms that set to be entirely shared by a group of people that are all working on the same project, while they still maintain their own private (or partially private) Rooms. It would also be a good place have dedicated access permissions, allowing one to simply deny or allow access to their entire room for a given user. I'd imagine this would cover all sub-content, unlike with shelves/books. ### Can the goal of this request already be achieved via other means? - I could basically treat shelves as they exist now as these "Rooms", but then each user basically looses an entire layer and is down to just Books and chapters. Not something I'd want to live with. - Run multiple instances of the software. Really ugly, inefficient, massive duplication of user credentials, and messes up collaboration when you want it. Idk... maybe it wouldn't be that bad, and is how stuff like this goes (i.e. Jira), but I'm not a commercial business so it just feels messy. Both options ultimately significantly gimp usage of the software. A less complete, but somewhat decent alternative would be if there was an option to quickly filter out content that isn't owned by you when looking at any of the given existing tiers. ### Have you searched for an existing open/closed issue? - [X] I have searched for existing issues and none cover my fundemental request ### How long have you been using BookStack? Not using yet, just scoping ### Additional context Sorry to harras you with yet another layer request... i have seen your thoughts on this in general, but none of the request that I could fine were quite this specific so I figured I'd try anyway. Thanks for the awesome software!
OVERLORD added the 🔨 Feature Request label 2026-02-05 06:51:47 +03:00
Author
Owner

@ssddanbrown commented on GitHub (Feb 1, 2023):

Thanks for the request.

So this request really desires an extension of the core content hierarchy, in addition to significant changes/additions changes to permission options/handling. Additionally, this is very focused on a particular use-case (Partitioned usage within a single instance) that we haven't specifically built for nor do we target. while some features can help emulate that setup, BookStack is primarily built as a single shared collaborative environment and expanding our scope beyond this blurs our focus, making platform decisions harder and implementation/maintenance more complex as we try to ensure we're meeting multiple specific use-cases.

I really don't want to make the permission model any more complex as it's already fairly complex to handle. I'm saying this having wasted most of the last release cycle on failed permissions changes, and reviewing of complex permission scenarios.

In regards to the hierarchy element, again it seems to me like "Just one more level". We'd implement this, it'd complicate UX and add system complexity & maintenance support dept, then the same request would soon pop-up. I still don't see it being worthwhile.

To be honest, it sounds like item-level user permissions (#1747) would get you most of what you need.
To be clear, I respect why you want what you ask for and that you have that need, but I have to balance that against cost (support, maintenance, implementation) of both the feature you desire in addition to the expansion of scope, and those costs for exactly what is requested here are very high and not something I'd see as worthwhile/reasonable to support.

@ssddanbrown commented on GitHub (Feb 1, 2023): Thanks for the request. So this request really desires an extension of the core content hierarchy, in addition to significant changes/additions changes to permission options/handling. Additionally, this is very focused on a particular use-case (Partitioned usage within a single instance) that we haven't specifically built for nor do we target. while some features can help emulate that setup, BookStack is primarily built as a single shared collaborative environment and expanding our scope beyond this blurs our focus, making platform decisions harder and implementation/maintenance more complex as we try to ensure we're meeting multiple specific use-cases. I really don't want to make the permission model any more complex as it's already fairly complex to handle. I'm saying this having wasted most of the last release cycle on failed permissions changes, and reviewing of complex permission scenarios. In regards to the hierarchy element, again it seems to me like "Just one more level". We'd implement this, it'd complicate UX and add system complexity & maintenance support dept, then the same request would soon pop-up. I still don't see it being worthwhile. To be honest, it sounds like item-level user permissions (#1747) would get you most of what you need. To be clear, I respect why you want what you ask for and that you have that need, but I have to balance that against cost (support, maintenance, implementation) of both the feature you desire in addition to the expansion of scope, and those costs for exactly what is requested here are very high and not something I'd see as worthwhile/reasonable to support.
Author
Owner

@oblivioncth commented on GitHub (Feb 2, 2023):

Well thank you for taking the time to respond and elaborate. I understand your need to be realistic when it comes to new features.

The issue you linked to would definitely move things a bit closer to how I envisioned them; however, what would really tie things together if I made use of that (in lieu of "Rooms"), is a "My Content Only" filter as I touched on at the very end.

Nothing fancy at all. Could be as simple as a checkbox at the top or two the sides that says "Created by Me", that when checked will hide content not owned by you.

I figure that might be more realistic to add, even if it's down the road?

@oblivioncth commented on GitHub (Feb 2, 2023): Well thank you for taking the time to respond and elaborate. I understand your need to be realistic when it comes to new features. The issue you linked to would definitely move things a bit closer to how I envisioned them; however, what would really tie things together if I made use of that (in lieu of "Rooms"), is a "My Content Only" filter as I touched on at the very end. Nothing fancy at all. Could be as simple as a checkbox at the top or two the sides that says "Created by Me", that when checked will hide content not owned by you. I figure that might be more realistic to add, even if it's down the road?
Author
Owner

@ssddanbrown commented on GitHub (Feb 2, 2023):

Such an option is still outside of our core focused use-case though, so is something I'd considered as out of scope.
If it helps, you can use {created_by:me} in search inputs right now to do filtering, it's just that I wouldn't look to bring that to other interface lists.

@ssddanbrown commented on GitHub (Feb 2, 2023): Such an option is still outside of our core focused use-case though, so is something I'd considered as out of scope. If it helps, you can use `{created_by:me}` in search inputs right now to do filtering, it's just that I wouldn't look to bring that to other interface lists.
Author
Owner

@oblivioncth commented on GitHub (Feb 2, 2023):

The fact that there's a least a simple check box for this under Advanced Search that works without having to actually enter a text query means that ultimately I can see what I desire, even if it's not as much of a first class feature as I'd prefer.

I suppose I'll simply say that if enough other requests or your own ideas culminate to where adding a view filter panel to the main view makes sense, keep this in mind.

@oblivioncth commented on GitHub (Feb 2, 2023): The fact that there's a least a simple check box for this under Advanced Search that works without having to actually enter a text query means that ultimately I can see what I desire, even if it's not as much of a first class feature as I'd prefer. I suppose I'll simply say that if enough other requests or your own ideas culminate to where adding a view filter panel to the main view makes sense, keep this in mind.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#3484