Approvals Workflow Plugin

Name Approvals Workflow Plugin
Vendor Comala Technology Solutions, Inc. (Website)
Authors  
Homepage http://confluence.comalatech.com/display/WWW/Approvals+Workflow+Plugin
Issue Tracking http://developer.atlassian.com/jira/browse/APRV
Categories Content Macros
Version 1.4.2
Availability Confluence v2.5 to v2.9
State Stable
License Commercial
Price Buy
Release Docs Release notes
Java API Docs n/a
Download Source n/a
Download JAR approvalsworkflow-1.4.2.jar


more demos...

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.
Approvals can have certain restrictions, such as depending or another approvals or restricted to a user or users group.



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.





Other Features

  • Versions of attachments (including embedded images) are recorded with the approvals. This means that different approved versions of a page will keep track the approved version of attachments.
  • Different workflows can be defined and they can be associated with labels. This way, users can enable a workflow just by adding the label to the page they are working on.
  • Approvals can be defined as final to make the latest approved version of a page as a Published version and to make this version the default view for read-only users.

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:
  • Install the plugin
  • Assign the Default Theme, Approvals Workflow Plugin ready theme (2.6.x, 2.7.x and 2.8.x), either by selecting it when creating the space, or through Browse Space -> Space Admin -> Themes

The Approvals Workflow Plugin ready themes use the default Confluence layout and include all the required layout changes required for the approvals.

Usage

Macros

Approvals Workflow 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

Atlassian Developer Network JIRA (25 issues)
T Key Summary Reporter Status
Bug APRV-151 Workflows using {set-label} to add personal labels, might not be loaded properly on server startup Roberto Dominguez Open
Bug APRV-150 Some workflows does not get loaded properly upon server startup Roberto Dominguez Open
Improvement APRV-149 Optimize message refresh periods Roberto Dominguez Open
Bug APRV-148 jquery should not be included by default in 2.8 or newer Roberto Dominguez Resolved
Improvement APRV-147 Improve rendering of {set-message} body Roberto Dominguez Open
Bug APRV-146 NoClassDefFoundError in Confluence 2.9 Björn Feustel Resolved
Bug APRV-145 {workflow-include} macro causes creation of pages using templates to fail Roberto Dominguez Resolved
Bug APRV-144 Approvals report line broken in IE6 Roberto Dominguez Open
Bug APRV-143 Labels list in UI do not get updated right after approving/rejecting a page in 2.9 Roberto Dominguez Resolved
Bug APRV-142 Page action icons cut when displaying page status in 2.9 and IE6 Roberto Dominguez Resolved
Task APRV-141 2.9 Compatibility Roberto Dominguez Resolved
Bug APRV-140 Need to make sure the email notifications are not duplicated when a user name is duplicated Roberto Dominguez Resolved
Bug APRV-139 mail to groups containing obsolete users might cause NPE... Roberto Dominguez Resolved
Bug APRV-138 Enabling Pagestatus causes the labels line to wrap. Stan Hazell Open
New Feature APRV-137 Instance type workflow? Bernhard Leitner Open
Bug APRV-136 Browse Space, Approvals tab / pending shows pages that are not pending Stan Hazell Open
Support Request APRV-135 Old approvals appear on page a confuse with new ones Petr Kohutek Open
New Feature APRV-134 Allowing for creating workflows for deleting pages Roberto Dominguez Open
Bug APRV-133 NPE thrown when adding a label when accessing an old version of a page... Roberto Dominguez Open
Bug APRV-132 Un/Reinstall doesn't work correctly Alex Jurkiewicz Open
Improvement APRV-131 Supporting Workflows approvals/published versions Bernhard Leitner Open
Bug APRV-130 {approve} corpses Bernhard Leitner Resolved
Improvement APRV-129 workflow on all spaces Bernhard Leitner Open
Bug APRV-128 Installing 1.4.1 gives system error Bruce Michelsen Closed
Bug APRV-127 JQuery gets imported by default in 2.9-M5 Roberto Dominguez Resolved

Labels

comalatech comalatech Delete
commercial commercial Delete
workflow workflow Delete
approvals approvals Delete
approval approval Delete
plugin plugin Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. 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

    1. 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.

  2. 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?

    1. Dec 09, 2007

      Roberto Dominguez says:

      Look at the Theme builder section in the Approvals Workflow Configuration

      Look at the Theme builder section in the Approvals Workflow Configuration

  3. 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?

    1. 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.

      1. 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.

  4. 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 

    1. 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

  5. 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.

    1. 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}
      1. 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.

        1. 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}
          1. Jan 11, 2008

            Ricky Glaze says:

            That's great. Thanks.

            That's great. Thanks.

  6. 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?

    1. Feb 02, 2008

      Roberto Dominguez says:

      Obsolete approvals can now be removed in 1.3

      Obsolete approvals can now be removed in 1.3

  7. 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?

    1. Jan 12, 2008