Versions Compared

Key

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

Soo, This is the second release related to upcoming Atlassian GDPR Changes we are required to comply with. In this release we have upgraded all default system templatesTemplates, themes Themes and macros Macros to be GDPR friendly. The new templates won’t look for user data (username, display name, email address, etc) in the stored event context anymore. The data will be retrieved at “rendering time” based on the account ids “accountId” stored in the event (like user fields, changelogs, etc.). The new templates will allow us trimming out the personal information from the events when JEMHC receives them (it in the future).

If you have custom templates/macros/themes don’t worry (too much). We have migrated custom template detecting and replacing old pieces of template with new ones. This is not a perfect migration so you would need to revisit your templates/macros/themes. Also personal information in events is still kept for now, old template should work.

These Below are examples of the changes done made automatically. Please replace if there are similar pieces in your custom template left behind.

...

Before

...

After

...

Description

review your own custom Templates and replace any variants that accessed user data through legacy methods:

Before (legacy non-GDPR compliant)

After (GDPR compliant)

Description

Code Block
#set ($fields = $context.issue.fields)
#if ($fields.assignee.name.textValue())
  $fields.assignee.name.asText()
#else
  Unassigned
#end

Code Block
#set ($assigneeAccountId = $fields['assignee'].accountId.asText())
#set ($assigneeVal = $jemhUtils.getUserDescription($assigneeAccountId))
#if ($!assigneeVal)
$jemhUtils.setFieldRendered() $assigneeVal
#else
(cant get assignee)
#end

context.user.displayName.asText()

jemhUtils$jemhUtils.getUserDescription($context.user)

Display name is PII, getUserDescription loads the user and retrieves the display name at rendering time.

id="email_$worklog.author.name.textValue()"

id="email_$jemhUtils.getUserAccountId($worklog.author)"

User name is PII and it’s deprecated information. Atlassian will remove them from the user in March 2019. If you need some user identificator, please use the account id by calling $jemhUtils utility method.

$comment.author.avatarUrls['24x24'].asText()

$jemhUtils.getUserAvatar($comment.author,'24x24')

User avatars are PII, JEMHC loads them at rendering time from the user object

$context.entity.user.emailAddress.textValue()

$jemhUtils.getUserEmailAddress($context.entity.user)

Email addresses need to be retrieved at rendering time using $jemhUtils’s getUserEmailAddress

$baseurl/secure/ViewProfile.jspa?name=$changelogGroup.updateAuthor.name.asText()

$jemhUtils.getUserProfileUrl($changelogGroup.updateAuthor)

User profile page has changed. The new helper method will give you the correct URL based on the user’s account id.

$jemhUtils.isJiraUser($context.user.name.asText())

$jemhUtils.isJiraUser($context.user)

A way to know if a user is a real Jira user and not JEMHC’s addon user.

$changeLogItem.fromString.asText()

$jemhUtils.getChangeLogFromValue($changeLogItem)

Change log values would need be processed as they may contain account ids. The account ids need to be converted to user’s display name. This how you render a ‘from’ value of a change log.

$changeLogItem.toString.asText()

$jemhUtils.getChangeLogToValue($changeLogItem)

Like above, This how you render a ‘to’ value of a change log.

(info) If you notice that your emails are not displaying the information correctly (e.g. macro content is rendering) or you are having problem migrating custom templates, please contact support@thepluginpeople.comreferring the problem and your host url.

Next steps

In the near future, we will allow customers to opt in PII trimming to Personally Identifying Information (PII) removal from Events and Preview Context. This will test that your custom templates are really and truly getting personal information at runtime and not from the event. Any “event.user.displayName” left behind would not be resolved.

Around March when Atlassian deprecation notice finishes, JEMHC will start trimming out all personal information from events. Your custom templates would need to be fully migrated by then.https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/You will want to have validated all your custom templates render correctly and perform any manual replacements that could not be done automatically, before that time.

Other fixes

Some other fixes we have released in this version:

...