---
title: "TFS4JIRA Self-Hosted | User mapping in database"
canonical: "https://support.appfire.com/space/SUPPORT/153452591/TFS4JIRA%20Self-Hosted%20%7C%20User%20mapping%20in%20database"
format: markdown
---
This article provides information how user mapping is stored in the TFS4JIRA database.

> ℹ️ TFS4JIRA SELF-HOSTED can use following database servers:
> ℹ️ 
> ℹ️ - SQL Compact Edition (default database)
> ℹ️ - Firebird
> ℹ️ - MS SQL Express/Full

**JIRA**

<details>
<summary>expand to see JIRA related details</summary>

To get Jira users we use `/rest/api/latest/user/assignable/multiProjectSearch?projectKeys=mappedProjectKey` and get only those with `accountType` equal to `atlassian`.

**Examples:**

Jira Cloud: [https://damkil.atlassian.net/rest/api/latest/user/assignable/multiProjectSearch?projectKeys=STA40&query=damian](https://damkil.atlassian.net/rest/api/latest/user/assignable/multiProjectSearch?projectKeys=STA40&query=damian)

> ℹ️ **query **string
> ℹ️ 
> ℹ️ A query string that is matched against user attributes, such as `displayName` and `emailAddress`, to find relevant users. The string can match the prefix of the attribute's value. For example, *query=john* matches a user with a `displayName` of *John Smith* and a user with an `emailAddress` of *[johnson@example.com](mailto:johnson@example.com)*. Required, unless `accountId` is specified.

Jira 9.4: [http://52.2.97.38:8080/rest/api/latest/user/assignable/multiProjectSearch?projectKeys=TES&user=damian](http://52.2.97.38:8080/rest/api/latest/user/assignable/multiProjectSearch?projectKeys=TES&user=damian)

> ℹ️ from Jira 8.20.7 parameter: username | string | the username

 

| **Jira version** | **In DB** | **endpoint value** | **comment** |
| --- | --- | --- | --- |
| Cloud | [JiraAccountId] | "accountId" |  |
| Cloud | [JiraUsername] | NULL |  |
| Both | [JiraDisplayName] | "displayName" <"emailAddress"> | this value only setup what is shown in the UI in TFS4JIRA |
| On-Premise | [JiraAccountId] | NULL |  |
| On-Premise | [JiraUsername] | "name" |  |
</details>

**Azure DevOps Services (ADO)**

<details>
<summary>expand to see ADO related details</summary>

**ENDPOINT**: <u>[https://vssps.dev.azure.com/damiankilkowski/_apis/graph/users?api-version=7.0-preview.1](https://vssps.dev.azure.com/damiankilkowski/_apis/graph/users?api-version=7.0-preview.1)</u>

**RESPONSE:**

```
{
      "subjectKind": "user",
      "metaType": "member",
      "domain": "45aa3d2d-7442-473d-b4d3-3c670da9dd96",
      "principalName": "ftotten@xyz.us",
      "mailAddress": "ftotten@xyz.us",
      "origin": "aad",
      "originId": "4be8f294-000d-4431-8506-57420b88e204",
      "displayName": "Francis Totten",
      "_links": {
        "self": {
          "href": "https://vssps.dev.azure.com/damiankilkowski/_apis/Graph/Users/aad.NjU5MDNmOTItNTNkYy03MWIzLWJiMGUtZTY5Y2ZhMWNiNzE5"
        },
        "memberships": {
          "href": "https://vssps.dev.azure.com/damiankilkowski/_apis/Graph/Memberships/aad.NjU5MDNmOTItNTNkYy03MWIzLWJiMGUtZTY5Y2ZhMWNiNzE5"
        },
        "membershipState": {
          "href": "https://vssps.dev.azure.com/damiankilkowski/_apis/Graph/MembershipStates/aad.NjU5MDNmOTItNTNkYy03MWIzLWJiMGUtZTY5Y2ZhMWNiNzE5"
        },
        "storageKey": {
          "href": "https://vssps.dev.azure.com/damiankilkowski/_apis/Graph/StorageKeys/aad.NjU5MDNmOTItNTNkYy03MWIzLWJiMGUtZTY5Y2ZhMWNiNzE5"
        },
        "avatar": {
          "href": "https://dev.azure.com/damiankilkowski/_apis/GraphProfile/MemberAvatars/aad.NjU5MDNmOTItNTNkYy03MWIzLWJiMGUtZTY5Y2ZhMWNiNzE5"
        }
      },
      "url": "https://vssps.dev.azure.com/damiankilkowski/_apis/Graph/Users/aad.NjU5MDNmOTItNTNkYy03MWIzLWJiMGUtZTY5Y2ZhMWNiNzE5",
      "descriptor": "aad.NjU5MDNmOTItNTNkYy03MWIzLWJiMGUtZTY5Y2ZhMWNiNzE5"
    }
```

**TABLE:** [dbo].[UserMappings]

**COLUMN:** [TfsUserDisplayName]

**VALUE:** `"displayName"` + <`"principalName"`>

`"principalName"` - in case of duplicates in `"displayName"`

example: Francis Totten <ftotten@xyz.us>
</details>

**TFS / ADO On-Premise**

<details>
<summary>expand to see TFS / ADO On-Premise related details</summary>

**TABLE:** [dbo].[UserMappings]

**COLUMN:** [TfsUserDisplayName]

**VALUE:** `"displayName"` + <`DOMAIN\ACCOUNT`>

`DOMAIN\ACCOUNT` - in case of duplicates in `"displayName"`

example: Francis Totten <PC-1223\FTotten>
</details>