Teams: Data storage

This article details the data that is stored in our database for the Microsoft Teams feature. In general, we don’t store actual content from your system(s), but only metadata, settings and similar data. Some of the data is only collected for Jira Cloud systems, but most examples also apply to Jira Server or Jira Data Center systems.


Metadata

To associate the different entities (like issues & chats) with one another, we store certain kinds of metadata - mostly mappings between two kinds of entities. The examples provided below are not 1:1 representations of the actual database, but show the most relevant information being stored.

User mapping

When you login with Jira & Microsoft Teams in our app, we’ll associate the two account with another. This is necessary, so we can impersonate you correctly, e.g. when posting a reply in a chat from Jira, or when creating a Jira issue from Microsoft Teams. An example dataset looks something like this:

Jira instance

Jira user

Microsoft instance

Microsoft user

Jira instance

Jira user

Microsoft instance

Microsoft user

your-instance.atlassian.net

bc62ee3e-978f-460c-b848-f1c878363d64

0e3419f7-4c4d-47e7-b98a-7b9b9de02b80

0c60ce18-654d-441a-badf-14404098f38e

Jira issue / Teams chat & conversation mapping

When you create a new Teams chat from Jira, the chat will show up in the issue. To make this work, we store a link between these two entities, which looks somewhat like this. This information is also used when changes to an issue happen, so we can send the update to Microsoft Teams accordingly.

Jira instance

Jira issue

Jira user

Teams chat id

Jira instance

Jira issue

Jira user

Teams chat id

your-instance.atlassian.net

10045

5f344aaa58ea7b00705b8bb2

19:91571ee8ad174aefaccd2e4605d87a24@thread.v2

Jira issue shared chat access

When creating a Teams chat from Jira, a user can allow other Jira users to access the chat in Jira, without actually being a member of the chat. We call this feature “shared chat access”. To support this feature, we have a database table specifying the exact sharing permissions.

Issue ID

Chat ID

Restrictions

Issue ID

Chat ID

Restrictions

123123

19:cae084d1e543a2b@thread.v2

{ "publicAccess": "share" }

Jira instance information

To be able to identify your Jira system correctly, we store certain information about it in our database. For Jira Cloud, this data is provided by Atlassian directly, for Jira Server and Data Center, we provide this ourselves (also see Install Microsoft 365 for Jira for Data Center | Initial configuration).

Jira Url

Shared secret (shortened)

Public ID

Jira Url

Shared secret (shortened)

Public ID

https://yasoon.atlassian.net

/uEMgXO+uNOLCcGub

i2lXISd

https://servicedesk.yourcompany.com

NqM6OM3rtHsO+uNw

tHXLY2

Teams bot membership

When a user installs the Microsoft Teams app, Microsoft notifies our servers about this. To be able to send notifications to a certain Teams user or channel, we need to store the identifiers provided to us by Microsoft.

Team ID

Service URL

Status

Team ID

Service URL

Status

19:a050c65057f689@thread.skype

https://smba.trafficmanager.net/amer/

teamMemberAdded


User, project & instance settings

To support certain functions that need to run on our own servers (e.g. for handling certain webhooks), we need certain settings to be present in our database. Which exact settings differs a bit between Jira Cloud and Jira Server/DC, but most apply to both.

Global Jira settings

When a user or an administrator changes a setting (e.g. appearance of the app), we persist this choice in our database as well. This looks something like this:

Jira instance

Setting name

Setting value

Jira instance

Setting name

Setting value

your-instance.atlassian.net

appearance

{"viewLocation": "issueContent", "quickCreateEnabled": false}

JSM portal settings

To be able to serve the Jira Cloud JSM poral in Teams, we store the settings in our database.

Portal App ID

Settings

Portal App ID

Settings

6900be7-4659-4659-900e-3cebf257ec5a

{ "icon": "icon3", "deskIds": ["14"], "tabName": "Helpdesk" }

Teams user settings

For certain scenarios, we store user settings for each user that has installed the app in Microsoft Teams. Currently, this only includes a flag, that the welcome message has already been sent by the bot, but this might contain additional settings in the future.

Teams user ID

Settings

Teams user ID

Settings

29:1sNK5nFAqk9wy-1FlQm

{ "botWelcomeSent": true }


Access tokens

To be able to bi-directionally access Jira & Microsoft Teams, we store user-based and application-based access tokens in our database. These tokens are encrypted at rest and additionally at application level, using industry standards (AES-256). At no time have our employees access to your Jira or Microsoft Teams content. Every access to the secret storage is only allowed for certain core employees and fully auditable. Please also refer to our Security & Privacy docs.