Wiki

Clone wiki

simple-anonymizer / Home

Simple User Anonymizer Confluence plug-in


Scope

This Wiki page serves as user documentation for the Simple User Anonymizer Confluence plug-in. It contains (hopefully) all necessary detail to use the plug-in effectively.


What is it?

Simple User Anonymizer anonymizes a Confluence user. This is e.g. needed in case you want to implement the "right to forget" required by the European General Data Protection Regulation (GDPR). Just renaming the user to a cryptic but unique name like "ac578dec11" is often not sufficient as all contributions are still visible under that changed name. It is very easy for colleagues of the user to say "I know that _ac578dec11 is actually Mike - and I stil can see his contributions". Simple User Anonymizer solves this problem by changing all contributions of the user to anonymize to a different user, by removing all likes of the user etc.

ℹ The user itself including its details like email address etc. is not touched by the plug-in.

Compatibility

Pleaase refer to the Atlassian Marketplace for details of each versions compatbility. The plug-in is designed to work with Confluence 6.0.x upwards.

How to get it?

You can get the plug-in here:

Privacy policy

Please refer to the our privacy policy.

Source code license

Please refer to this page.


Installation

Please follow Atlassian's guidance to install the plug-in. Once installed and after a page reload (!) you will see the following additional menue entry in your admin screen:

menu entry.png


Using the plug-in via the user interface

Step 1: Create a dummy user

Simple User Anoymizer requires an artificial target user to which the contributions of the user to anonymize are shifted to. Please create this user first.

Step 2: Simulate the anonymization

Go to the admin screen and navigate to "Anonymize" under "User & Security". Fill in the required parameters (see section below) and hit the "Simulate" button. You will see a list of all actions which would be execute by Simple User Anonymizer. Some actions contain a link which helps to navigate to the content for a cross-check.

Step 3: Execute the anonymization

After you simulated and checked the results you can execute the anonymization. To do so hit the "Execute" button.

⚠ Due to its nature the plug-in performs many changes to your Confluence instance. Please ensure that your settings are right and that you have access to a recent backup before executing the anonymization.


Using the REST interface

In case you have some experience with REST you may also use the REST endpoints to anonymize a user.

Trigger

To trigger an anonymization use a PUT request to /rest/simpleanonymizer/1.0/anonymize with the parameters listed below and a valid token which you can paste and copy from the user interface. A valid call might be e.g. https://example.com/rest/simpleanonymizer/1.0/anonymize?userName=john&targetUserName=nobody&token=074ef140-b69f-4de5-9f18-3f8580498191. The call returns a JSONObject containing the requestId which can be used subsequently to collect the results:

#!JSON

{"requestId":"bdshqlppu584ndriy5"}

Collect

To collect the result use /rest/simpleanonymizer/1.0/getJSONResult providing the requestId from the trigger call before as parameter. A valid call might be e.g. https://example.com/rest/simpleanonymizer/1.0/getJSONResult?requestId=bdshqlppu584ndriy5. The call returns a JSONObject like this:

#!JSON

{
    "finished":true,
    "results":
        [
            {
                "text":"User to anonymize",
                "success":true,
                "url":""
            },
            {
                "text":"Target user",
                "success":true,
                "url":""
            },
            {
                "text":"Anonymizing content (modifier;collaborator;) of type PAGE with title \"Creator and Contributor\" in version 3 (2018-06-08)"
                ,"success":true,
                "url":"https://edrup.de:8443/pages/viewpage.action?pageId=10977329"
            }
        ]
    }

The finished field indicates whether the results are complete. Please note that a finished result can only be collected once.


Parameters

name in user interface parameter name in REST call default value description
User to anoymize userName * n/a name of the user to anonymize
Target user targetUserName * n/a name of the user (has to exist) which is used instead of the user to aonymize
Limit anonymization to spaces limitToSpaces limit the anonymization to the given comma-seperated list of space-keys - leave empty to include all spaces
From date fromDate 1980-01-01 only anonymize content created/changed after that date at 0:00 - leave empty to leave this side open
To date toDate 2100-01-01 only anonymize content created/changed before that date at 0:00 - leave empty to leave this side open
Anonymize contributions... contributions true anonymize contributions of the user
Remove all mentions... mentions false remove all mentions of the user
Anonymize all tasks... tasks false anonymize all tasks of the user
Include archived... includeArchivedSpaces false include archiveds paces in the anonymization
Include content in trash includeTrash false include content in the trash in the anonymization
Remove all likes... likes false remove all likes of the user (global - no space or time limitation)
Remove all watches... watches false remove all watches of the user (global - no space or time limitation)
Remove personal space... personalSpace false remove the personal space of the user
Limit log output... limitLog true limit the log output and only the show one version of the same content
n/a execute false execute the anonymization

* required parameter


Trouble-shooting

Known limitations

The following known limitations exist:

  • Mentions and tasks which only appear in historic version: The plug-in does not change mentions and tasks which are only present in historic versions of a page but not on the current version. Example: the current version of a page does not mention Mike, but an older version of the page does. Simple User Anonymizer does not change this mention.
  • Templates: the current version of the plug-in does not anonymize templates.
  • Hidden content: the app searches for content to anonymize with the current user's permission (the user running the anonymization). Content this user can't see can't be anonymized.
  • Contributions with missing view permission of the target user: the app can't change the contributor (contributors show up in the version history and in the search) in case the target user does not have a view permission on the respective piece of content.

Getting support

Please use out ticketing system to create a support request regardless wether you found a bug or have a feature request. Existing bugs or feature requests are here.

Updated