# jira

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [connect-full.txt](https://docs.redpanda.com/connect-full.txt)

---
title: jira
latest-connect-version: 4.93.0
latest-operator-version: v26.1.4
latest-console-tag: v3.7.3
latest-redpanda-tag: v26.1.9
docname: processors/jira
page-component-name: connect
page-version: master
page-component-version: master
page-component-title: Connect
page-relative-src-path: processors/jira.adoc
page-edit-url: https://github.com/redpanda-data/rp-connect-docs/edit/main/modules/components/pages/processors/jira.adoc
description: Queries Jira resources and returns structured data.
page-git-created-date: "2025-11-03"
page-git-modified-date: "2026-05-26"
---

<!-- Source: https://docs.redpanda.com/connect/components/processors/jira.md -->

**Available in:** [Cloud](https://docs.redpanda.com/cloud-data-platform/develop/connect/components/processors/jira/%20%22View%20the%20Cloud%20version%20of%20this%20component%22), Self-Managed

Queries Jira resources and returns structured data.

Introduced in version 4.68.0.

#### Common

```yaml
processors:
  label: ""
  jira:
    username: "" # No default (required)
    api_token: "" # No default (required)
    max_results_per_page: 50
    base_url: "" # No default (required)
    timeout: 5s
```

#### Advanced

```yaml
processors:
  label: ""
  jira:
    username: "" # No default (required)
    api_token: "" # No default (required)
    max_results_per_page: 50
    base_url: "" # No default (required)
    timeout: 5s
    tls:
      enabled: false
      skip_cert_verify: false
      enable_renegotiation: false
      root_cas: ""
      root_cas_file: ""
      client_certs: []
    proxy_url: ""
    disable_http2: false
    tps_limit: 0
    tps_burst: 1
    backoff:
      initial_interval: 1s
      max_interval: 30s
      max_retries: 3
    tcp:
      connect_timeout: 0s
      keep_alive:
        idle: 15s
        interval: 15s
        count: 9
      tcp_user_timeout: 0s
    http:
      max_idle_conns: 100
      max_idle_conns_per_host: 0
      max_conns_per_host: 64
      idle_conn_timeout: 1m30s
      tls_handshake_timeout: 10s
      expect_continue_timeout: 1s
      response_header_timeout: 0s
      disable_keep_alives: false
      disable_compression: false
      max_response_header_bytes: 1048576
      max_response_body_bytes: 10485760
      write_buffer_size: 4096
      read_buffer_size: 4096
      h2:
        strict_max_concurrent_requests: false
        max_decoder_header_table_size: 4096
        max_encoder_header_table_size: 4096
        max_read_frame_size: 16384
        max_receive_buffer_per_connection: 1048576
        max_receive_buffer_per_stream: 1048576
        send_ping_timeout: 0s
        ping_timeout: 15s
        write_byte_timeout: 0s
    access_log_level: ""
    access_log_body_limit: 0
```

Executes Jira API queries based on input messages and returns structured results. The processor handles pagination, retries, and field expansion automatically.

Supports querying the following Jira resources:

-   Issues (JQL queries)

-   Issue transitions

-   Users

-   Roles

-   Project versions

-   Project categories

-   Project types

-   Projects


The processor authenticates using basic authentication with username and API token. Input messages should contain valid Jira queries in JSON format.

## [](#fields)Fields

### [](#access_log_body_limit)`access_log_body_limit`

Maximum bytes of request/response body to include in logs. 0 to skip body logging.

**Type**: `int`

**Default**: `0`

### [](#access_log_level)`access_log_level`

Log level for HTTP request/response logging. Empty disables logging.

**Type**: `string`

**Default**: `""`

**Options**: `` `, `TRACE ``, `DEBUG`, `INFO`, `WARN`, `ERROR`

### [](#api_token)`api_token`

The Jira API token for the specified account. You can generate an API token from your [Atlassian account settings](https://id.atlassian.com/manage-profile/security/api-tokens).

> ⚠️ **CAUTION**
>
> This field contains sensitive information that usually shouldn’t be added to a configuration directly. For more information, see [Secrets](https://docs.redpanda.com/connect/configuration/secrets/).

**Type**: `string`

### [](#backoff)`backoff`

Adaptive backoff configuration for 429 (Too Many Requests) responses. Always active.

**Type**: `object`

### [](#backoff-initial_interval)`backoff.initial_interval`

Initial interval between retries on 429 responses.

**Type**: `string`

**Default**: `1s`

### [](#backoff-max_interval)`backoff.max_interval`

Maximum interval between retries on 429 responses.

**Type**: `string`

**Default**: `30s`

### [](#backoff-max_retries)`backoff.max_retries`

Maximum number of retries on 429 responses.

**Type**: `int`

**Default**: `3`

### [](#base_url)`base_url`

The base URL of the Jira instance (for example, `[https://your-domain.atlassian.net](https://your-domain.atlassian.net)`).

**Type**: `string`

### [](#disable_http2)`disable_http2`

Disable HTTP/2 and force HTTP/1.1.

**Type**: `bool`

**Default**: `false`

### [](#http)`http`

HTTP transport settings controlling connection pooling, timeouts, and HTTP/2.

**Type**: `object`

### [](#http-disable_compression)`http.disable_compression`

Disable automatic decompression of gzip responses.

**Type**: `bool`

**Default**: `false`

### [](#http-disable_keep_alives)`http.disable_keep_alives`

Disable HTTP keep-alive connections; each request uses a new connection.

**Type**: `bool`

**Default**: `false`

### [](#http-expect_continue_timeout)`http.expect_continue_timeout`

Maximum time to wait for a server’s 100-continue response before sending the body. 0 means the body is sent immediately.

**Type**: `string`

**Default**: `1s`

### [](#http-h2)`http.h2`

HTTP/2-specific transport settings. Only applied when HTTP/2 is enabled.

**Type**: `object`

### [](#http-h2-max_decoder_header_table_size)`http.h2.max_decoder_header_table_size`

Upper limit in bytes for the HPACK header table used to decode headers from the peer. Must be less than 4 MiB.

**Type**: `int`

**Default**: `4096`

### [](#http-h2-max_encoder_header_table_size)`http.h2.max_encoder_header_table_size`

Upper limit in bytes for the HPACK header table used to encode headers sent to the peer. Must be less than 4 MiB.

**Type**: `int`

**Default**: `4096`

### [](#http-h2-max_read_frame_size)`http.h2.max_read_frame_size`

Largest HTTP/2 frame this endpoint will read. Valid range: 16 KiB to 16 MiB.

**Type**: `int`

**Default**: `16384`

### [](#http-h2-max_receive_buffer_per_connection)`http.h2.max_receive_buffer_per_connection`

Maximum flow-control window size in bytes for data received on a connection. Must be at least 64 KiB and less than 4 MiB.

**Type**: `int`

**Default**: `1048576`

### [](#http-h2-max_receive_buffer_per_stream)`http.h2.max_receive_buffer_per_stream`

Maximum flow-control window size in bytes for data received on a single stream. Must be less than 4 MiB.

**Type**: `int`

**Default**: `1048576`

### [](#http-h2-ping_timeout)`http.h2.ping_timeout`

Timeout waiting for a PING response before closing the connection.

**Type**: `string`

**Default**: `15s`

### [](#http-h2-send_ping_timeout)`http.h2.send_ping_timeout`

Idle timeout after which a PING frame is sent to verify connection health. 0 disables health checks.

**Type**: `string`

**Default**: `0s`

### [](#http-h2-strict_max_concurrent_requests)`http.h2.strict_max_concurrent_requests`

When true, new requests block when a connection’s concurrency limit is reached instead of opening a new connection.

**Type**: `bool`

**Default**: `false`

### [](#http-h2-write_byte_timeout)`http.h2.write_byte_timeout`

Timeout for writing data to a connection. The timer resets whenever bytes are written. 0 disables the timeout.

**Type**: `string`

**Default**: `0s`

### [](#http-idle_conn_timeout)`http.idle_conn_timeout`

How long an idle connection remains in the pool before being closed. 0 disables the timeout.

**Type**: `string`

**Default**: `1m30s`

### [](#http-max_conns_per_host)`http.max_conns_per_host`

Maximum total connections (active + idle) per host. 0 means unlimited.

**Type**: `int`

**Default**: `64`

### [](#http-max_idle_conns)`http.max_idle_conns`

Maximum total number of idle (keep-alive) connections across all hosts. 0 means unlimited.

**Type**: `int`

**Default**: `100`

### [](#http-max_idle_conns_per_host)`http.max_idle_conns_per_host`

Maximum idle connections to keep per host. 0 (the default) uses GOMAXPROCS+1.

**Type**: `int`

**Default**: `0`

### [](#http-max_response_body_bytes)`http.max_response_body_bytes`

Maximum bytes of response body the client will read. The response body is wrapped with a limit reader; reads beyond this cap return EOF. 0 disables the limit.

**Type**: `int`

**Default**: `10485760`

### [](#http-max_response_header_bytes)`http.max_response_header_bytes`

Maximum bytes of response headers to allow.

**Type**: `int`

**Default**: `1048576`

### [](#http-read_buffer_size)`http.read_buffer_size`

Size in bytes of the per-connection read buffer.

**Type**: `int`

**Default**: `4096`

### [](#http-response_header_timeout)`http.response_header_timeout`

Maximum time to wait for response headers after writing the full request. 0 disables the timeout.

**Type**: `string`

**Default**: `0s`

### [](#http-tls_handshake_timeout)`http.tls_handshake_timeout`

Maximum time to wait for a TLS handshake to complete. 0 disables the timeout.

**Type**: `string`

**Default**: `10s`

### [](#http-write_buffer_size)`http.write_buffer_size`

Size in bytes of the per-connection write buffer.

**Type**: `int`

**Default**: `4096`

### [](#max_results_per_page)`max_results_per_page`

The maximum number of results to return per page when calling the Jira API. [Pagination](https://docs.atlassian.com/software/jira/docs/api/REST/9.17.0/#pagination) in the Jira API is zero-based, so the first page starts at `0`.

**Type**: `int`

**Default**: `50`

### [](#proxy_url)`proxy_url`

HTTP proxy URL. Empty string disables proxying.

**Type**: `string`

**Default**: `""`

### [](#tcp)`tcp`

TCP socket configuration.

**Type**: `object`

### [](#tcp-connect_timeout)`tcp.connect_timeout`

Maximum amount of time a dial will wait for a connect to complete. Zero disables.

**Type**: `string`

**Default**: `0s`

### [](#tcp-keep_alive)`tcp.keep_alive`

TCP keep-alive probe configuration.

**Type**: `object`

### [](#tcp-keep_alive-count)`tcp.keep_alive.count`

Maximum unanswered keep-alive probes before dropping the connection. Zero defaults to 9.

**Type**: `int`

**Default**: `9`

### [](#tcp-keep_alive-idle)`tcp.keep_alive.idle`

Duration the connection must be idle before sending the first keep-alive probe. Zero defaults to 15s. Negative values disable keep-alive probes.

**Type**: `string`

**Default**: `15s`

### [](#tcp-keep_alive-interval)`tcp.keep_alive.interval`

Duration between keep-alive probes. Zero defaults to 15s.

**Type**: `string`

**Default**: `15s`

### [](#tcp-tcp_user_timeout)`tcp.tcp_user_timeout`

Maximum time to wait for acknowledgment of transmitted data before killing the connection. Linux-only (kernel 2.6.37+), ignored on other platforms. When enabled, keep\_alive.idle must be greater than this value per RFC 5482. Zero disables.

**Type**: `string`

**Default**: `0s`

### [](#timeout)`timeout`

HTTP request timeout.

**Type**: `string`

**Default**: `5s`

### [](#tls)`tls`

Custom TLS settings can be used to override system defaults.

**Type**: `object`

### [](#tls-client_certs)`tls.client_certs[]`

A list of client certificates to use. For each certificate either the fields `cert` and `key`, or `cert_file` and `key_file` should be specified, but not both.

**Type**: `object`

**Default**: `[]`

```yaml
# Examples:
client_certs:
  - cert: foo
    key: bar

# ---

client_certs:
  - cert_file: ./example.pem
    key_file: ./example.key
```

### [](#tls-client_certs-cert)`tls.client_certs[].cert`

A plain text certificate to use.

**Type**: `string`

**Default**: `""`

### [](#tls-client_certs-cert_file)`tls.client_certs[].cert_file`

The path of a certificate to use.

**Type**: `string`

**Default**: `""`

### [](#tls-client_certs-key)`tls.client_certs[].key`

A plain text certificate key to use.

> ⚠️ **CAUTION**
>
> This field contains sensitive information that usually shouldn’t be added to a configuration directly. For more information, see [Secrets](https://docs.redpanda.com/connect/configuration/secrets/).

**Type**: `string`

**Default**: `""`

### [](#tls-client_certs-key_file)`tls.client_certs[].key_file`

The path of a certificate key to use.

**Type**: `string`

**Default**: `""`

### [](#tls-client_certs-password)`tls.client_certs[].password`

A plain text password for when the private key is password encrypted in PKCS#1 or PKCS#8 format. The obsolete `pbeWithMD5AndDES-CBC` algorithm is not supported for the PKCS#8 format.

Because the obsolete pbeWithMD5AndDES-CBC algorithm does not authenticate the ciphertext, it is vulnerable to padding oracle attacks that can let an attacker recover the plaintext.

> ⚠️ **CAUTION**
>
> This field contains sensitive information that usually shouldn’t be added to a configuration directly. For more information, see [Secrets](https://docs.redpanda.com/connect/configuration/secrets/).

**Type**: `string`

**Default**: `""`

```yaml
# Examples:
password: foo

# ---

password: ${KEY_PASSWORD}
```

### [](#tls-enable_renegotiation)`tls.enable_renegotiation`

Whether to allow the remote server to repeatedly request renegotiation. Enable this option if you’re seeing the error message `local error: tls: no renegotiation`.

Requires version 3.45.0 or later.

**Type**: `bool`

**Default**: `false`

### [](#tls-enabled)`tls.enabled`

Whether custom TLS settings are enabled.

**Type**: `bool`

**Default**: `false`

### [](#tls-root_cas)`tls.root_cas`

An optional root certificate authority to use. This is a string, representing a certificate chain from the parent trusted root certificate, to possible intermediate signing certificates, to the host certificate.

> ⚠️ **CAUTION**
>
> This field contains sensitive information that usually shouldn’t be added to a configuration directly. For more information, see [Secrets](https://docs.redpanda.com/connect/configuration/secrets/).

**Type**: `string`

**Default**: `""`

```yaml
# Examples:
root_cas: |-
  -----BEGIN CERTIFICATE-----
  ...
  -----END CERTIFICATE-----
```

### [](#tls-root_cas_file)`tls.root_cas_file`

An optional path of a root certificate authority file to use. This is a file, often with a .pem extension, containing a certificate chain from the parent trusted root certificate, to possible intermediate signing certificates, to the host certificate.

**Type**: `string`

**Default**: `""`

```yaml
# Examples:
root_cas_file: ./root_cas.pem
```

### [](#tls-skip_cert_verify)`tls.skip_cert_verify`

Whether to skip server side certificate verification.

**Type**: `bool`

**Default**: `false`

### [](#tps_burst)`tps_burst`

Maximum burst size for rate limiting.

**Type**: `int`

**Default**: `1`

### [](#tps_limit)`tps_limit`

Rate limit in requests per second. 0 disables rate limiting.

**Type**: `float`

**Default**: `0`

### [](#username)`username`

The username or email address of the Jira account.

**Type**: `string`

## [](#examples)Examples

### [](#minimal-configuration)Minimal configuration

Basic Jira processor setup with required fields only

```yaml
pipeline:
  processors:
    - jira:
        base_url: "https://your-domain.atlassian.net"
        username: "${JIRA_USERNAME}"
        api_token: "${JIRA_API_TOKEN}"
```

### [](#full-configuration-with-tuning)Full configuration with tuning

Complete configuration with pagination and timeout settings

```yaml
pipeline:
  processors:
    - jira:
        base_url: "https://your-domain.atlassian.net"
        username: "${JIRA_USERNAME}"
        api_token: "${JIRA_API_TOKEN}"
        max_results_per_page: 200
        timeout: "30s"
```

## Suggested labs

-   [Stream Jira Issues to Redpanda for Real-Time Metrics](https://docs.redpanda.com/labs/docker-compose/jira-metrics-pipeline/)

[Search all labs](https://docs.redpanda.com/labs)