Atlassian Jira Cloud Sanitized Data

The following table(s) contains detailed examples of the metadata fields available from the Atlassian Jira Cloud API endpoints Worklytics leverages. In order to pseudonymize and sanitize PII and other potentially sensitive data, Worklytics provides access to a Data Loss Prevention (DLP) Proxy, which allows customers to pre-filter metadata, within customer infrastructure, before it is sent to Worklytics for processing.

These are the fields Worklytics recommends but the Worklytics DLP Proxy provides full field-level control and therefore any field may be removed or sanitized.

Field descriptions are taken from third party API documentation, these are maintained on a best effort basis and Worklytics can not guarantee their indefinite accuracy. Please refer to the source API site for the most up-to-date documentation.

How to read the "DLP Proxy" column in the table(s):

⭕ This field is transformed, usually partially redacted

🟡 This field is "pseudonymized" by the DLP Proxy: only a SHA256 hash of its value is sent to Worklytics; never the value itself

To see the full (unsanitized) version of this document, click here.

Worklytics requires access to the following API primary endpoints:

ModelDescriptionAPI docs

Used to retrieve a list of comments for an issue

Used to retrieve a list of changelogs of an issue

Used to retrieve a list of all users, including active users, inactive users and previously deleted users that have an Atlassian account

Used to retrieve issues (individually or in bulk)

Used to retrieve a list of projects

Used to retrieve a list of groups

Comment

API docs: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-comments/#api-rest-api-3-issue-issueidorkey-comment-get

DLP Proxy docs: Atlassian Jira Cloud

DLP ProxyProperty NameTypeDescription

🟡 Pseudonymized

author

User

🟡 Pseudonymized

author.accountId

String

The account ID of the user, which uniquely identifies the user across all Atlassian products. Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

author.accountType

String

🟢 Allowed

author.active

boolean

🟡 Pseudonymized

author.emailAddress

String

Raw example: alice@acme.com Sanitized example:

{
	"scope":"email",
	"domain":"acme.com",
	"hash":"aT3usZghgyWmDoXRncq5qhmQJQMjY49xDJylpM4TyYI"
}

🟢 Allowed

author.key

String

🟢 Allowed

author.locale

String

The locale of the user. Depending on the user's privacy setting, this may be returned as null.

🟢 Allowed

author.timeZone

String

The time zone specified in the user's profile. Depending on the user's privacy settings, this may be returned as null.

🟢 Allowed

created

Instant

🟡 Pseudonymized

id

String

🟢 Allowed

jsdAuthorCanSeeRequest

Boolean

🟢 Allowed

jsdPublic

Boolean

🟢 Allowed

updateAuthor

User

🟢 Allowed

updated

Instant

🟢 Allowed

visibility

Visibility

🟢 Allowed

visibility.identifier

String

🟢 Allowed

visibility.type

String

🟢 Allowed

visibility.value

String

Changelog

API docs: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-issueidorkey-changelog-get

DLP Proxy docs: Atlassian Jira Cloud

DLP ProxyProperty NameTypeDescription

🟡 Pseudonymized

author

User

🟡 Pseudonymized

author.accountId

String

The account ID of the user, which uniquely identifies the user across all Atlassian products. Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

author.accountType

String

🟢 Allowed

author.active

boolean

🟡 Pseudonymized

author.emailAddress

String

Raw example: alice@acme.com Sanitized example:

{
	"scope":"email",
	"domain":"acme.com",
	"hash":"aT3usZghgyWmDoXRncq5qhmQJQMjY49xDJylpM4TyYI"
}

🟢 Allowed

author.key

String

🟢 Allowed

author.locale

String

The locale of the user. Depending on the user's privacy setting, this may be returned as null.

🟢 Allowed

author.timeZone

String

The time zone specified in the user's profile. Depending on the user's privacy settings, this may be returned as null.

🟢 Allowed

created

Instant

🟡 Pseudonymized

historyMetadata

HistoryMetadata

🟢 Allowed

historyMetadata.activityDescription

String

🟢 Allowed

historyMetadata.activityDescriptionKey

String

🟡 Pseudonymized

historyMetadata.actor

HistoryMetadataParticipant

🟡 Pseudonymized

historyMetadata.actor.id

String

🟢 Allowed

historyMetadata.actor.type

String

🟢 Allowed

historyMetadata.cause

HistoryMetadataParticipant

🟢 Allowed

historyMetadata.descriptionKey

String

🟢 Allowed

historyMetadata.emailDescription

String

🟢 Allowed

historyMetadata.emailDescriptionKey

String

🟢 Allowed

historyMetadata.generator

HistoryMetadataParticipant

🟢 Allowed

historyMetadata.type

