|
The Approvals Workflow plugin integrates seamlessly with Confluence to provide an innovative way of managing content approvals, without compromising the open and collaborative philosophy of a wiki.
The plugin is currently used by several enterprises in industries such as Biotechnology, Banking, Insurance, Media, Software, Engineering, Aeronautics and Defence, as well as Universities and Not-for-profit organisations.
Users can create their own approval checks in their pages, or define more sophisticated workflows for entire spaces to enforce rules and actions.
The approvals are associated with the different document versions to easily determine their state. Attachment versions are also recorded and they can be retrieved when accessing older versions of the documents. Read-only users have the latest approved version as their default view.
Workflows can be defined to group approvals and actions to be executed when certain events occur. Actions include label and metadata manipulation, wiki-segment insertion, and email and message notifications.
|
|
|
Overview
|
Different approvals can be defined at any time in any page, or for all the pages in a Space . Once an approval is defined, it is shown on the page and users can approve or reject the document. |
|
A collection of approvals, rules and actions can be defined in a workflow. A workflow is associated with a space or spaces. This means that all the pages created in a space will contain the approvals defined in the workflow and will be subject to the same rules. Triggers can also be defined to execute actions when different events occur. Events include page creation, update, approval or rejection and label changes. Actions include labels and metadata manipulation, wiki-segment insertion and email or message notifications. |
|
Every approval or rejection is recorded on each page and users can access previous versions of approved pages. Users can see what pages have been approved and rejected, as well as those pages that have to be approved or re-approved. |
Publishing in different Spaces.Integrates with the Content Publishing Plugin to publish to different spaces. Page drafts can be edited in a working space and be published to a public space once they have received a proper approval and following the require workflow. Permissions can be applied to ensure only authorized users publish content and to restrict access to working versions. |
Approvals
Approvals can be defined through the {approval} or in the Space Administration section.
Each approval can be subject to certain Conditions, such as depending on another approval or restricted to a user or group. If the conditions for the approval have not been met, or the user does not have the right permissions, then the approval is pending
. When all the conditions are met, an approval check becomes available
and then it could either be approved
or rejected
.

When a document is modified after being approved/rejected, then the approval check becomes outdated and it would have to be approved or rejected again. The latest approved or rejected version is shown for that approval check.

Space Approvals
A collection of approvals can be defined by Space Administrators to be active in all the pages of a Space.

Approvals Management
The approvals history is available for all pages. Users can see what pages have been approved and rejected, as well as those pages that have to be approved or re-approved.

Workflows
Workflows can be defined using the {workflow} macro. A workflow is composed of {approval} and {trigger} macros. Triggers actions can be defined using the {set-label}, {remove-label}, {set-message}, {send-email} and {add-comment} macros. Actions could also be metadata macros such as {metadata} or {metadata-list}.
Triggers can also have Conditions such as existence of labels, metadata values or user permissions.
A workflow is defined as a page and it becomes available to the space containing it, or to the list of spaces specified in the {workflow} macro itself.
Workflows are rendered in such a way that it easy to understand the rules and elements.
Security
The plugin verifies always that the user requesting any changes have the proper permissions. When properly defined, workflows will not pose any added risk to the system.
There is however the possibility of causing unexpected behavior while defining or debugging workflows.
To mitigate the risk of causing any damage, a number of measures have been taken.
Worklows are disabled by default, but they can be enabled and we can restrict their definition to specific spaces. Existing Confluence permissions could then be applied.
This way, the actual workflows can be defined in a secured space, but they can be applied on any other space. The Confluence administrator can also define in what spaces user can create their own approvals.
The workflow actions are executed when certain events occur. When defining triggers, it is possible that a workflow enters an infinite loop by mistake.
To mitigate any potential damage in such cases, the workflow engine has a mechanism that will disable the offending workflow if an infinite loop is detected. This mechanism will be work in most cases, however is up to the user defining the workflow to ensure these problems are avoided.
Access restrictions
The plugin allows for restricting access to un-approved content. However it is not meant to be secure access control, but to restrict casual access to not approve versions. For more secure access restriction, Confluence's existing permissions must be used.
Performance
Like any other plugin handling events, this plugin adds some processing when viewing and editing pages. It was specially designed to minimize the impact of the this processing, specially on spaces not using it and when viewing pages.
Viewing pages
Spaces not using the plugin can be excluded from any additional processing by ensuring the workflow view is configured only in those spaces where it is going to be used.
In Spaces using the plugin, Approvals are loaded and cached every time a page is viewed. Once a page is loaded, the server is polled every few seconds for instant-on-onpage notification. The refresh period can be changed, or the feature removed all together, for installations with high audiences.
Editing Pages
Every time a page is edited (created, updated, trashed) or a label is changed (added/removed), a quick in-memory query is made to determine if the page is subject to a workflow, wether or not the page is in a space using the plugin.
Installation and Configuration
| For the impatient If you are evaluating the plugin, you can just:
The Approvals Workflow Plugin ready themes use the default Confluence layout and include all the required layout changes required for the approvals. |
- You can install the plugin through the Plugin Repository, or manually following the instruction in the Installing plugins overview
- Follow the instructions in Approvals Workflow Configuration

