Wiki
Clone wikisimple-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:
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