String

🟢 Allowed

id

String

🟡 Pseudonymized

items[]

List of ChangeDetail

🟢 Allowed

items[].field

String

🟢 Allowed

items[].fieldId

String

🟢 Allowed

items[].fieldType

String

🟡 Pseudonymized

items[].tmpFromAccountId

String

🟡 Pseudonymized

items[].tmpToAccountId

String

User

API docs: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-users/#api-rest-api-3-users-get

DLP Proxy docs: Atlassian Jira Cloud

DLP ProxyProperty NameTypeDescription

🟡 Pseudonymized

accountId

String

The account ID of the user, which uniquely identifies the user across all Atlassian products. Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

accountType

String

🟢 Allowed

active

boolean

🟡 Pseudonymized

emailAddress

String

Raw example: alice@acme.com Sanitized example:

{
	"scope":"email",
	"domain":"acme.com",
	"hash":"aT3usZghgyWmDoXRncq5qhmQJQMjY49xDJylpM4TyYI"
}

🟢 Allowed

key

String

🟢 Allowed

locale

String

The locale of the user. Depending on the user's privacy setting, this may be returned as null.

🟢 Allowed

timeZone

String

The time zone specified in the user's profile. Depending on the user's privacy settings, this may be returned as null.

Issue

API docs: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-group-issues

DLP Proxy docs: Atlassian Jira Cloud

DLP ProxyProperty NameTypeDescription

🟢 Allowed

changelog

IssueChangelog

🟡 Pseudonymized

fields

Field

🟢 Allowed

fields.aggregateProgress

Progress

🟢 Allowed

fields.aggregateProgress.percent

Integer

🟢 Allowed

fields.aggregateProgress.progress

Integer

🟢 Allowed

fields.aggregateProgress.total

Integer

🟢 Allowed

fields.assignee

User

🟢 Allowed

fields.attachment[]

List of AttachmentMetadata

🟢 Allowed

fields.attachment[].author

User

🟢 Allowed

fields.attachment[].created

Instant

🟢 Allowed

fields.attachment[].id

String

🟢 Allowed

fields.attachment[].mimeType

String

🟢 Allowed

fields.attachment[].size

Long

🟢 Allowed

fields.attachment[].thumbnail

String

🟢 Allowed

fields.created

Instant

🟢 Allowed

fields.creator

User

🟢 Allowed

fields.dueDate

Instant

🟢 Allowed

fields.issueLinks[]

List of IssueLink

🟢 Allowed

fields.issueType

IssueType

🟢 Allowed

fields.issueType.avatarId

Long

🟢 Allowed

fields.issueType.hierarchyLevel

Integer

🟢 Allowed

fields.issueType.id

String

🟢 Allowed

fields.issueType.subtask

Boolean

🟢 Allowed

fields.lastViewed

Instant

🟡 Pseudonymized

fields.parent

Issue

🟡 Pseudonymized

fields.parent.changelog

IssueChangelog

🟡 Pseudonymized

fields.parent.changelog.histories[]

List of Changelog

🟡 Pseudonymized

fields.parent.changelog.histories[].author

User

🟡 Pseudonymized

fields.parent.changelog.histories[].author.accountId

String

The account ID of the user, which uniquely identifies the user across all Atlassian products. Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

fields.parent.changelog.histories[].author.accountType

String

🟢 Allowed

fields.parent.changelog.histories[].author.active

boolean

🟡 Pseudonymized

fields.parent.changelog.histories[].author.emailAddress

String

Raw example: alice@acme.com Sanitized example:

{
	"scope":"email",
	"domain":"acme.com",
	"hash":"aT3usZghgyWmDoXRncq5qhmQJQMjY49xDJylpM4TyYI"
}

🟢 Allowed

fields.parent.changelog.histories[].author.key

String

🟢 Allowed

fields.parent.changelog.histories[].author.locale

String

The locale of the user. Depending on the user's privacy setting, this may be returned as null.

🟢 Allowed

fields.parent.changelog.histories[].author.timeZone

String

The time zone specified in the user's profile. Depending on the user's privacy settings, this may be returned as null.

🟢 Allowed

fields.parent.changelog.histories[].created

Instant

🟡 Pseudonymized

fields.parent.changelog.histories[].historyMetadata

HistoryMetadata

🟢 Allowed

fields.parent.changelog.histories[].historyMetadata.activityDescription

String

🟢 Allowed

fields.parent.changelog.histories[].historyMetadata.activityDescriptionKey

String

🟡 Pseudonymized

fields.parent.changelog.histories[].historyMetadata.actor

HistoryMetadataParticipant

🟡 Pseudonymized

fields.parent.changelog.histories[].historyMetadata.actor.id

