> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aperium.apps.hillspire.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Jira Data Center

> Connect Aperium to a self-hosted Jira Data Center instance for JQL search, issue reads, and approval-gated writes with per-user tokens.

<Warning>
  **Experimental connector.** Jira Data Center support is experimental. Behavior and the tool surface may change, and it is not yet on the same footing as the [Atlassian (Cloud)](/admins/integrations/supported/atlassian) connector. Pilot it before relying on it for production workflows.
</Warning>

The Jira Data Center connector brings the Jira half of the Atlassian tool surface to a **self-hosted** Jira instance. It talks to the Jira Data Center REST API v2 and authenticates with **per-user personal access tokens**, so every call carries the acting user's own Jira permissions.

This is the Data Center counterpart to the cloud [Atlassian](/admins/integrations/supported/atlassian) connector — separate product, separate deployment, separate credentials. Confluence Data Center is a sibling connector; see [Confluence Data Center](/admins/integrations/supported/confluence-dc).

## What you'll need

* A **Jira Data Center 8.14 or later** instance reachable from your Aperium deployment.
* The instance's **base URL** (for example `https://jira.example.com`), set once by an admin.
* A **personal access token** per user, created in Jira under **Profile > Personal Access Tokens**.

## How auth works

Two stages:

* **Admin** sets the tenant-wide **Jira base URL** once.
* **Each user** pastes their own **personal access token**. Aperium renders it as a bearer token per request; plugin code never sees the raw token, and Data Center tokens do not refresh.

DC semantics apply throughout: users are keyed by username (no accountId), issue bodies are plain string / wiki markup (no ADF), and pagination is offset-based.

## Setup

<Steps>
  <Step title="Set the Jira base URL (admin)">
    Open the **admin onboarding flow** or the **Admin Console's MCP Servers tab**, open the **Connect Jira Data Center** form, and enter the root URL of your instance (for example `https://jira.example.com`). Aperium probes `/rest/api/2/myself` to confirm reachability.
  </Step>

  <Step title="Add a personal access token (each user)">
    On the **Integrations** page, each user creates a token in Jira (avatar menu > Profile > Personal Access Tokens > Create token) and pastes it into Aperium. The token acts with that user's own Jira permissions.
  </Step>

  <Step title="Verify">
    Ask an agent to list your open issues to confirm the connection works.
  </Step>
</Steps>

## What agents can do

**Reads (12 tools).** JQL search (`search_issues`), a curated issue dataset (`search_jira_dc_issues`), a dynamic dataset that exposes arbitrary and custom fields discovered from Jira's field metadata, project search, issue reads, workflow/transition discovery, and status, priority, issue-type, and user lookups.

**Writes — all approval-gated (5 tools).** Each requires approval before it runs, and none is destructive:

* **Create issue.**
* **Update issue.**
* **Convert issue** (issue-type change).
* **Reply to comment.**
* **Update assignment** (assignee, keyed by username).

## Notes

* **Custom fields.** The dynamic issues dataset can filter and project `customfield_*` fields discovered from Jira metadata; the curated dataset stays the common typed-field surface.
* **Project column holds the key.** In the DC datasets, the `project` column carries the project **key** (for example `AAI`), not the display name. Filter and group by the key; use project search to map keys to names.
* **Tokens don't refresh.** When a token is rejected, the user creates a new one under Profile > Personal Access Tokens in Jira and re-enters it in Aperium.
* **Disconnecting** removes a user's stored token; Jira issues and projects are unaffected.
