Skip to content

Setting Up the Integration

Step 1: Create an OAuth 2.0 Integration in Atlassian

Section titled “Step 1: Create an OAuth 2.0 Integration in Atlassian”
  1. Go to developer.atlassian.com/console/myapps
  2. Click CreateOAuth 2.0 integration
  3. Enter a name (e.g., “NodeKAT”) and accept the terms
  4. In your app settings, go to Permissions and add these API scopes:
ScopeDescription
read:jira-workRead Jira issues, projects, and comments
read:jira-userRead user information (assignees, reporters)
  1. Go to AuthorizationConfigure and add a callback URL (required by Atlassian, but NodeKAT uses client credentials so this can be a placeholder like http://localhost:8080/callback)
  2. Note your Client ID and Client Secret from the app settings page

Provide the following credentials to your NodeKAT administrator:

  • Client ID — from your Atlassian OAuth 2.0 app
  • Client Secret — from your Atlassian OAuth 2.0 app

Your administrator will configure NodeKAT to use these credentials.

NodeKAT uses the OAuth 2.0 client credentials grant to authenticate with Jira. This means:

  • No user login flow is required — the integration authenticates as itself
  • Tokens are managed automatically by NodeKAT
  • No inbound endpoints or callback handling is needed
PhaseBehavior
AcquisitionOn startup, NodeKAT exchanges client credentials for an access token via POST https://auth.atlassian.com/oauth/token
Auto-refreshTokens are refreshed proactively 5 minutes before expiry (tokens typically last 3600 seconds)
401 RetryIf a request returns 401 Unauthorized, the token is refreshed immediately and the request is retried once
Cloud ID DiscoveryIf JIRA_CLOUD_ID is not set, NodeKAT auto-discovers it via GET https://api.atlassian.com/oauth/token/accessible-resources
Concurrent protectionAn async lock prevents parallel token refreshes

NodeKAT supports cross-referencing between Jira and GitHub. When the GitHub integration is also configured, the GithubService.search_by_jira_id() method can find commits, PRs, and branches that reference a Jira ticket ID. This enables workflows like asking “what code changes are associated with PROJ-123?”