String

🟢 Allowed

fields.parent.changelog.histories[].historyMetadata.actor.type

String

🟢 Allowed

fields.parent.changelog.histories[].historyMetadata.cause

HistoryMetadataParticipant

🟢 Allowed

fields.parent.changelog.histories[].historyMetadata.descriptionKey

String

🟢 Allowed

fields.parent.changelog.histories[].historyMetadata.emailDescription

String

🟢 Allowed

fields.parent.changelog.histories[].historyMetadata.emailDescriptionKey

String

🟢 Allowed

fields.parent.changelog.histories[].historyMetadata.generator

HistoryMetadataParticipant

🟢 Allowed

fields.parent.changelog.histories[].historyMetadata.type

String

🟢 Allowed

fields.parent.changelog.histories[].id

String

🟡 Pseudonymized

fields.parent.changelog.histories[].items[]

List of ChangeDetail

🟢 Allowed

fields.parent.changelog.histories[].items[].field

String

🟢 Allowed

fields.parent.changelog.histories[].items[].fieldId

String

🟢 Allowed

fields.parent.changelog.histories[].items[].fieldType

String

🟡 Pseudonymized

fields.parent.changelog.histories[].items[].tmpFromAccountId

String

🟡 Pseudonymized

fields.parent.changelog.histories[].items[].tmpToAccountId

String

🟢 Allowed

fields.parent.fields

Field

🟡 Pseudonymized

fields.parent.id

String

Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

fields.parent.key

String

🟢 Allowed

fields.priority

Priority

🟢 Allowed

fields.priority.iconUrl

String

🟢 Allowed

fields.priority.id

String

🟢 Allowed

fields.priority.name

String

🟢 Allowed

fields.priority.self

String

🟢 Allowed

fields.progress

Progress

🟡 Pseudonymized

fields.project

Project

🟢 Allowed

fields.project.archived

boolean

🟢 Allowed

fields.project.archivedBy

User

🟢 Allowed

fields.project.archivedDate

Instant

🟢 Allowed

fields.project.assigneeType

String

🟢 Allowed

fields.project.cloudId

String

🟡 Pseudonymized

fields.project.components

ProjectComponent

🟢 Allowed

fields.project.components.assignee

User

🟢 Allowed

fields.project.components.assigneeType

String

🟡 Pseudonymized

fields.project.components.id

String

🟢 Allowed

fields.project.components.isAssigneeTypeValid

boolean

🟢 Allowed

fields.project.components.lead

User

🟢 Allowed

fields.project.components.leadAccountId

String

🟢 Allowed

fields.project.components.realAssignee

User

🟢 Allowed

fields.project.components.realAssigneeType

String

🟢 Allowed

fields.project.deleted

boolean

🟢 Allowed

fields.project.deletedBy

User

🟢 Allowed

fields.project.deletedDate

Instant

🟢 Allowed

fields.project.favourite

boolean

🟡 Pseudonymized

fields.project.id

String

🟢 Allowed

fields.project.insight

ProjectInsight

🟢 Allowed

fields.project.insight.lastIssueUpdateTime

Instant

🟢 Allowed

fields.project.insight.totalIssueCount

Integer

🟢 Allowed

fields.project.isPrivate

boolean

🟢 Allowed

fields.project.key

String

🟢 Allowed

fields.project.lead

User

🟡 Pseudonymized

fields.project.projectCategory

ProjectCategory

🟡 Pseudonymized

fields.project.projectCategory.id

String

🟢 Allowed

fields.project.simplified

Boolean

🟢 Allowed

fields.project.style

String

🟢 Allowed

fields.reporter

User

🟢 Allowed

fields.resolutionDate

Instant

🟢 Allowed

fields.status

Status

🟢 Allowed

fields.status.id

String

🟢 Allowed

fields.status.statusCategory

StatusCategory

🟢 Allowed

fields.status.statusCategory.colorName

String

🟢 Allowed

fields.status.statusCategory.id

Integer

🟢 Allowed

fields.status.statusCategory.key

String

🟢 Allowed

fields.statusCategoryChangeDate

Instant

🟢 Allowed

fields.sub-tasks[]

List of IssueLink

🟢 Allowed

fields.sub-tasks[].id

String

🟢 Allowed

fields.sub-tasks[].inwardIssue

Issue

🟢 Allowed

fields.sub-tasks[].outwardIssue

Issue

🟢 Allowed

fields.sub-tasks[].type

IssueLinkType

🟢 Allowed

fields.sub-tasks[].type.id

String

🟢 Allowed

fields.sub-tasks[].type.inward

String

🟢 Allowed

fields.sub-tasks[].type.outward

String

🟢 Allowed

