Jira
Visualize Jira projects, users, and issues, map Jira users to employees, and monitor changes through queries and alerts.
- Installation
- Data Model
- Types
Installation
To use this integration, JupiterOne requires the hostname for your Jira organization, credentials for API access, and optionally an Assets mapping configuration for CMDB ingestion.
The integration supports Jira Cloud with Jira API v3 and Jira Data Center with Jira API v2. Other setups may work.
Configure a Jira User
Create or designate a Jira user for the JupiterOne integration:
Option 1: Create a New Service Account (Recommended)
- Log in to Jira as an administrator
- Navigate to User Management
- Create a new user (e.g.,
jupiterone-integration@yourcompany.com) - Grant the necessary permissions (see User Permissions below)
Option 2: Use an Existing User
Verify the user has the required permissions and that you can log in to generate an API token.
User Permissions
The Jira user needs the following permissions:
- Browse Users - Grant the "Browse Users" global permission to read groups and users
- Project Access - Authorize browse access to projects using Jira permission features
- Create Issues (optional) - Required only if using JupiterOne Alert Rules to create Jira issues
- Assets Access (optional) - Required for CMDB ingestion. The user must have access to Jira Service Management Assets.
For read-only access, see How to Create a Read Only User.
Create an API Token
- Log in to Jira as the JupiterOne integration user
- Go to Atlassian Account Settings > API Tokens
- Click Create API token
- Give it a descriptive label (e.g., "JupiterOne Integration")
- Copy and save the token value
The token is only shown once. Store it securely.
Assets (CMDB) Requirements
To ingest Jira Assets (CMDB), the integration user must have:
- Access to Jira Service Management
- Permission to view Assets in your Jira organization
- The API token must be from a user with these permissions
No special OAuth configuration is required - the standard API token works if the user has Assets access.
Configuration in JupiterOne
Navigate to Integrations > Jira > New Instance and provide:
| Field | Description |
|---|---|
| Account Name | Identifier for this Jira account in JupiterOne |
| Description | Optional description |
| Polling Interval | How often to sync data |
| Hostname | Your Jira hostname (e.g., yourcompany.atlassian.net) |
| User Email | Email of the Jira integration user |
| API Token | The API token created above |
| Project Keys | Comma-separated list of project keys to ingest |
| Assets Mapping | JSON file for CMDB ingestion (see below) |
Assets (CMDB) Configuration
To ingest assets from Jira Service Management Assets, upload a JSON mapping configuration that defines which object types to ingest and how to map their attributes to JupiterOne entities.
Mapping Structure
{
"version": "1.0",
"description": "My organization's asset mappings",
"objectTypes": [
{
"objectTypeId": "15",
"objectTypeName": "Laptop",
"_class": "Device",
"enabled": true,
"propertyToAttributeMap": {
"hostname": { "attributeId": "135", "attributeName": "Hostname" },
"serial": { "attributeId": "136", "attributeName": "Serial Number" },
"category": { "attributeId": null, "default": "laptop" }
}
}
]
}
Object Type Configuration
| Property | Type | Required | Description |
|---|---|---|---|
objectTypeName | string | Yes | Jira Object Type name (generates entity _type automatically) |
objectTypeId | string | No | Jira Object Type ID (more stable for queries) |
_class | string or string[] | Yes | JupiterOne entity class |
enabled | boolean | Yes | Whether to ingest this object type |
filter | string | No | Additional AQL filter (e.g., Status = Active) |
propertyToAttributeMap | object | Yes | Maps J1 properties to Jira attributes |
ownerEmailProperty | string | No | Name of a property in propertyToAttributeMap containing the owner's email. Builds jira_user OWNS mapped relationships. |
Attribute Mapping
| Property | Type | Required | Description |
|---|---|---|---|
attributeId | string or null | Yes | Jira attribute ID. Use null for default-only values |
attributeName | string | No | Human-readable name (documentation only) |
type | string | No | Type conversion: string, number, boolean, date, array, json |
default | string, number, boolean, or string[] | No | Default value when attribute is missing |
transform | string | No | Transform: lowercase, uppercase, trim, slug |
pattern | string | No | Regex pattern to extract value |
Complete Example: Devices and Servers
This example maps laptops and servers from Jira Assets:
{
"version": "1.0",
"description": "IT Asset inventory mapping",
"objectTypes": [
{
"objectTypeId": "15",
"objectTypeName": "Laptop",
"_class": "Device",
"enabled": true,
"propertyToAttributeMap": {
"hostname": { "attributeId": "135", "attributeName": "Hostname" },
"serial": { "attributeId": "136", "attributeName": "Serial Number" },
"make": { "attributeId": "137", "attributeName": "Manufacturer" },
"model": { "attributeId": "138", "attributeName": "Model" },
"macAddress": { "attributeId": "139", "attributeName": "MAC Address" },
"osName": { "attributeId": "141", "attributeName": "Operating System" },
"osVersion": { "attributeId": "142", "attributeName": "OS Version" },
"deviceId": { "attributeId": "144", "attributeName": "Asset Tag" },
"category": { "attributeId": null, "default": "laptop" }
}
},
{
"objectTypeId": "17",
"objectTypeName": "Server",
"_class": "Host",
"enabled": true,
"filter": "Status != Decommissioned",
"propertyToAttributeMap": {
"hostname": { "attributeId": "201", "attributeName": "Hostname" },
"fqdn": { "attributeId": "202", "attributeName": "FQDN" },
"serial": { "attributeId": "203", "attributeName": "Serial Number" },
"make": { "attributeId": "204", "attributeName": "Manufacturer" },
"model": { "attributeId": "205", "attributeName": "Model" },
"ipAddress": { "attributeId": "207", "attributeName": "IP Address" },
"osName": { "attributeId": "210", "attributeName": "Operating System" },
"osVersion": { "attributeId": "211", "attributeName": "OS Version" },
"category": { "attributeId": null, "default": "server" }
}
}
]
}
Additional Examples
Load Balancer (Gateway class with array defaults):
{
"objectTypeName": "Load Balancer",
"_class": "Gateway",
"enabled": true,
"propertyToAttributeMap": {
"category": { "attributeId": null, "default": ["network"] },
"function": { "attributeId": null, "default": ["load-balancing"] },
"public": { "attributeId": "301", "attributeName": "Public Facing", "type": "boolean" }
}
}
Cloud Account (Account class with strictly required vendor):
{
"objectTypeName": "AWS Account",
"_class": "Account",
"enabled": true,
"propertyToAttributeMap": {
"vendor": { "attributeId": null, "default": "Amazon Web Services" },
"accountId": { "attributeId": "501", "attributeName": "Account ID" }
}
}
Physical Firewall (combined classes):
{
"objectTypeName": "Firewall",
"_class": ["Device", "Firewall"],
"enabled": true,
"propertyToAttributeMap": {
"category": { "attributeId": null, "default": ["network"] },
"hostname": { "attributeId": "601", "attributeName": "Hostname" },
"serial": { "attributeId": "602", "attributeName": "Serial Number" },
"make": { "attributeId": "603", "attributeName": "Vendor" }
}
}
Asset Ownership Relationships
You can build jira_user OWNS jira_assets_* relationships by specifying which mapped property contains the asset owner's email. Add ownerEmailProperty to an object type, pointing to the property name in propertyToAttributeMap:
{
"objectTypeId": "15",
"objectTypeName": "Laptop",
"_class": "Device",
"enabled": true,
"ownerEmailProperty": "ownerEmail",
"propertyToAttributeMap": {
"hostname": { "attributeId": "135", "attributeName": "Hostname" },
"serial": { "attributeId": "136", "attributeName": "Serial Number" },
"ownerEmail": { "attributeId": "157", "attributeName": "Owner" },
"category": { "attributeId": null, "default": "laptop" }
}
}
The integration matches the email value against existing jira_user entities. For Jira User-type attributes (where the value is a reference to a Jira user), the integration automatically extracts the email address.
This ingestion source is disabled by default. Enable the user-owns-asset ingestion source in the integration configuration. The jira_user entity must already exist — no placeholder is created.
Supported JupiterOne Classes
| Class | Use For | Key Properties |
|---|---|---|
Device | Laptops, desktops, phones, printers, cameras | hostname, serial, make, model, macAddress, category |
Host | Servers, VMs, VDI | hostname, fqdn, ipAddress, osName, osVersion, category |
Application | Software applications, licenses | name, version |
Service | Business services | category (array), function (array) |
Person | Employees, contractors | firstName, lastName, email |
Site | Physical locations, offices | name |
Vendor | Third-party vendors | name |
Network | Network segments, VLANs, subnets | CIDR, public, internal |
Certificate | SSL/TLS certificates | domainName, expiresOn |
Account | Cloud accounts (AWS, Azure, GCP) | vendor |
IpAddress | IP address resources (IPAM) | ipAddress |
Gateway | Load balancers, NAT gateways, proxies | category (array), function (array), public |
Firewall | Firewall appliances, security groups | category (array) |
Disk | Storage devices, volumes | name |
CryptoKey | Encryption keys, HSM devices | name |
You can combine multiple classes: "_class": ["Device", "Firewall"]
Some classes have strictly required properties that must be mapped (e.g., vendor for Account, ipAddress for IpAddress). Other classes like Device and Host have nullable required properties that will default to null if not mapped. The integration validates your mapping against the JupiterOne data model and will report errors for missing required properties.
Finding Object Type and Attribute IDs
To find the IDs needed for your mapping configuration:
Finding Object Type ID:
- Go to Jira Service Management > Assets
- Click on an Object Schema
- Click on an Object Type (e.g., "Laptop")
- The Object Type ID is in the URL:
.../object-type/{objectTypeId}
Finding Attribute IDs:
- From the Object Type page, click Attributes
- Click on an attribute to see its details
- The Attribute ID is in the URL or settings panel
Use your browser's network inspector when viewing an asset to see the API responses with all IDs.
Auto-Generated Properties
These properties are automatically set by the integration and don't need mapping:
_key,_type,_class- Entity identifiersname,displayName- From Jira object labelid- Jira object IDwebLink- Link to asset in JiracreatedOn,updatedOn- TimestampsobjectKey,objectTypeName,objectTypeId- Jira metadata
Entities Created
Assets ingestion creates:
| Entity | _type | _class |
|---|---|---|
| Assets Workspace | jira_assets_workspace | Repository |
| Asset Objects | jira_assets_{objectTypeName} | As configured |
For example, objectTypeName: "Laptop" creates entities with _type: jira_assets_laptop.
Relationships Created
| Source | Relationship | Target |
|---|---|---|
jira_account | HAS | jira_assets_workspace |
jira_assets_workspace | HAS | jira_assets_* |
jira_user | OWNS | jira_assets_* |
Next Steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | jira_account | Account |
| Assets Workspace | jira_assets_workspace | Repository |
| Jira Issue | jira_issue | Record, Issue |
| Jira Project | jira_project | Project |
| Jira User | jira_user | User |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
jira_account | HAS | jira_project |
jira_account | HAS | jira_user |
jira_account | HAS | jira_assets_workspace |
jira_issue | LINKS | jira_issue |
jira_project | HAS | jira_issue |
jira_user | CREATED | jira_issue |
jira_user | REPORTED | jira_issue |
jira_user | ASSIGNED | jira_issue |
Mapped Relationships
The following mapped relationships are created:
Source Entity _type | Relationship _class | Target Entity _type | Direction |
|---|---|---|---|
jira_user | OWNS | jira_assets_ | REVERSE |
Jira Assets Workspace
jira_assets_workspace inherits from Repository
| Property | Type | Description | Specifications |
|---|---|---|---|
webLink | string | ||
workspaceId * | string |