Overview
Setup
- In Strix, go to Settings → Integrations and click Connect on the Linear card. You must be an organization admin, and your plan must include ticketing integrations.
- Approve the app on the standard Linear consent screen (
linear.app/oauth/authorize). Linear redirects back tohttps://app.strix.ai/api/integrations/linear/callback. There, Strix exchanges the authorization code for a token and records the workspace. - In Strix, select a default team or project as the export destination. The picker lists your Linear teams first, then your projects. Select a team to create tickets in that team; select a project to create tickets in that project. You can also enable auto-sync with a minimum severity. Auto-sync exports new findings automatically. Under Sources, select which findings auto-sync exports: Pentests, Supply chain, or both. Both are on by default. Manual exports, bulk exports, and the API ignore this setting.
- Optional: route findings to other teams or projects. Under Route by source, select a destination for pentests, PR reviews, or supply-chain findings. Under Route by repository, select a destination for findings from one repository. Both cards sit under Advanced on the settings page and are collapsed by default. See Route tickets.
Route tickets
Strix can send findings to different Linear teams or projects. Linear and Jira 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 team or project.
Route by source
Open Settings → Integrations, click Configure on the Linear 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 team or project.
Route by repository
Click Add repository route… and select a repository. Then select the team or 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.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.
GET /api/v1/integrations/linear/settings returns the stored routes and, for administrators, the connected repositories with their identifiers.
Required scope: integrations:write
Ticket defaults
The Linear 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 Linear user in Default assignee. Strix lists the active users of the connected workspace. Strix assigns every new ticket to that user. Leave the field empty to create unassigned tickets.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 in one Linear project under the selected team. Select a team as the default destination for this to apply. Strix creates the project 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. If the destination is a Linear project (a route or the default points at a project, not a team), Strix keeps the tickets in that project and does not create a pentest project.Due date by severity
Turn on Due date by severity to set a due date on every new issue, counted in days from the day that Strix creates it. Give each severity a number of days or leave it blank for no due date. The setting applies to every new ticket — manual exports, bulk exports, the API, and auto-sync — and never changes tickets that Strix already created. If Linear rejects the due date when Strix creates a ticket, Strix retries the create without it. Linear does not have a priority mapping: a Strix severity always sets the matching Linear priority. Set it through the API withdue_date_days on PATCH /api/v1/integrations/linear/settings: map each severity (critical, high, medium, low) to a whole number of days from 1 to 365, or null. Send null to turn it off.
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 team or 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/linear/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/linear/test-ticket | Create a test ticket in the default team or project | integrations:write |
OAuth scopes requested
Linear supplies long-lived access tokens (no refresh token). Thus the connection continues until you disconnect it or revoke it.
What data flows where
Strix → Linear (when you export a vulnerability manually, or when auto-sync exports it):- Issue title: the vulnerability title.
- 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.
- The issue ID and identifier, its workflow state type (for example, started or completed), and the display name of the actor who made the change. Strix applies the state 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. - Signed webhooks: Strix makes sure that each Linear webhook delivery has a correct HMAC-SHA256 signature (in a timing-safe comparison) and a timestamp in the permitted window. This limits replay.
- Token storage: Strix keeps the access token server-side in its database. The token applies only to your organization. The browser and other tenants cannot see it.
- Revocation on disconnect: When you disconnect the integration, Strix revokes the token on the Linear side. Thus no live tokens stay.
- Audit trail: The Strix audit log records the connection of the integration and the changes to the settings.
Disconnecting
An org admin can disconnect Linear at any time from Settings → Integrations, or through the API:integrations:write
The disconnect operation removes the stored token and revokes the OAuth grant. Strix does not delete the issues that it already created in Linear.