Skip to main content

Jira Reader

Jira is an issue tracking system by Atlassian intended for bug tracking and project management. The Striim Jira Reader uses Jira REST APIs to read data from a Jira instance. Jira Reader ingests Jira data and emits WAEvents that can be processed with continuous queries or directed to a Striim target.

You can read from Jira and write to any target supported by Striim.

Summary information and supported objects

APIs used/data supported

Jira REST API 9.11

Data supported

Standard Jira objects (see the programmers reference for the full list).

Supported targets

Any Striim target that accepts WAEvents

Security and authentication

OAuth or API token

Operations / modes supported

  • Automated mode (consisting of both initial load and incremental load)

  • Initial load

  • Incremental load

Schema management

The Jira Reader supports initial schema creation.

Resilience / recovery

At-once-processing (A1P) recovery supported. A1P recoveries can result in duplicate entries after recovery.

Performance

Striim Platform-supported parallel execution

Programmability

  • Wizards

  • Striim Flow Designer

  • Striim TQL

Metrics and auditing

Key metrics available through Striim monitoring

Key limitations

  • Cannot read DELETE events.

  • Objects that do not support incremental load are synced at every poll, which can cause duplicate records.

  • Objects with an undetermined time of last update are duplicated at the target at every poll.

Programmer's reference for Jira Reader

This section provides a reference for the specific objects that the Jira Reader supports and a guide to the Jira Reader's properties.

In TQL, specify Global.JiraReader as the source type and configure its properties as needed.

Jira Reader properties

Property

Type

Default value

Notes

Authentication mode

Select list

  • OAuth

  • API token

Used to connect to a Jira account.

Client ID

String

Client ID of an app created in the Atlassian developer console. Used with OAuth.

Client secret

Password

Client secret for the app specified by Client ID. Used with OAuth.

Refresh token

Password

Refresh token that generates new access tokens. Used with OAuth.

Username

String

User name for the Atlassian account. Used with API token.

API token

Password

API token for the Atlassian account. Used with API token mode.

Endpoint URL

String

Base URL to access Jira Cloud, for example https://your-domain.atlassian.net/.

Tables

String

Semicolon-delimited (;) list of objects to read from Jira. Supports the % wildcard. Do not modify when recovery is enabled.

Excluded tables

String

List of tables to exclude. Useful when Tables uses wildcards.

Mode

Select list

  • Automated mode

  • Initial load

  • Incremental load

Controls adapter behavior. Automated mode performs initial load then incremental polling.

Include custom fields

Boolean

False

When set to True, custom fields defined in your Jira instance are included as additional columns in the Issues table. Custom fields of type People or User Picker are mapped to two columns per field, with _NAMES and _DISPLAYNAMES suffixes appended to the field name. Enabling this property can significantly increase the number of columns and may reduce Initial Load throughput.

Return HTML content

Boolean

False

When set to True, rich text fields are returned as HTML content instead of raw Jira wiki markup. This preserves formatting such as bold, italics, lists, tables, and links so that data rendered in a browser at the target retains the same appearance as in Jira. Affected fields include Issues.Environment, Issues.description, Issues custom fields of type TextArray, and Comments.Body.

When set to False, content is returned as-is with Jira wiki markup syntax.

Incremental load marker

String

ID

Unique incremental column used for incremental load. Prefer a timestamp-based marker when available. In some tables, the effective "ID" may not monotonically increase, which can lead to data loss if used.

Start position

String

%=-1

Initial offset for incremental reads. The % wildcard matches all tables.

Polling interval

String

5m

Interval as an integer plus unit (s, m, h, d).

Migrate schema

Boolean

False

Available in Initial Load and Automated mode. Creates initial target schema.

Thread pool count

Integer

10

Parallel threads. Increase with care and align with connection capacity.

The ThreadPoolCount value must be less than the number of available processors. For example, if the system has eight processors, set ThreadPoolCount to 7 or lower.

Connection pool size

Integer

20

Maximum simultaneous active connections.

Supported objects

The Jira Reader supports the following objects. The Default incremental load marker column shows which field the adapter uses by default for incremental replication. Objects with a default value of None do not support incremental load and perform a full sync at every polling interval, which can create duplicate records. To avoid this, enable Merge mode for the targets of data streams that contain records from such objects.