Once it is installed, you need to configure it following the Approvals Workflow Configuration instructions, otherwise, you will not be able to see the Approvals line
Usage
- Approvals Example
- Workflow Tutorial
- Publishing Workflow Tutorial
- Page Restrictions Workflow Example
- Standard and Fast-track Workflow Example
- Remote Publishing Example
Macros
Version History
| Version | Date | Description |
|---|---|---|
| 1.4.2 | 2008-08-26 | See 1.4 Release Notes |
| 1.4.1 | 2008-07-11 | See 1.4 Release Notes |
| 1.4 | 2008-06-05 | See 1.4 Release Notes |
| 1.3.4 | 2008-04-21 | See 1.3.4 Release Notes |
| 1.3.1 | 2008-02-05 | See 1.3 Release Notes |
| 1.3 | 2008-02-02 | See 1.3 Release Notes |
| 1.2.3 | 2008-01-05 | See 1.2.3 Release Notes |
| 1.2.2 | 2008-01-05 | See 1.2.2 Release Notes |
| 1.2.1 | 2007-12-12 | See 1.2.1 Release Notes |
| 1.2 | 2007-12-08 | See 1.2 Release Notes |
| 1.1.2 | 2007-11-09 | See 1.1.2 Release Notes |
| 1.1 | 2007-10-01 | See 1.1 Release Notes |
| 1.0.1 | 2007-09-07 | See 1.0.1 Release Notes |
| 1.0 | 2007-08-27 | Stable version. See 1.0 Release Notes |
| 0.9.3 | 2007-08-09 | Beta version. See 0.9.3 Release Notes |







