Get a demo — 30 minutes →
← Back to blog
Anomity robot illustrating Anomity Integrates with Jira
Company

Anomity Integrates with Jira

TL;DR
  • Anomity now files findings into Jira Cloud. Connect a Jira site from the Integrations section of Settings, pick a project and issue type, and findings become Jira issues, by hand from the finding panel or automatically from any notification rule.
  • One issue per problem, not per laptop. An unvetted MCP server on 37 machines is one Jira issue listing 37 devices. Per-incident events, such as a secret pasted into an AI site, stay one issue each.
  • Issues follow the finding: Anomity resolves the issue when every affected device is clean, reopens it if the finding returns, and comments when the device list grows or shrinks.
  • Delivery is queued and duplicate-safe. A Jira outage never slows Anomity or drops a finding, and a create that timed out is recovered by searching for its marker label rather than posting a second issue.
  • Setup is a site URL, an account email and an API token, verified against Jira before it is stored, encrypted, and never returned. Use a dedicated service account: Jira API tokens cannot be scoped.
  • The same release adds per-organization SLA response windows, so the console, the queue and the digest all measure findings against your own targets.

Anomity now integrates with Jira. Connect a Jira Cloud site and Anomity files its findings as Jira issues in the project you choose, one issue per problem across the fleet, and keeps each issue in step with the finding: resolved when every device is clean, reopened if it comes back. It is available today to every organization, from the Jira card in the Integrations section of Settings in the Anomity console, alongside ClickUp, which shipped in the same release.

This post covers what Anomity files and when, what an issue looks like, how setup works, and the per-organization SLA response windows that shipped with it.

Why Jira, and why now

An alert gets attention; a ticket gets an owner. The findings Anomity raises on the endpoint, an MCP server nobody vetted, a secret sitting in an agent config, an extension with more reach than it needs, are rarely fixed by the security team itself. They are fixed by a platform team, an IT team or the developer whose laptop it is, and those teams plan their work in a tracker. Until now the only way across was to copy a finding into Jira by hand.

The Jira card had said coming soon in the Integrations catalog for a while. This release gives it a backend, and gives ticketing as a whole a shape every later tracker reuses, which is how Zendesk followed two days later.

What Anomity files, and when

There are two ways in, and both go through the same create path.

PathHow it works
By handA Create ticket button on the finding panel, for admins. Use it for the finding you are looking at right now.
AutomaticallyConnecting Jira adds a ticketing destination that any notification rule can select, next to Slack channels and webhooks. Every existing trigger, severity filter and device-tag filter works with it, so a rule such as 'MCP supply-chain risk on the engineering fleet' can open Jira issues without a new rule language.

Ticketing files findings. A rule that matches hook decisions or audit events has no finding to open an issue for, and the channel row reports that rather than failing silently.

One issue is one problem, not one row

Anomity stores findings one row per device, because that is what remediation needs. A tracker needs the opposite. If an unvetted MCP server is configured on 37 laptops, the useful ticket is one issue that lists 37 machines, not 37 issues that bury the backlog. Anomity derives a device-independent identity for each finding and groups on it, so the same configuration problem across the fleet becomes one issue. The work of approving or removing that server is the subject of our guide to building an MCP server registry.

Grouping is refused where it would mislead. A secret pasted into an AI site, a session that bypassed a guard or an agent modifying its own configuration is an incident, not a state, and two people pasting two different secrets are two incidents. Those stay one issue each.

What an issue contains

  • A title prefixed with Anomity, with the device count when the issue spans the fleet.
  • The facts: severity, policy, finding type, and the agent, MCP server and attack path where they apply.
  • Affected devices, listed by name up to 20, then a count.
  • Details from a reviewed allowlist of fields, such as the file path, server name, transport, permission or CVE. Anything not on the list is dropped, because a ticket body leaves Anomity entirely. Secret values never appear: they are redacted on the endpoint, and the allowlist is tested against secret-shaped fields. Our write-up on how MCP servers expose enterprise secrets shows why that line matters.
  • Remediation steps, numbered, with links that work from outside the console, and a link back to the finding.
  • Labels: anomity, one for the finding type, any extra labels you set on the connection, and a unique marker label Anomity uses to find its own issue again.

What it does with ticket state

Filing is half of it. An issue that stays open after the problem is fixed, or stays closed after it comes back, teaches people to ignore the tracker. Every hour, Anomity reconciles each issue against its findings:

  • Resolves the issue once every finding in its group has cleared across the fleet. Jira workflows are per project, so Anomity reads the transitions the issue actually offers and picks one into a done status. If the workflow has no route to done, Anomity comments on the issue saying so, rather than leaving it silently open.
  • Reopens it if the finding returns.
  • Comments when the affected device list grows or shrinks, so the assignee sees progress without opening Anomity.

The sync runs one way. Closing the Jira issue does not clear the finding: a finding clears when the device stops showing the problem, which is the only signal Anomity trusts.

Queued, and never duplicated

Ticket work is queued and delivered every minute, so a Jira outage never slows the path that receives device snapshots, and a rate limit never drops a finding. Creating an issue is not idempotent, and a timeout is exactly the moment you cannot know whether it landed. So Anomity claims the group before it creates, stamps the issue with its marker label, and recovers an uncertain create by searching Jira for that marker, never by posting again. Concurrent workers on one group produce one issue.

