BookStack icon indicating copy to clipboard operation
BookStack copied to clipboard

[FEATURE REQUEST] Status / Review Workflow

Open noxify opened this issue 7 years ago • 30 comments

Hi,

i would like to ask you, what you're thinking about a possibility to decide, who can publish a book/chapter/page directly and who can set only a status like "pending review" or something like that.

Current Situation

As a normal user with the permission to create new book/chapters/pages, I have the possibility to create a lot of records without any content.

For pages, there is the possibility to save it as draft, but not for books and chapters, they are immediately visible.

For a internal wiki, this handling is ok - but what if you want to keep control over the generated content?

Future situation / Idea

Like in other application (e.g. confluence), you have the possibility to decide, who can do what.

To keep it transparent, i had the idea to integrate something like a status workflow.

Symfony has a workflow component, which could help to make the possible transitions configuable based on your needs. There is also a package for laravel: https://github.com/brexis/laravel-workflow

Maybe a bit overkill, but with this you, as admin, can decide, which status transitions are allowed in which area ( books / chapters / pages ).

Permissions

I think this is the hardest part of the (possible) implementation. I didn't found any documenation, how to setup a "security layer" inside the workflow engine. My idea was to use the existing role/permission implementation. Maybe with an CLI command, we can read the config file and creating the permissions in a dynamic way.

The name of the permission could be: workflow__<transition_name>

With this, we can identify the already generated permissions (to delete not used permissions, in case that the workflow has been changed)

Based on the laravel example (as example), we could extend the Trait, which checks not only the next allowed transition but also the user permission.

Unknown

I haven't checked the code how the search engine is checking the page status or the visibility. But if there is also a status on book / chapter level, we have to change this logic to ensure that non published records are not shown in the search result or via direct link.

Discussion

I know there are many other solutions to solve this, but instead of static status values, we can create a dynamic way to which allows us, to define our own status workflows without customizing.

Thanks!

Regards, Marcus

noxify avatar Aug 16 '17 12:08 noxify

I'd like to second this request for a workflow feature!

does this seem like something that may be considered in the future? or is it a step away from your vision for the project?

markchitty-bi avatar Feb 13 '18 17:02 markchitty-bi

i would simplify this request a bit. I would create a group, put some users in it and there should be a permission to publish posts. Only users with this permission in a group can publish the created posts from the other users.

A supervisor is then able to check through the posts and publish them (display a list with all drafts?). Maybe he can also decline drafts with a comment visible for the original author to rework his post.

Dayflare avatar Jul 01 '19 08:07 Dayflare

That will be a great feature. Is it currently on the roadmap?

janliskaretel avatar Feb 13 '22 21:02 janliskaretel

@janliskaretel No, this is currently not on the roadmap.

ssddanbrown avatar Feb 13 '22 22:02 ssddanbrown

What's the best workaround to achieve this since it doesn't currently exist? I have a wiki that I'm editing with a friend and we would like to be able to review changes to pages between us before they go live.

nikkwong avatar Jul 09 '22 06:07 nikkwong

@noxify I guess you could use BookStack webhooks, trigged upon page update/create, linked up with a system like Zapier to handle the webhook and add the page to a "To Review" list/spreadsheet. Could even append to some kind of "Review List" bookstack page using the BookStack REST API. Just throwing out ideas though.

ssddanbrown avatar Jul 09 '22 09:07 ssddanbrown

Yeah, webhooks could be a solution - since the request is 5 years old and based on the comments on other related issues, I'm not sure if it will be implemented.

I'm fine if the issue will be closed as "won't do" - or are there plans to implement something like that?

noxify avatar Aug 13 '22 20:08 noxify

I have a similar need for a review system, though mine is more of an ongoing review, and not a review before publishing need. My current plan is to use the tagging system to set certain tags on pages, and then write a script to check the pages for items needing review.

This would just be a cron job that runs every day that evaluates the review status of every page based on tags applied to the pages. Since the tags are in a key=value format this allows configuring the review requirements directly via the tags.

Tags:

  • Review Schedule: This is how often the page needs reviewed. Possible values may include: yearly, semesterly, quarterly, monthly, weekly, daily, none
  • Reviewers: A list of emails that will receive email notifications that the page needs reviewed
  • Needs Review: A boolean flag that indicates if the page is overdue for review
  • Last Review: The date that the page was last reviewed

I think it should also be possible to use the theming system to add a header to pages that are past due for review, though I haven't explored how to implement that yet.

aswgxf avatar Aug 13 '22 23:08 aswgxf

@noxify For now I'd rather keep this open, since it's something that pops up now and again, and we'll just end up with a new issue lacking historical context. Feel free to unsubscribe from notifications though if they are annoying.

@aswgxf If it helps, it's possible to define custom commands using our logical theme system, which you could then call from cron.

ssddanbrown avatar Aug 14 '22 10:08 ssddanbrown

I would like to upvote this request. We want moderation/editorial review of articles prior to publication for our internal Wiki. We employed a specific person to curate and manage Bookstack content, but we want other people to write their new or modificed articles “in place”, then submit for review.

Without editorial review, redundant data creeps in, obsolete data isn’t removed, and (the worst) unfinished articles are left in plain sight for others to stumble across.