Comments (88)
Nov 06, 2007
Andrei Smolko says:
Roberto, I was under impression that the unapproved content cannot be found usin...Roberto, I was under impression that the unapproved content cannot be found using search engine. I just did a quick test, and I can find the unapproved content. I cannot see it on Published tab, but it would be beneficial if it cannot even find it. Was my assumption/expectation right and there is a configuration problem or a bug? Or it is my expectation is wrong?
Thank you
Nov 06, 2007
Roberto Dominguez says:
It is a limitation of the current solution....It is a limitation of the current solution. I have spent several hours and have not found a way of telling confluence what version of a page to index as it happens at a very low level of the API stack as to be able to deal with the version and/or permissions.
I am still working on a solution to this... In the meantime, you could look at the Content Publishing Plugin to publish the content of a different space and to rely on Confluence's content permissions. You can use the {publish} macro at the end of the approvals chain to keep the public space in sync.
Nov 27, 2007
Kenny Tong says:
How to show the "Approvals" tab while using Theme Builder and Confluence?How to show the "Approvals" tab while using Theme Builder and Confluence?
Dec 09, 2007
Roberto Dominguez says:
Look at the Theme builder section in the Approvals Workflow ConfigurationLook at the Theme builder section in the Approvals Workflow Configuration
Dec 09, 2007
Joshua Wold says:
Can approvals be setup for Blogs (News) and Attachments as well as Pages?Can approvals be setup for Blogs (News) and Attachments as well as Pages?
Dec 11, 2007
Roberto Dominguez says:
Not yet, but is definitely something that will be added soon. There are a coup...Not yet, but is definitely something that will be added soon.
There are a couple of technical issues that's making difficult to deal with attachments, so I have to work on that.
Dec 16, 2007
Roberto Dominguez says:
News post will come soon. WRT to hiding unpublished pages,...News post will come soon.
WRT to hiding unpublished pages, this is possible using now the {add-restriction} and {remove-restriction} macros:
{workflow} {approval:Publish|usergroup=approvers} {trigger:pagecreated} {add-restriction:type=View|group=approvers} {trigger} {trigger:pageapproved|approval=Publish} {remove-restriction:type=View} {trigger} {workflow}You could also use the Content Publishing Plugin to publish to different spaces. See Publishing Workflow Tutorial.
Give it a try and send me a note if you need some help.
Jan 08, 2008
Carlos Caballero says:
Hola, Roberto, I created a simple approval workflow from the Admin panel, tried ...Hola, Roberto,
I created a simple approval workflow from the Admin panel, tried it in a few pages (which gave a specific state to some approvals in those pages). Then, I deleted the approvals from the admin panel, because I decided to write more specific workflows using the macros themselves.
Now, the pages that were "touched" by the first workflow (the one setup from the Admin panel) retain their workflow/approval indicators, even after I deleted the corresponding approvals. Is there a way to "clean up" those pages, so that the old workflow information doesn't show up any more?
Salu2
cc
Jan 11, 2008
Roberto Dominguez says:
Carlos, At this time, there is no way to remove old approvals. I've created APR...Carlos,
At this time, there is no way to remove old approvals. I've created APRV-68. I will get addressed on 1.3
Saludos
Jan 11, 2008
Ricky Glaze says:
Roberto,\\ Is there a way to change the default text inserted when you add an ap...Roberto,
Is there a way to change the default text inserted when you add an approval. What I really want is a list of "reviewer" that can only click on a "reviewed" button. There current status (reviewed/not reviewed) would be displayed beside their name. Once they click reviewed the status updates.
Jan 11, 2008
Roberto Dominguez says:
Not sure if I'm following... what do you mean by the default text? If you have ...Not sure if I'm following... what do you mean by the default text?
If you have more than one reviewer, then I'd create different approvals (either in a workflow or through the Space approvals)
i.e.
{workflow} {approval:John Doe} {approval:Jane Doe} ... {workflow}Jan 11, 2008
Ricky Glaze says:
I am wanting the user to only have a "Reviewed"option, not an approved/rejected....I am wanting the user to only have a "Reviewed"option, not an approved/rejected.Also, I if I have multiple reviewers I do not want the reviewed option to be sequential. Anyone could could say that they have reviewed it at any time.
Jan 11, 2008
Roberto Dominguez says:
I think I follow now... how about something like this: Page Rev...I think I follow now... how about something like this:
{workflow} {approval:Reviewed|group=reviewers_group} {approval:pageapproved|approval=Reviewed} {set-message}Page Reviewed by [~@user@]{set-message} {approval} {workflow}Jan 11, 2008
Ricky Glaze says:
That's great. Thanks.That's great. Thanks.
Jan 11, 2008
Ricky Glaze says:
I see the open APRV on removing obsolete approvals. How can I get the approval o...I see the open APRV on removing obsolete approvals. How can I get the approval off of the page after I have deleted the approval? Do I have to delete and re-create the page?
Feb 02, 2008
Roberto Dominguez says:
Obsolete approvals can now be removed in 1.3Obsolete approvals can now be removed in 1.3
Jan 12, 2008
Appan Ponnappan says:
What about reporting? Are there any suppliers provided which can be used with th...What about reporting? Are there any suppliers provided which can be used with the reporting plug-in macros to extract the approval history information and also to generate a table of pages with their review status?
Jan 12, 2008
David Peterson say