FabricFabricSDK
Plugins

Jira (Atlassian)

Search, create, transition, and delete issues; list projects.

Authentication

TypeDefaultDetails
api_keyEmail + API token combined as Basic auth (base64(email:token))

Each Jira tenant has a unique site URL like https://acme.atlassian.net. The plugin requires siteUrl as a constructor option — it's the only plugin in the catalog that takes a per-tenant base URL.

Endpoints

PathRiskDescription
issues.searchreadSearch issues by JQL.
issues.getreadFetch an issue by id or key (e.g. PROJ-123).
issues.createwriteCreate a new issue in a project.
issues.transitionwriteTransition an issue's status.
issues.deletedestructive (irreversible)Delete an issue. Permanent.
projects.listreadList all projects in the site.

issues.search

const { issues } = await fabric.jira.api.issues.search({
  jql: 'project = PROJ AND status = "To Do" ORDER BY priority DESC',
  fields: ['summary', 'status', 'assignee'],
  maxResults: 50,
});

issues.create

await fabric.jira.api.issues.create({
  projectKey: 'PROJ',
  summary: 'Spike: webhook idempotency',
  description: 'See linked design doc for context.',
  issueType: 'Task',
});

The plugin wraps your description string in Atlassian Document Format (ADF) automatically.

issues.transition

Transition IDs are project-specific. Use Jira's web UI or its /rest/api/3/issue/{id}/transitions GET endpoint to discover them.

await fabric.jira.api.issues.transition({
  issueIdOrKey: 'PROJ-123',
  transitionId: '31', // "Done"
});

Factory

import { jira } from '@fabricorg/integrations/plugins';

const fabric = createFabric({
  plugins: [
    jira({
      email: process.env.JIRA_EMAIL,
      apiToken: process.env.JIRA_API_TOKEN,
      siteUrl: 'https://acme.atlassian.net',
    }),
  ],
});