Object

Default incremental load marker

Possible incremental load marker columns

AdvancedSettings

None

None

ApplicationRoles

None

None

Attachments

Created

Id, Created

Audit

Created

Created, RecordId

BoardConfiguration

BoardId

BoardId

BoardIssues

Updated

Updated, Id

Boards

Id

Id

BoardSprints

Id

Id

Comments

Updated

Updated, Id

Configuration

None

None

Dashboards

None

None

Epics

Id

Id

FavouriteFilters

Id

Id

Fields

None

None

Filters

Id

Id

Groups

None

None

IssueAffectedVersions

IssueUpdatedDate

IssueUpdatedDate

IssueChangelogs

Created

IssueUpdatedDate, Created

IssueComponents

IssueUpdatedDate

IssueUpdatedDate

IssueCustomFieldOptions

Id

Id

IssueCustomFields

None

None

IssueFixVersions

IssueUpdatedDate

IssueUpdatedDate

IssueLinks

IssueUpdatedDate

IssueUpdatedDate

IssueLinkTypes

None

None

IssueNavigatorDefaultColumns

None

None

IssuePriorities

None

None

IssueResolutions

None

None

Issues

Updated

Updated, Id

IssueSubtasks

IssueUpdatedDate

IssueUpdatedDate

IssueTransitions

IssueUpdatedDate

IssueUpdatedDate

IssueTypes

None

None

Permissions

None

None

ProjectCategories

Id

Id

ProjectComponents

Id

Id

ProjectRoleActors

Id

Id

ProjectRoles

RoleId

RoleId

Projects

Id

Id

ProjectsIssueTypes

None

None

ProjectTypes

None

None

ProjectVersions

Id

Id

RoleActors

Id

Id

Roles

Id

Id

SecurityLevels

Id

Id

SecuritySchemes

Id

Id

SprintIssues

Updated

Updated, Id

Sprints

Id

Id

Statuses

Id

Id

TimeTrackingProviders

None

None

Users

None

None

Votes

None

None

Watchers

None

None

Workflows

Updated

Updated

WorkflowStatusCategories

Id

Id

WorkflowStatuses

None

None

WorklogDeleted

Id

Id

Worklogs

Updated

Updated, Created

The Sprints table requires the read:sprint:jira-software scope. The RoleActors and Roles tables require either the manage:jira-configuration scope or this set of scopes: read:user:jira, read:group:jira, read:project-role:jira, read:project:jira, read:avatar:jira, read:project-category:jira. All other tables typically require the read:jira-user and read:jira-work scopes.

Operational considerations for Jira Reader

The following guidance and metrics can help you deploy and operate Jira integrations in Striim.

Metrics monitored by the Jira Reader

Metric

Description

Number of deletes

Number of delete operations

Number of DDLs

Number of data definition language operations

Number of PKUpdates

Number of primary key update operations

Number of updates

Number of update operations

Number of inserts

Number of insert operations

Jira Reader limitations

  • The Jira Reader does not capture DELETE events.

  • Records for objects that do not support incremental load are synced at every poll, which can create duplicate records. To avoid this, enable Merge mode for the targets of data streams likely to contain records from such objects.

  • When Striim cannot determine the time of last update for an object, records for that object are duplicated at the target at every poll (for example, if the object lacks a suitable incremental marker).

  • If the Id column is of String datatype in some tables, a full re-sync will be done at every poll.

  • When IncludeCustomFields is enabled, Initial Load throughput for the Issues table is approximately 2.5 times slower compared to when the property is disabled.

  • If a custom field's display name is modified in Jira while the pipeline is running, the Jira Reader does not detect the column name change. Data for the modified field continues to populate in the target column using the original column name.

  • Changes to custom field data types during application runtime are not supported.

  • When ReturnHTMLContent is enabled, certain Jira formatting is not converted to HTML by the Jira API. Tables with merged cells are returned as JSON rather than HTML. Superscript and subscript formatting, checkboxes (action items), and inline images or attachments are not rendered as HTML.

  • Enabling ReturnHTMLContent introduces additional processing overhead. Initial load throughput is approximately 7 to 10% slower without custom fields, and approximately 20% slower with custom fields enabled.