fields.timeSpent

String

🟢 Allowed

fields.timeTracking

TimeTracking

🟢 Allowed

fields.timeTracking.originalEstimate

String

🟢 Allowed

fields.timeTracking.originalEstimateSeconds

Integer

🟢 Allowed

fields.timeTracking.remainingEstimate

String

🟢 Allowed

fields.timeTracking.remainingEstimateSeconds

Integer

🟢 Allowed

fields.timeTracking.timeSpent

String

🟢 Allowed

fields.timeTracking.timeSpentSeconds

Integer

🟢 Allowed

fields.updated

Instant

🟢 Allowed

fields.votes

Votes

🟢 Allowed

fields.votes.hasVoted

Boolean

🟢 Allowed

fields.votes.votes

Integer

🟢 Allowed

fields.watcher

Watcher

🟢 Allowed

fields.watcher.isWatching

Boolean

🟢 Allowed

fields.watcher.watchCount

Integer

🟢 Allowed

fields.watcher.watchers[]

List of User

🟢 Allowed

fields.watches

Watches

🟢 Allowed

fields.watches.isWatching

Boolean

🟢 Allowed

fields.watches.watchCount

Integer

🟢 Allowed

fields.worklog[]

List of Worklog

🟢 Allowed

fields.worklog[].author

User

🟢 Allowed

fields.worklog[].comment

Body

🟢 Allowed

fields.worklog[].created

Instant

🟢 Allowed

fields.worklog[].id

String

🟢 Allowed

fields.worklog[].issueId

String

🟢 Allowed

fields.worklog[].self

String

🟢 Allowed

fields.worklog[].started

Instant

🟢 Allowed

fields.worklog[].timeSpent

String

🟢 Allowed

fields.worklog[].timeSpentSeconds

Integer

🟢 Allowed

fields.worklog[].updateAuthor

User

🟢 Allowed

fields.worklog[].updated

Instant

🟢 Allowed

fields.worklog[].visibility

Visibility

🟡 Pseudonymized

id

String

Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

key

String

Project

API docs: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-projects/#api-rest-api-3-project-search-get

DLP Proxy docs: Atlassian Jira Cloud

DLP ProxyProperty NameTypeDescription

🟢 Allowed

archived

boolean

🟡 Pseudonymized

archivedBy

User

🟡 Pseudonymized

archivedBy.accountId

String

The account ID of the user, which uniquely identifies the user across all Atlassian products. Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

archivedBy.accountType

String

🟢 Allowed

archivedBy.active

boolean

🟡 Pseudonymized

archivedBy.emailAddress

String

Raw example: alice@acme.com Sanitized example:

{
	"scope":"email",
	"domain":"acme.com",
	"hash":"aT3usZghgyWmDoXRncq5qhmQJQMjY49xDJylpM4TyYI"
}

🟢 Allowed

archivedBy.key

String

🟢 Allowed

archivedBy.locale

String

The locale of the user. Depending on the user's privacy setting, this may be returned as null.

🟢 Allowed

archivedBy.timeZone

String

The time zone specified in the user's profile. Depending on the user's privacy settings, this may be returned as null.

🟢 Allowed

archivedDate

Instant

🟢 Allowed

assigneeType

String

🟢 Allowed

cloudId

String

🟡 Pseudonymized

components

ProjectComponent

🟢 Allowed

components.assignee

User

🟢 Allowed

components.assigneeType

String

🟡 Pseudonymized

components.id

String

🟢 Allowed

components.isAssigneeTypeValid

boolean

🟢 Allowed

components.lead

User

🟢 Allowed

components.leadAccountId

String

🟢 Allowed

components.realAssignee

User

🟢 Allowed

components.realAssigneeType

String

🟢 Allowed

deleted

boolean

🟢 Allowed

deletedBy

User

🟢 Allowed

deletedDate

Instant

🟢 Allowed

favourite

boolean

🟡 Pseudonymized

id

String

🟢 Allowed

insight

ProjectInsight

🟢 Allowed

insight.lastIssueUpdateTime

Instant

🟢 Allowed

insight.totalIssueCount

Integer

🟢 Allowed

isPrivate

boolean

🟢 Allowed

key

String

🟢 Allowed

lead

User

🟡 Pseudonymized

projectCategory

ProjectCategory

🟡 Pseudonymized

projectCategory.id

String

🟢 Allowed

simplified

Boolean

🟢 Allowed

style

String

Group

API docs: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-groups/#api-rest-api-3-group-bulk-get

DLP Proxy docs: Atlassian Jira Cloud

DLP ProxyProperty NameTypeDescription

🟢 Allowed

cloudId

String

🟢 Allowed

groupId

String

Last updated