I am writing documentation around using our Fibery workspace for members of our team.
We have multiple user groups, each with its own level of access and functionalities. Users can belong to multiple groups simultaneously, and Fibery treats the groups as additive whitelists. This is good architecture.
Our wiki sits under its own Space, subdivided into folders. Notably, Fibery documentation is split into ‘Quick Start’, ‘User Guides’, and ‘Help’. I’ve been diligent to keep all relevant information here, so users don’t have to search through the whole app for “how to do X thing”.
However, I’ve run into issues around the scope of visibility regarding documents. If a user has access to the Space (which they all do for the wiki) then they inherit read access for all documents contained within. A document could be irrelevant to most users, or contain sections which don’t apply to how they use the app. In these cases, I want to hide that information.
I’ve identified three possible methods for this that will allow this folder structure to stay the same: folder-level access, document-level access, and section-level access. There may be more options I haven’t explored, but I think these are the most intuitive.
Folder Permissions — Lock down or hide folders via logic. Yes, I know I could make all “folders” their own Space and lock those down, but that changes the appearance of the sidebar structure since Spaces have that distinct coloured squircle look. This suggested solution also avoids subdividing spaces into “Foobar Manager Space”, “Foobar Employee Space”, etc., since, in my professional opinion, Spaces should only be used when there is mutable data.
Document Permissions — Set on the document itself, applying to that and all nested documents to limit visibility.
Section Visibility — Having the option to wrap sections of documents in a code block, which can apply rules server-side that avoid fetching and rendering parts of the markdown. Could be as simple as highlighting a section and hitting an option on the toolbar that appears to “apply a visibility rule”, which would then allow the document writer to craft custom show/hide logic.
To expand on this last point, I envisage something like this (ignore the HTML syntax, it’s just what I’m used to):
// document.md
Document Heading
<display_rule=“User.Groups has any [‘Employee’, ‘Manager’]”>
Section 1 Title
</display_rule>
<display_rule=“User.Groups has none [‘Employee’]”>
Section 2 Title
</display_rule>
Naturally, Administrators would be exempt from the rules.
I would appreciate other users’ thoughts on the usefulness of this.