Overview
Setup
- In Strix, go to Settings → Integrations and click Connect on the Jira card. You must be an organization admin, and your plan must include ticketing integrations.
- Strix opens the standard Atlassian consent screen (
auth.atlassian.com). Sign in with a Jira account that can browse projects and create issues in the target projects. Then approve the requested scopes. - Atlassian redirects back to
https://app.strix.ai/api/integrations/jira/callback. Strix exchanges the authorization code for tokens, records the Jira site (cloud ID and site URL), and registers a webhook for inbound status synchronization. - In Strix, select a default project (and, if you want, a default issue type) as the export destination. You can also enable auto-sync with a minimum severity. Auto-sync exports new findings automatically.
- Optional: route findings to other projects. Under Route by source, select a project for pentests, PR reviews, or supply-chain findings. Under Route by repository, select a project for findings from one repository. Both cards sit under Advanced on the settings page and are collapsed by default. See Route tickets.
If the authorizing Atlassian account has access to more than one Jira site, Strix connects the first accessible site. If you have more than one site, use an account that has access only to the applicable site.
Route tickets
Strix can send findings to different Jira projects. Jira and Linear share the same routing model. Strix resolves the destination of each ticket in this order:- The destination that you select in the export dialog.
- The repository route of the repository that the finding belongs to.
- The source route of the finding source.
- The default project.
Route by source
Open Settings → Integrations, click Configure on the Jira card to open its settings page, and expand Route by source under Advanced. The card shows one destination for each source:
If a source has no destination, Strix uses the default project.
Route by repository
Click Add repository route… and select a repository. Then select the project for its findings. Strix matches a pentest finding through the repositories of the pentest and a PR review finding through the repository of the pull request. A repository route has priority over a source route.Required fields on routed projects
If a routed project has required fields, the route shows the same field editors as the default project. Strix saves the route when every required field has a value. Each route can also use its own issue type.Set routes through the API
Thesource_routes object replaces the stored source routes. To use the default destination for a source, set the key to null or leave the key out. The repository_routes array replaces the stored repository routes. A repository that is not in the array loses its route. For each route, ticket_type and jira_field_values are optional. Strix rejects a route that misses a required field.
GET /api/v1/integrations/jira/settings returns the stored routes and, for administrators, the connected repositories with their identifiers.
Required scope: integrations:write
Ticket defaults
The Jira settings page (Settings → Integrations → Configure) holds the defaults that Strix applies to every ticket that it creates. Manual exports, bulk exports, the API, and auto-sync use the same defaults.Default assignee
Select a Jira user in Default assignee. Strix lists the users that Jira can assign in the default project. Strix assigns every new ticket to that user. Leave the field empty to create unassigned tickets. If a route sends a finding to a different project, the user must also be assignable in that project; if not, Strix stops the export with an error that tells you to change the assignee or the route.Title and description templates
Strix renders the ticket title and description from templates. A template mixes text with placeholders in double braces. The default title template is{{title}} and the default description template is {{details}}.
Strix rejects a template that contains an unknown placeholder. A title template can hold 500 characters and a description template 20,000 characters.
Group tickets by pentest
Turn on Group tickets by pentest to collect the tickets of one pentest under one Jira Epic in the selected project. The project needs an Epic issue type. On Jira Server and Data Center, the issue create screen also needs the Epic Link field. Strix creates the Epic the first time that it exports a finding from the pentest and reuses it afterwards. Tickets from PR reviews and supply chain findings are not grouped.Preview and test ticket
Click Preview ticket to see the rendered title, description, destination, and assignee of a sample finding. Click Send test ticket to create a real ticket in the default project from the same sample. Send test ticket requires the administrator role.Set defaults through the API
default_assignee_id to null to remove the assignee and a template to null to restore the default. Strix validates the assignee against the users that GET /api/v1/integrations/jira/users returns.
The finding preview has a
mode field. create shows the ticket that a push opens, with its destination. update means that the finding already has a ticket: a push only updates its description and status, so existing_ticket gives the link to it and destination and ticket.title are null.
| POST | /api/v1/integrations/jira/test-ticket | Create a test ticket in the default project | integrations:write |
OAuth scopes requested
Access tokens are short-lived. Strix refreshes them automatically with the rotating refresh token. All API calls go through
https://api.atlassian.com/ex/jira/<cloudId>/rest/api/3 and apply only to the one connected site.
What data flows where
Strix → Jira (when you export a vulnerability manually, or when auto-sync exports it):- Issue summary: the vulnerability title (shortened to the Jira limit).
- Issue description: severity, CVSS and CVE (when present), target, endpoint or affected file, impact, technical analysis, evidence, suggested fix or remediation steps, proof of concept, and a link back to the issue in Strix.
- Priority mapped from severity, and a due date when an issue is snoozed.
- Status comments (for example, “marked In Progress by …”) when the Strix status changes.
jira:issue_updated):
- The issue ID and key, its status category (new, in progress, or done), the due date, and the display name of the user who made the change. Strix applies the status category to the status of the linked vulnerability.
Security
- Admin-gated: The connect and callback endpoints require an authenticated Strix org admin. Strix checks the role again at the callback. Thus a demoted user cannot complete a pending connection.
- CSRF-protected OAuth: The OAuth
stateis HMAC-signed and bound to the initiating organization and user. It expires after 10 minutes. - Webhook verification: Atlassian does not sign Jira dynamic webhooks. Thus the callback URL contains a per-connection random secret. Strix compares this secret (in a timing-safe operation) with the stored value before it processes a payload.
- Token storage: Strix keeps the access and refresh tokens server-side in its database. The tokens apply only to your organization. The browser and other tenants cannot see them.
- One webhook URL per Atlassian account: Atlassian accepts one webhook URL for each Atlassian account and OAuth app. If the account that connects Jira already sends Strix webhooks from another Strix workspace, the connection completes without the webhook. Exports work, but Jira status changes do not flow back. The Integrations page shows Connected, status sync off. To enable the sync, disconnect Jira in the other workspace, then reconnect it here.
- Revocation on disconnect: When you disconnect the integration, Strix deletes the webhook and revokes the Atlassian grant. Refresh-token revocation makes the full grant invalid. Thus no live tokens stay on the Atlassian side.
- Audit trail: The Strix audit log records the connection of the integration and the changes to the settings.
Self-hosted Jira (on-prem Strix only)
An on-prem Strix install can connect to a Jira Data Center or Jira Server instance on the same network. Hosted Strix (app.strix.ai) does not offer this option. The Connect button on the Jira card asks which Jira you use: Jira Cloud starts the Atlassian OAuth flow above, and Self-hosted Jira opens a form for the instance URL and a personal access token.
- In Jira, create a personal access token under Profile → Personal Access Tokens. The token owner must be able to create issues in the target projects.
- In Strix, click Connect on the Jira card and select Self-hosted Jira.
- Enter the instance URL (for example
https://jira.internal.example.com) and the token. Then click Connect.
integrations:write. Hosted Strix returns 404 for this route.
Disconnecting
An org admin can disconnect Jira at any time from Settings → Integrations, or through the API:integrations:write
The disconnect operation removes the stored tokens, deletes the Jira webhook, and revokes the OAuth grant. Strix does not delete the issues that it already created in Jira.