Simple Anonymizer for Confluence Data Center

Simple Anonymizer for Confluence Data Center

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.

Legal and policy documents

Configuration

There is no configuration

Using the plug-in via the user interface

Step 1: Create a dummy user

Simple User Anonymizer 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.

image-20260604-092816.png

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

name in user interface

parameter name in REST call

default value

description

User to anonymize

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 anonymize

Limit anonymization to spaces

limitToSpaces

 

limit the anonymization to the given comma-separated 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 archived spaces 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 whether you found a bug or have a feature request.