Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Method, path

Query parameters

Body

Response

Notes

POST

/rest/actonic-gdpr/1.0/data-cleaner-template/:id

Template ID to update

Code Block
{
"id":, // template id (long)
"name":"", // template name (string)
"jql":"", // scope, JQL expression (string)
"objects":[], // field names (array of strings)
"notificationType":"" // notification type (string)
}

200:

Code Block
{
"id":, - template id (long)
"enabled":, - template state (boolean)
"isDraft":, - is the template is draft (boolean)
"name":"", - template name (string)
"jql":"", - scope, JQL expression (string)
"objects":[], - field names (array of strings)
"dataRulesCount":, - number of rules (long)
"notificationType":"", - notification type (string)
"notificationParameters":{}, - notification parameters (object)
"issueCount":, - number of issues (long)
"isDeleting":, - is the template is deleted (boolean)
}

Update template for new anonymization process

PUT

/rest/actonic-gdpr/1.0/data-cleaner-template/rules

none

Code Block
{
"templateId":, // template id (long)
"enabled":, // rule state (boolean)
"name":"", // rule name (string)
"searchType":"", // search type (string)
"searchString":"", // search string, what to search (string)
"replaceType":"", // replace type (string)
"replaceString":"" // replace string, what to replace (string)
}

200:

Code Block
{
"id":, - rule id (long)
"templateId":, - template id (long)
"enabled":, - rule state (boolean)
"name":"", - rule name (string)
"searchType":"", - search type (string)
"searchString":"", - search string, what to search (string)
"replaceType":"", - replace type (string)
"replaceString":"" - replace string, what to replace (string)
}

Add a new rule for quick user anonymization template

GET 

/rest/actonic-gdpr/1.0/data-cleaner-template/anonymizer/custom-anonymizers

none

none

200:

Code Block
[
{
"id":, - anonymizer id (long)
"pluginName":"", - Jira plugin name (string)
"name":"" - anonymizer name (string)
}, ...
]

Get a list of registered anonymizers, provided by Actonic or 3rd party apps

POST 

/rest/actonic-gdpr/1.0/data-cleaner-template/post-function

none

Code Block
{
"name":"", - post-function name (string)
"rules":"", - rules (string)
"functionType":"", - post-function type (string)
"anyRuleEnabled":, - rules state (boolean)
"parameters": - post-function parameters (object)
  {
  "sourceUsers":"", - source users, comma separated (string)
  "targetUser":"", - target user (string)
  "anonymizerIds":""- anonymizer identifiers, comma separated (string)
  },
"templateId": - template id (long)
}

200:

Empty response

Add post-function to launch selected anonymizers after the main anonymization process

PUT 

/rest/actonic-gdpr/1.0/data-cleaner-template/task

none

Code Block
{
"templateId":"", - template id (long)
"type": - task type (int): 0 - search, 1 - anonymize
}

200:

Code Block
{
"id":, - task id (long)
"templateId":, - template id (long)
"creator":"", - creator name (string)
"createDate":"", - date of creation (date)
"duration":, - duration (long)
"startDateLabel":"", - start date in custom format (string)
"status":, - task status (int): 0 - not started, 1 - in progress, 2 - aborted, 3 - finished, 5 - failed
"taskType":, - task type (int): 0 - search, 1 - anonymize
"meta": - task meta (object)
  {
  "rules":{}, - task rules (object)
  "users":{}, - source and target users
  "other": - other (object)
    {
    "numberOfRules":, - number of rules (int)
    "numberOfFields": - number of fields (int)
    }
  },
"taskCurrentNum":, - number of processed tasks (int)
"taskTotalNum":, - total number of tasks (int)
"taskAffectedNum":, - number of affected tasks (int)
"foundObjectsCount":, - total number of found objects (int)
"taskMessage":"" - task message (string)
}

Add a task to start a search or anonymization by a given template

...

Method, path

Query parameters

Body

Response

Notes

POST

/rest/actonic-gdpr/1.0/data-cleaner-template/-1

"-1" template ID, always static for quick user anonymization template

Code Block
{
"id":-1,
"name":"User Anonymization template (user1→user2)",
"jql":"",
"objects":["summary", "description", "comment","history", "creator","reporter", "assignee","comment-author", "attachment-author", "worklog-author", "watcher", "vote", "customfield_10107", "customfield_10216", "customfield_10612", "customfield_10401", "customfield_10613", "customfield_10204", "customfield_10203", "customfield_10403", "customfield_10402"],
"notificationType":"none"
}

200:

Code Block
{
"id":-1,
"enabled":false,
"isDraft":false,
"name":"User Anonymization template (user1→user2)",
"jql":"",
"objects":["summary", "description", "comment","history", "creator","reporter", "assignee","comment-author", "attachment-author", "worklog-author", "watcher", "vote", "customfield_10107", "customfield_10216", "customfield_10612", "customfield_10401", "customfield_10613", "customfield_10204", "customfield_10203", "customfield_10403", "customfield_10402"],
"dataRulesCount":0,
"notificationType":"none",
"notificationParameters":{},
"issueCount":0,
"isDeleting":false
}

