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 tables.

  • AdvancedSettings

  • ApplicationRoles

  • Attachments

  • Audit

  • BoardConfiguration

  • BoardIssues

  • Boards

  • BoardSprints

  • Comments

  • Configuration

  • CustomFieldContext

  • Dashboards

  • Epics

  • FavouriteFilters

  • Fields

  • Filters

  • Groups

  • IssueAffectedVersions

  • IssueChangelogs

  • IssueComponents

  • IssueCustomFieldOptions

  • IssueCustomFields

  • IssueFixVersions

  • IssueLinks

  • IssueLinkTypes

  • IssueNavigatorDefaultColumns

  • IssuePriorities

  • IssueResolutions

  • Issues

  • IssueSubtasks

  • IssueTransitions

  • IssueTypes

  • Permissions

  • ProjectCategories

  • ProjectComponents

  • ProjectRoleActors

  • ProjectRoles

  • Projects

  • ProjectsIssueTypes

  • ProjectTypes

  • ProjectVersions

  • RoleActors

  • Roles

  • SecurityLevels

  • SecuritySchemes

  • SprintIssues

  • Sprints

  • Statuses

  • TimeTrackingProviders

  • Users

  • Votes

  • Watchers

  • Workflows

  • WorkflowStatusCategories

  • WorkflowStatuses

  • WorklogDeleted

  • Worklogs

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.