IntegrationInitial Support

Jira

Govern issue writes and workflow transitions with deterministic identity and bounded retries.

RunwayCtrl wraps Jira writes at the tool boundary. Every issue create, comment, assignment, or transition passes through policy enforcement and produces a traceable attempt record.

01 / Governed actions

What we govern

Initial support focuses on high-risk Jira writes. Each action has a defined scope and prevents specific failure modes.

Create issue

ScopePer issue identity
PreventsDuplicate issue creation from retries or parallel agents

Add comment

ScopePer issue / comment body
PreventsRepeated comments caused by retry storms or overlapping agents

Update fields

ScopePer issue / field set
PreventsDuplicate or conflicting field mutations during retries

Assign issue

ScopePer issue / assignee
PreventsConflicting assignment changes across agents

Transition issue

ScopePer issue / target status
PreventsRacing workflow transitions and repeated status changes

Create issue link

ScopePer issue pair / link type
PreventsDuplicate relationship creation between the same issues
02 / ActionKey conventions

Stable action identity

ActionKeys are developer-provided or derived from canonicalized action inputs. Same write = same key = deduplicable.

Canonicalization: normalize fields, stable hashing, deterministic ordering. No fuzzy intent matching.

jira.issue.create:{tenant}:{project}:{issue_type}:{summary_hash}

Canonical hash of issue identity. Same create request = same key = dedupe.

jira.issue.comment:{site}:{issue_key}:{comment_hash}

Identity tied to one comment on one issue. Prevents duplicate comments.

jira.issue.update:{site}:{issue_key}:{field_hash}

Canonical update identity for a specific field set on a specific issue.

jira.issue.assign:{site}:{issue_key}:{assignee}

Per-issue assignment identity. Prevents duplicate assignee changes.

jira.issue.transition:{site}:{issue_key}:{status}

Per-issue, per-status transition identity. Same target status = same key.

03 / Policy defaults

Opinionated presets

Start with a preset, customize as needed. Each preset defines retry budget, backoff curve, stop conditions, and lease scope.

Safe default

Balanced for most issue and workflow automations

Budget3
BackoffExponential + jitter (250ms, 500ms, 1s)
StopOn 4xx silent errors, auth/permission errors
LeasePer issue or per action

High-volume ops

Stricter limits for bursty project automations

Budget2
BackoffStronger exponential (500ms, 2s)
StopOn 4xx, rate-limit, or secondary limit
LeasePer issue

Strict dedupe

Single-attempt mode for sensitive workflows

Budget1
BackoffNone
StopOn any error
LeasePer action
04 / Concurrency leases

Prevent dueling agents

Short-lived leases prevent multiple agents from racing the same Jira issue. Only one agent holds the lease at a time.

Per-issue lease

One agent per issue at a time. Prevents racing updates, assignments, or transitions.

Per-comment lease

One agent per comment identity. Prevents duplicate comments on the same issue.

Per-action lease

Fine-grained control. One agent per specific action type per issue.

05 / Receipts + traces

What you get

Every governed action produces an attempt record. The ledger is the source of truth for governed Jira writes.

Trace fields align to OpenTelemetry + W3C Trace Context when enabled.

{
  "schema_version": "0.1",
  "attempt_id": "att_01...",
  "action_key": "jira.issue.comment:acme:PROJ-142:7b2c...",
  "integration": "jira",
  "target": {
    "site": "acme.atlassian.net",
    "issue_key": "PROJ-142"
  },
  "policy": {
    "retry_budget": 3,
    "backoff": [250, 500, 1000],
    "lease_scope": "per-action"
  },
  "outcome": "success",
  "timing": {
    "started_at": "2026-03-06T19:19:12Z",
    "finished_at": "2026-03-06T19:19:13Z"
  },
  "trace": {
    "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
    "span_id": "00f067aa0ba902b7"
  },
  "tool": {
    "name": "jira.addComment",
    "endpoint": "POST /rest/api/3/issue/{issueIdOrKey}/comment"
  },
  "result": {
    "issue_key": "PROJ-142",
    "comment_id": "10001"
  },
  "redaction": true,
  "excerpt": null
}

Attempt record includes action identity, timing, policy, outcome, and tool metadata.

06 / Boundaries

What's not yet

Initial support is scoped to the highest-value write paths. These capabilities are not included in the current preview.

  • -Bulk issue import or large migration jobs
  • -Full workflow administration and configuration changes
  • -Project provisioning or deletion
  • -Marketplace app lifecycle management
  • -Broad Jira API coverage beyond initial governed actions
  • -Arbitrary automation graph orchestration
07 / Get started

Bring one issue workflow

We'll help define ActionKeys and policies for your first Jira workflow. You get early builds, a shared Slack channel, and direct input on priorities.