Update template for new anonymization process.

Use :id "-1" for quick user anonymization template

PUT

/rest/actonic-gdpr/1.0/data-cleaner-template/rules

none

Code Block
{
"templateId":-1,
"enabled":true,
"name":"User Name replacement",
"searchType":"user",
"searchString":"user1",
"replaceType":"user",
"replaceString":"user2"
}

200:

Code Block
{
"id":1,
"templateId":-1,
"enabled":true,
"name":"User Name replacement",
"searchType":"user",
"searchString":"user1",
"replaceType":"user",
"replaceString":"user2"
}

Add a rule for user name replacement from “user1” to “user2”. It should be repeated for all the anonymized users.

PUT

/rest/actonic-gdpr/1.0/data-cleaner-template/rules

none

Code Block
{
"templateId":-1,
"enabled":true,
"name":"User Display Name replacement",
"searchType":"plain",
"searchString":"User A",
"replaceType":"plain-text",
"replaceString":"User B"
}

200:

Code Block
{
"id":2,
"templateId":-1,
"enabled":true,
"name":"User Display Name replacement",
"searchType":"plain",
"searchString":"User A",
"replaceType":"plain-text",
"replaceString":"User B"
}

Add a rule for display name replacement from “User A” to “User B”. It should be repeated for all the anonymized users.

PUT

/rest/actonic-gdpr/1.0/data-cleaner-template/rules

none

Code Block
{
"templateId":-1,
"enabled":true,
"name":"User Email replacement",
"searchType":"plain",
"searchString":"user1@users.com",
"replaceType":"plain-text",
"replaceString":"user2@users.com"
}

200:

Code Block
{
"id":3,
"templateId":-1,
"enabled":true,
"name":"User Email replacement",
"searchType":"plain",
"searchString":"user1@admin.com",
"replaceType":"plain-text",
"replaceString":"user2@users.com"
}

Add a rule for email replacement from “user1@users.com” to “user2@users.com”. It should be repeated for all the anonymized users.

PUT

/rest/actonic-gdpr/1.0/data-cleaner-template/rules

none

Code Block
{
"templateId":-1,
"enabled":true,
"name":"User mention replacement",
"searchType":"plain",
"searchString":"[~user1]",
"replaceType":"plain-text",
"replaceString":"[~user2]"
}

200:

Code Block
{
"id":24,
"templateId":-1,
"enabled":true,
"name":"User mention replacement",
"searchType":"plain",
"searchString":"[~user1]",
"replaceType":"plain-text",
"replaceString":"[~user2@users.com]"
}

Add a rule for user mention replacement in text fields from “[~user1]” to “[~user2]”. It should be repeated for all the anonymized users.

GET 

/rest/actonic-gdpr/1.0/data-cleaner-template/anonymizer/custom-anonymizers

none

none

200:

Code Block
[
{
"id":1932425934,
"pluginName":"GDPR (DSGVO) and Security for Jira",
"name":"Shared Objects (dashboards owners, filter owners, projects leads, component leads)"
}
]

Get a list of registered anonymizers, provided by Actonic or 3rd party apps. We will use it for built-in anpnymization post functions which process shared objects, like filters, dashboards, etc.

POST 

/rest/actonic-gdpr/1.0/data-cleaner-template/post-function

none

Code Block
{
"name":"Custom anonymizer",
"rules":"",
"functionType":"custom-anonymizer",
"anyRuleEnabled":true,
"parameters":{"sourceUsers":"user1","targetUser":"user2","anonymizerIds":"1932425934"},
"templateId":-1
}

200:

Empty response

Add post-function to launch shared object anonymization after the main anonymization process

PUT 

/rest/actonic-gdpr/1.0/data-cleaner-template/task

none

Code Block
{
"templateId":"-1",
"type":1
}

200:

Code Block
{
"id":1,
"templateId":-1,
"creator":"admin",
"createDate":"Aug 19, 2020 7:06:09 PM",
"duration":0,
"startDateLabel":"",
"status":0,
"taskType":0,
"meta":
  {
  "rules":{"25":"User Name replacement","26":"User Display Name replacement","27":"User Email replacement","28":"User mention replacement"},
  "users":{"sourceUsers":"user1","targetUser":"user2"},
  "other":{"numberOfRules":4.0,"numberOfFields":12.0}
  },
"taskCurrentNum":0,
"taskTotalNum":0,
"taskAffectedNum":0,
"foundObjectsCount":0,
"taskMessage":"Task queued"
}

Add a task to start a search or anonymization by a given template

...