alanmcseveney avatar Sep 23 '22 13:09 alanmcseveney

I would like to upvote this request. We want moderation/editorial review of articles prior to publication for our internal Wiki. We employed a specific person to curate and manage Bookstack content, but we want other people to write their new or modificed articles “in place”, then submit for review.

Without editorial review, redundant data creeps in, obsolete data isn’t removed, and (the worst) unfinished articles are left in plain sight for others to stumble across.

Ditto. Looking to migrate from Wordpress to this in a medical setting with education materials that needs to be moderated before publishing

thefury24 avatar Oct 18 '22 18:10 thefury24

Hi,

I suppose that the ability to create draft edits of a page, that can later be reviewed and published by an "approver" would be great.

Thanks for your consideration.

Cheers,

gdeflaux avatar Jan 25 '23 08:01 gdeflaux

Just wanted to leave a quick note of support on this as well. Same use case as others, wiki for a business, and would like to have managers approve edits before they become visible to everyone.

forceco avatar Feb 06 '23 21:02 forceco

I am reviewing this software and I can't use BookStack without the ability to have draft edit and draft approve roles. We need some version control while also allowing users to submit drafts to approvers.

To me, this issue is related to #3440 and #776

A9G-Data-Droid avatar Feb 09 '23 18:02 A9G-Data-Droid

I would also like to see this feature added, as it would come in handy for our business use.

rokkondic avatar Feb 27 '23 09:02 rokkondic

I am planning to use BookStack for my thesis project and this feature is something I am specifically looking for.

francescostanziola avatar Mar 02 '23 22:03 francescostanziola

We are using BookStack for a lot of internal documentation in our company. Amongst many other things, we document workflows and processes. Typically, such a documentation starts in a drafting phase and has multiple iterations util it reflects aspects of all involved shareholders sufficiently.

After that stage is reached the process should be marked as "stable". Future changes should put the document back in "drafting state"until it is marked as "stable" again.

It could be tricky to decide which version is displayed actually (always latest draft or only latest stable) when a user visits the site. For our purpose it would be sufficient if some kind of banner would notify the user that he is looking at a draft and not the official stable version. But that would be up for discussion.

In summary, having a status / review workflow would greatly support such kind of documentation work :)

wgaulke avatar Mar 09 '23 10:03 wgaulke

@wgaulke The approved version is always displayed first. There would be a bright red PENDING DRAFT button on the side near the previous versions button that would light up when a draft is available.

It would be beneficial if there was also a Deprecated state to remove an approved document that has a dangerous error. This is the only situation where the draft would be shown first, with the DRAFT banner at the top. The deprecated document would be found in previous versions with the Deprecated mark on it.

This allows you to "redline" a document that has a safety issue it in. There are times when you need to pull dangerous instructions before the next draft is approved. This makes it clear to everyone that there is a problem and they need to proceed with caution.

If the draft showed in a diff view then it would be clear what dangerous passage was removed because it would be shown with a red line crossing it out and the new passage. This allows the reader to see what the problem was, and ask about it if needed.

This feature is safety critical in my industry. This is also the reason that I can't use Bookstack for certain document types. I can only use it for documents that don't have a mandatory approval process.

A9G-Data-Droid avatar Mar 09 '23 16:03 A9G-Data-Droid

I would also be very interested in the implementation of this feature

wokawoka avatar Apr 02 '23 21:04 wokawoka

Pleeaaassseee, can you add a workflow feature in Bookstack. It will be great !!! Thanks in advance ;)

fbesanger avatar May 09 '23 07:05 fbesanger

Hi, +1 on this request : my organisation is choosing a way to share knowledge among all her users. Reviewing and approving creations and modifications of pages by a moderator role is mandatory to ensure that no error will take place inside knowledge base

babolab avatar Jul 18 '23 15:07 babolab

Good afternoon. We also really need a feature in which the moderator could publish the page after verification. So that employees can adhere to a single standard for creating pages. Could you tell me how soon we can expect this implementation

cactus264 avatar Jul 31 '23 04:07 cactus264

@ssddanbrown This feature would make bookstack better to store ISO9001 business process documentation for example. Should be fantastic to have approval workflow implemented in any anyway. Best regards!

acremonezi avatar Sep 06 '23 23:09 acremonezi

Please just add a :+1: reaction to the original post instead of padding this out with +1 comments. Any such comments will be removed.

ssddanbrown avatar Oct 30 '23 11:10 ssddanbrown

[Admin Edit: Removed quote of entire original post]

Think, its the Most Missing Feature to make it professionell

asaglam76 avatar Nov 12 '23 19:11 asaglam76

Several users within my organization have been asking about this feature. It would absolutely make bookstack the perfect tool for us. I hope this feature request will make it on the roadmap soon.

racquemis avatar Nov 15 '23 20:11 racquemis

Our organization is currently using the system and finds it invaluable. We greatly appreciate the functionalities that the system provides, contributing significantly to our daily operations.

This enhancement would not only improve the overall reliability of our documentation but also contribute to the effectiveness of our ISO 27001 compliance efforts.

Please consider including the feature in future releases, thanks.

HorithC avatar Jan 11 '24 02:01 HorithC