Atlassian Jira Cloud

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 completely redacted by the DLP Proxy

⭕ 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 only the fully sanitized 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

🔴 Redacted

author.displayName

String

The display name of the user. Depending on the user’s privacy setting, this may return an alternative value.

🟡 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.

🔴 Redacted

body

Body

🔴 Redacted

body.content[]

List of Content

🔴 Redacted

body.content[].content[]

List of BodyContent

🔴 Redacted

body.content[].content[].attrs

Attributes

🔴 Redacted

body.content[].content[].attrs.accessLevel

String

🔴 Redacted

body.content[].content[].attrs.id

String

🔴 Redacted

body.content[].content[].text

String

🔴 Redacted

body.content[].content[].type

String

🔴 Redacted

body.content[].type

String

🔴 Redacted

body.type

String

🔴 Redacted

body.version

Integer

🟢 Allowed

created

Instant

🟡 Pseudonymized

id

String

🟢 Allowed

jsdAuthorCanSeeRequest

Boolean

🟢 Allowed

jsdPublic

Boolean

🔴 Redacted

renderedBody

String

🔴 Redacted

self

String

🟢 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

🔴 Redacted

author.displayName

String

The display name of the user. Depending on the user’s privacy setting, this may return an alternative value.

🟡 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

🔴 Redacted

historyMetadata.description

String

🟢 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

🔴 Redacted

items[].from

String

🔴 Redacted

items[].fromString

String

🟡 Pseudonymized

items[].tmpFromAccountId

String

🟡 Pseudonymized

items[].tmpToAccountId

String

🔴 Redacted

items[].to

String

🔴 Redacted

items[].toString

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

🔴 Redacted

avatarUrls

N/A

🔴 Redacted

displayName

String

The display name of the user. Depending on the user’s privacy setting, this may return an alternative value.

🟡 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.

🔴 Redacted

self

N/A

🟢 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

🟡 Pseudonymized

fields.attachment[]

List of AttachmentMetadata

🟢 Allowed

fields.attachment[].author

User

🔴 Redacted

fields.attachment[].content

String

🟢 Allowed

fields.attachment[].created

Instant

🔴 Redacted

fields.attachment[].filename

String

🟢 Allowed

fields.attachment[].id

String

🟢 Allowed

fields.attachment[].mimeType

String

🔴 Redacted

fields.attachment[].self

String

🟢 Allowed

fields.attachment[].size

Long

🟢 Allowed

fields.attachment[].thumbnail

String

🔴 Redacted

fields.comment[]

List of Comment

🔴 Redacted

fields.comment[].author

User

🔴 Redacted

fields.comment[].body

Body

🔴 Redacted

fields.comment[].created

Instant

🔴 Redacted

fields.comment[].id

String

🔴 Redacted

fields.comment[].jsdAuthorCanSeeRequest

Boolean

🔴 Redacted

fields.comment[].jsdPublic

Boolean

🔴 Redacted

fields.comment[].renderedBody

String

🔴 Redacted

fields.comment[].self

String

🔴 Redacted

fields.comment[].updateAuthor

User

🔴 Redacted

fields.comment[].updated

Instant

🔴 Redacted

fields.comment[].visibility

Visibility

🔴 Redacted

fields.comment[].visibility.identifier

String

🔴 Redacted

fields.comment[].visibility.type

String

🔴 Redacted

fields.comment[].visibility.value

String

🟢 Allowed

fields.created

Instant

🟢 Allowed

fields.creator

User

🔴 Redacted

fields.description

Body

🔴 Redacted

fields.description.content[]

List of Content

🔴 Redacted

fields.description.content[].content[]

List of BodyContent

🔴 Redacted

fields.description.content[].content[].attrs

Attributes

🔴 Redacted

fields.description.content[].content[].attrs.accessLevel

String

🔴 Redacted

fields.description.content[].content[].attrs.id

String

🔴 Redacted

fields.description.content[].content[].text

String

🔴 Redacted

fields.description.content[].content[].type

String

🔴 Redacted

fields.description.content[].type

String

🔴 Redacted

fields.description.type

String

🔴 Redacted

fields.description.version

Integer

🟢 Allowed

fields.dueDate

Instant

🟢 Allowed

fields.issueLinks[]

List of IssueLink

🟡 Pseudonymized

fields.issueType

IssueType

🟢 Allowed

fields.issueType.avatarId

Long

🔴 Redacted

fields.issueType.description

String

🟢 Allowed

fields.issueType.hierarchyLevel

Integer

🔴 Redacted

fields.issueType.iconUrl

String

🟢 Allowed