How setup works

  1. Create a dedicated Jira service account with access to the project Anomity will file into, and create an API token for it in your Atlassian account settings, under Security and API tokens.
  2. In Anomity, open Settings, go to the Integrations section and choose Manage on the Jira card. Enter the site URL (your-team.atlassian.net), the account email and the token.
  3. Anomity verifies the credential against Jira before storing anything. Once it is accepted, pick the project and the issue type from lists Jira returns, and optionally add extra labels.
  4. File a first issue with Create ticket on any finding, then select the Jira destination on the notification rules that should file automatically.

The token is encrypted with AES-256-GCM and is never returned by any API, not even masked. A Jira API token cannot be scoped: it carries every permission of the account that created it, which is why the first step is a service account and not a person. Anomity re-validates the connection every six hours, and only an authorization failure changes the card to show that it needs reconnecting. If that happens, queued work is held for up to seven days, and reconnecting delivers it.

Two limits to know: Jira Cloud only, on atlassian.net, with Jira Data Center and Server not supported; and no bulk create from the findings list yet, so automatic filing goes through rules.

Per-organization SLA response windows

A ticket needs a clock. Anomity has always measured how long a finding stays open against a response window per severity, but every organization ran on the same hardcoded set. Now an organization owner can set its own in Settings.

SeverityDefault window
Critical72 hours
High120 hours (5 days)
Medium168 hours (7 days)
Low336 hours (14 days)

Overrides are partial: tightening critical to 24 hours leaves the other three on the defaults, and they keep following any future change to those defaults. Values run from one hour to one year. The windows are resolved on the server, so the findings page, the queue and the scheduled digest can no longer disagree about what is past SLA. My Queue was rebuilt around them: findings assigned to you are ordered by time left in their window, with how long ago a breached one passed it, next to the open critical and high findings nobody owns.

How Anomity and Jira fit together

Jira is where remediation gets planned, assigned and tracked. Anomity is where the AI on the fleet becomes visible: the Endpoint Sensor inventories agents, MCPs, extensions, plugins, skills, secrets, hooks, CLIs and local LLM runtimes; the Browser Sensor covers AI web services and the accounts used in them; and cloud discovery reads the OAuth grants held by AI applications. On agents that expose a hook, Anomity decides allow, deny or log before a tool call runs. The integration hands the findings that need a person to the place that person already works, and keeps the record honest as the fleet changes. If Atlassian is also part of your AI estate, the Atlassian integration reads the other direction: the AI inside your Atlassian organization.

Anomity complements the network, EDR, DLP, GRC and SIEM stack rather than replacing any of it, collects metadata only, redacts secret values on the endpoint, and is SOC 2 Type II attested. To see your own findings become Jira issues, book a 30-minute demo.

Frequently asked questions

What does the Anomity Jira integration do?

It opens Jira issues for Anomity findings and keeps them in step with the finding. An admin connects a Jira Cloud site, chooses a project and issue type, and then either files issues by hand with the Create ticket button on a finding, or adds the Jira channel to notification rules so matching findings are filed automatically. Anomity later resolves, reopens and comments on each issue as the finding changes across the fleet.

Which Jira versions are supported?

Jira Cloud sites on atlassian.net. Jira Data Center and Jira Server are not supported. Because the customer supplies the hostname and every request carries a credential, Anomity pins delivery to Atlassian's cloud domain; opening it to self-hosted Jira is an egress decision we have not made yet.

What credentials does Anomity need from Jira?

The Jira site URL, an account email and an API token created for that account. Anomity verifies them against Jira before saving, stores the token encrypted with AES-256-GCM, and never returns it through any API, not even masked. A Jira API token carries the full permissions of the account that created it and cannot be scoped down, so create it on a dedicated service account with access only to the project Anomity files into, rather than on a person's login.

Will Anomity open one Jira issue per laptop?

No. Anomity stores findings per device, but it files one issue per problem across the fleet. An unvetted MCP server configured on 37 laptops becomes one issue with an affected-devices list, and Anomity comments as that list changes. Events that are incidents in their own right, such as two people pasting two different secrets into an AI site, are deliberately kept as separate issues.

What does an Anomity Jira issue contain?

A title prefixed with Anomity and the device count, then the description, severity, policy, finding type, the agent and MCP server where relevant, the attack path, the affected devices (up to 20 listed by name, then a count), a reviewed set of technical details, numbered remediation steps and a link back to the finding in the console. Details pass through an allowlist before they leave Anomity, so nothing that has not been reviewed reaches the ticket, and secret values never do. Each issue carries an anomity label, a label for the finding type, any extra labels you configure and a unique marker label.

Does closing the Jira issue close the finding in Anomity?

No. The sync is one way, from Anomity to Jira. A finding clears in Anomity when the device no longer shows the problem, and Anomity then resolves the issue. Two-way sync would need a public callback endpoint with per-organization signature verification, a materially larger security surface, so it is out of scope for now.

What happens if Jira is down or rejects the credential?

Nothing is lost. Ticket work is queued and delivered by a job that runs every minute, so a Jira outage never slows Anomity's ingest. Temporary failures are retried. If Jira rejects the credential, Anomity stops calling Jira, keeps the queued work for up to seven days, and the Jira card shows that it needs reconnecting; reconnect within that window and the backlog is delivered. Anomity also re-checks the connection every six hours.

What are SLA response windows?

The number of hours a finding of each severity may stay open before it counts as past SLA. The defaults are 72 hours for critical, 120 for high, 168 for medium and 336 for low. An organization owner can now override any of them in Settings, between one hour and one year, and an override for one severity leaves the others on the defaults. The console, the findings queue and the scheduled digest all read the same values.

Ask AI about Anomity
ChatGPT Claude Perplexity Google AI Grok