fields.issueType.id

String

🔴 Redacted

fields.issueType.name

String

🔴 Redacted

fields.issueType.self

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

🔴 Redacted

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

String

The display name of the user. Depending on the user’s privacy setting, this may return an alternative value.

🟡 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

🔴 Redacted

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

String

🟢 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

🔴 Redacted

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

String

🔴 Redacted

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

String

🟡 Pseudonymized

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

String

🟡 Pseudonymized

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

String

🔴 Redacted

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

String

🔴 Redacted

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

String

🟢 Allowed

fields.parent.fields

Field

🟡 Pseudonymized

fields.parent.id

String

Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

fields.parent.key

String

🔴 Redacted

fields.parent.self

String

The URL of the issue details.

🟢 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

🔴 Redacted

fields.project.components.name

String

🟢 Allowed

fields.project.components.realAssignee

User

🟢 Allowed

fields.project.components.realAssigneeType

String

🔴 Redacted

fields.project.components.self

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

🔴 Redacted

fields.project.name

String

🟡 Pseudonymized

fields.project.projectCategory

ProjectCategory

🔴 Redacted

fields.project.projectCategory.description

String

🟡 Pseudonymized

fields.project.projectCategory.id

String

🔴 Redacted

fields.project.projectCategory.name

String

🔴 Redacted

fields.project.projectCategory.self

String

🔴 Redacted

fields.project.self

String

🟢 Allowed

fields.project.simplified

Boolean

🟢 Allowed

fields.project.style

String

🟢 Allowed

fields.reporter

User

🟢 Allowed

fields.resolutionDate

Instant

🟡 Pseudonymized

fields.status

Status

🔴 Redacted

fields.status.description

String

🔴 Redacted

fields.status.iconUrl

String

🟢 Allowed

fields.status.id

String

🔴 Redacted

fields.status.name

String

🔴 Redacted

fields.status.self

String

🟡 Pseudonymized

fields.status.statusCategory

StatusCategory

🟢 Allowed

fields.status.statusCategory.colorName

String

🟢 Allowed

fields.status.statusCategory.id

Integer

🟢 Allowed

fields.status.statusCategory.key

String

🔴 Redacted

fields.status.statusCategory.name

String

🔴 Redacted

fields.status.statusCategory.self

String

🟢 Allowed

fields.statusCategoryChangeDate

Instant

🟡 Pseudonymized

fields.sub-tasks[]

List of IssueLink

🟢 Allowed

fields.sub-tasks[].id

String

🟢 Allowed

fields.sub-tasks[].inwardIssue

Issue

🟢 Allowed

fields.sub-tasks[].outwardIssue

Issue

🔴 Redacted

fields.sub-tasks[].self

String

🟡 Pseudonymized

fields.sub-tasks[].type

IssueLinkType

🟢 Allowed

fields.sub-tasks[].type.id

String

🟢 Allowed

fields.sub-tasks[].type.inward

String

🔴 Redacted

fields.sub-tasks[].type.name

String

🟢 Allowed

fields.sub-tasks[].type.outward

String

🔴 Redacted

fields.sub-tasks[].type.self

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

🟡 Pseudonymized

fields.votes

Votes

🟢 Allowed

fields.votes.hasVoted

Boolean

🔴 Redacted

fields.votes.self

String

🟢 Allowed

fields.votes.votes

Integer

🟡 Pseudonymized

fields.watcher

Watcher

🟢 Allowed

fields.watcher.isWatching

Boolean

🔴 Redacted

fields.watcher.self

String

🟢 Allowed

fields.watcher.watchCount

Integer

🟢 Allowed

fields.watcher.watchers[]

List of User

🟡 Pseudonymized

fields.watches

Watches

🟢 Allowed

fields.watches.isWatching

Boolean

🔴 Redacted

fields.watches.self

String

🟢 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

🔴 Redacted

self

String

The URL of the issue details.

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

🔴 Redacted

archivedBy.displayName

String

The display name of the user. Depending on the user’s privacy setting, this may return an alternative value.

🟡 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

🔴 Redacted

components.name

String

🟢 Allowed

components.realAssignee

User

🟢 Allowed

components.realAssigneeType

String

🔴 Redacted

components.self

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

🔴 Redacted

name

String

🟡 Pseudonymized

projectCategory

ProjectCategory

🔴 Redacted

projectCategory.description

String

🟡 Pseudonymized

projectCategory.id

String

🔴 Redacted

projectCategory.name

String

🔴 Redacted

projectCategory.self

String

🔴 Redacted

self

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

🔴 Redacted

name

String

The name of the group

Last updated