Last updated May 8, 2026

Atlassian developer changelog

This page contains announcements and updates for developers from various products, platforms, and programs across Atlassian. It includes filter controls to make it easier to only see updates relevant to you.

To ensure you don’t miss any updates, we also provide RSS feeds. These feeds will take on any filters you applied to the page, and are a standardized way of keeping up-to-date with Atlassian changes for developers. For example, in Slack with the RSS app installed, you can type /feed <FEED URL> in any channel, and RSS updates will appear in that channel as they are posted.

8 May 2026

Removed Boolean usages of the `autoFocus` prop removed from modal dialog

Connect - Core Platform (excludes product REST APIs)
Forge - Core Platform (excludes product REST APIs)
Library - Atlaskit

The boolean usages of the autoFocus prop have now been removed from @atlaskit/modal-dialog. The previously default value of true, which automatically moves focus to the first interactive element within the modal, is now the default with no option to set it to false. This is to improve accessibility and follow the WCAG guidelines for focus within a modal dialog.

Boolean usages of autoFocus can be removed by running the included codemod.

7 May 2026

Announcement Newest improvements to our design system: Team '26 Design Language Drop

Forge - Core Platform (excludes product REST APIs)
Library - Atlaskit

EDITED 8 May 2026

Hello Marketplace partners,

We're excited to share that the newest improvements to Atlassian’s design language is here, as you may have seen at Team '26!

  • Tile & Object system

  • Spotlight component

  • Shape – Border & Radius foundations

  • Labelling system (for status and categorisation)

  • Motion foundations

These build upon on our refreshed visual language that launched last year at Team ’25 (including colour, typography, and iconography that many of you already adopted). It makes it even easier to build modern UI that is cohesive across Atlassian and Marketplace apps, with better visual clarity and accessibility.

We will be shipping these improvements to components, design tokens and guidance as part of the Atlassian Design System (ADS), and Forge UI Kit will also receive updates.

The following are in development behind feature gates. To preview the new improvements, please see Atlassian Design System documentation. We will share adoption and migration details once they are ready for use in your apps.

🎨 Tile & Object system

The Tile & Object system replaces inconsistent custom tile-like UI elements — previously scattered across products with mismatched sizes, radii, colours, and naming conventions. We now offer a single, coherent standard for representing tasks, pages, objects, and app icons.

Changes are coming to Avatar, Icon tile, Tile and Object packages to align with the new Tile system. The Icon-object package has been deprecated and replaced by Object.

Before/After of Tile System in Jira

 

💡 Spotlight Component

We are introducing a modernised onboarding component for product tours and user engagement flows consistent with our improved design language. The new Spotlight replaces the deprecated Onboarding component.

Before: Onboarding Component

After: Spotlight Component

 

📦 Shape Foundations: Border & Radius

New design tokens for border widths and corner radii bring consistency to the shape language across Atlassian UI. Atlassian Design System components will be updated as well as the @atlaskit/tokens package.

Together, these foundations ensure components feel more unified and polished — rounded corners and border styles will follow a consistent system rather than being defined ad-hoc per component. For more information on whats to come, check out our border width and radius docs.

New radius tokens

New border width tokens

 

🏷️ Labelling system (for status and categorisation)

We’re introducing a more intuitive, accessible, and scalable labelling system that standardises consistent presentation of statuses and categorisation, supporting app-specific needs while maintaining coherence and visual clarity.

We’ve updated the visual appearance of Lozenges, Tags, and Badges to have the right level of prominence in the UI, and look and feel harmonious in every context they show up. Lozenges can now included a trailing metric, and we are introducing a new Lozenge dropdown variant, as well as a new Avatar tag to represent individuals, teams, or AI agents.

Additionally, to provide greater visual distinction and hierarchy between Lozenge and Tag, subtle Lozenge will be deprecated and need to be migrated to the new default Lozenge appearance, or where applicable to Tag instead.

Updated components: Badge, Lozenge, ad Tag

New components: Lozenge Dropdown and Avatar tag

 

✨ Motion Foundations - Phase 1 (Early access)

Motion breathes life into every interaction and brand moment within apps, helping users understand spatial relationships, confirms their actions, and carries branded human expression across experiences. Our approach to motion introduces a systematic, shared language, enabling you to make good motion the easy default, not an exception.

In the initial release, we will be introducing semantic motion tokens and base tokens as the foundation of the system. Uplifted and new motion in key Atlassian Design System components are coming, as well as an improved motion primitive to replace legacy entering components and simplify applying entry and exit transitions in UI.

Learn more about how we think about motion on atlassian.design.

Motion package before vs after

 

Questions or feedback?

We'd love to hear from you — please share on the Atlassian Developer Community!

6 May 2026

Removed Node.js 20 runtime is no longer supported for Forge apps

Forge - Core Platform (excludes product REST APIs)

What’s changing?

The nodejs20.x runtime for Forge apps has reached the end of its deprecation period and is no longer supported.

Starting May 6, 2026, Atlassian will progressively block the ability to deploy or update apps using the nodejs20.x runtime. Existing deployments will continue to function, but they are provided "as-is" without support or warranties. Over time, apps using unsupported runtimes may become non-functional or vulnerable to security issues.

What you need to do

You must update your app's to a supported Node.js runtime (nodejs22.x or higher) to continue deploying updates.

  1. Edit your app’s manifest.yml file

  2. Update the app.runtime.name property to nodejs22.x or nodejs24.x

  3. Update your local development environment to a supported Node runtime

  4. Update your Forge CLI to the latest version

  5. Run npm install to update your dependencies

  6. Test your app for compatibility with any breaking changes in the Node runtime

  7. Deploy your app to production using forge deploy -e production


For detailed instructions, see the Node.js runtime documentation.

5 May 2026

Deprecation Notice Deprecating Jira Issue Glance Forge Module

Forge - Core Platform (excludes product REST APIs)
Forge - Jira Cloud Platform (excludes Jira REST APIs)
Forge - Jira Software Cloud (excludes JSW REST APIs)

We are announcing the deprecation of https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-issue-glance/ (jira:issueGlance), as we have replaced with https://developer.atlassian.com/platform/forge/manifest-reference/modules/jira-issue-context/ (jira:issueContext) module. The Jira Issue Glance module will soon be removed from the work items completely.

Please refer to the following documentation for more details - https://developer.atlassian.com/cloud/jira/platform/future-proof-issue-glance-implementation/

Announcement Adding storage:app to your Forge manifest requires admin approval for upgrades made after April 30

Forge - Core Platform (excludes product REST APIs)

What is changing?

We’ve updated Forge app upgrade behaviour for apps that add the storage:app scope to their manifest, including apps migrating from Connect to Forge.

Previously, some app versions that added storage:app could be rolled out using bulk upgrade. This behaviour changed on April 30, and is currently not supported. When a new app version adds storage:app, the upgrade requires site admin approval and can't be applied through bulk upgrade.

Who is affected?

This behaviour applies when a new app version adds storage:app to the Forge manifest. It may affect apps adopting Forge-hosted storage, including apps migrating from Connect to Forge.

If your app already has storage:app in its manifest, this change does not affect upgrades that do not add new privileged scopes.

What action is required?

If you plan to add storage:app:

  • release the change as a major version upgrade

  • expect site admins to approve the new version

  • for now - don't rely on bulk upgrade to move existing installations to that version

  • consider how you will support customers who remain on the previous version until they approve the upgrade.

What’s Next

Atlassian is actively investigating restoring storage:app as a scope increase that is able to be managed by bulk upgrade

4 May 2026

Announcement New Forge app to complete Marketplace App onboarding security requirements

Marketplace Platform

We are enhancing the partner experience in completing the Marketplace App onboarding security requirements by consolidating all security questionnaires, including both partner and app-specific questions, into a single Forge app. This app is accessible via your Marketplace App Approval requests. You can view your up-to-date questionnaire responses within your existing and future app approval requests. We are also making it easy for you to review the security scanner findings (vulnerabilities) and designate a point of contact for app-specific questions.

Please refer to the QRG for more details: https://atlassianpartners.atlassian.net/wiki/spaces/resources/pages/1723105354/Completing+Marketplace+App+Onboarding+Security+Requirements+-+Quick+Reference+Guide

More details

Old experience

New experience

Old UI

 

New UI

 

Questionnaire responses import is not available

Import feature

Atlassian can perform bulk responses import on request. Questionnaire submission still require at individual app level.

Vulnerabilities details only available for security contacts

 

App vulnerabilities quick overview

 

No questionnaire completion progress bar

 

Questionnaire completion count

 

Current submission history

New audit log

 

App level contacts unavailable

Designate contacts for app-specific escalations and concession/discount approvals

 

Announcement Forge Teamwork Graph Connectors is now in GA

Forge - Core Platform (excludes product REST APIs)

The ability to build a custom Teamwork Graph connector using Forge is now in GA. Connectors allow your app to ingest data from external tools into the Graph, associate it with Atlassian objects (for example, work items), and make the data available to customers in platform experiences like Chat, Search and Agents.

Added Support for Anonymous Access in Jira Forge Modules

Adopting Forge from Connect
Forge - Jira Cloud Platform (excludes Jira REST APIs)
Forge - JSM Cloud (excludes JSM REST APIs)
Forge - Jira Software Cloud (excludes JSW REST APIs)

Following Forge modules - jira:customField, jira:customFieldType and jira:issuePanel can now run for unlicensed and anonymous users in Jira and Jira Service Management. This means your apps will work on publicly accessible pages and for users who don't have a full Jira and JSM license.

By default, Forge apps only run for licensed Jira and JSM users. To allow your app to serve unlicensed and anonymous users, add the unlicensedAccess property to your modules in manifest.yml.

Please refer to following guide for more details - https://developer.atlassian.com/platform/forge/access-to-forge-apps-for-unlicensed-users/#introduction.

3 May 2026

Added Bitbucket Connect → Forge migration tooling: new addon clientKey endpoint

Connect - Bitbucket (excludes Bitbucket REST APIs)
Forge - Bitbucket (excludes Bitbucket REST APIs)
REST API - Bitbucket Cloud

What’s changing
We’ve introduced a new Bitbucket REST API endpoint that allows a Forge app to retrieve the clientKey of its linked Connect app installation.

This endpoint supports the migration process from Connect to Forge. By retrieving the clientKey, the installed Forge app can identify the equivalent Connect app installation, enabling you to perform data migration or cleanup tasks effectively.

What you need to do
To use this endpoint, ensure you have configured the linkage between your Connect and Forge apps.

  • Add the forgeAppId key to your Connect app descriptor.

  • Use the new endpoint to fetch the clientKey during your app's migration logic.

More details

See https://developer.atlassian.com/cloud/bitbucket/link-connect-to-its-equivalent-forge-app/ on how to configure your Connect → Forge app linkage.

1 May 2026

Deprecation Notice Deprecation and Removal of Legacy Bitbucket Cloud Code Search API

REST API - Bitbucket Cloud

We are deprecating the Bitbucket Cloud legacy code search API endpoints effective May 1, 2026, with full removal on November 1, 2026.

The following endpoints are being decommissioned and will be removed on November 1, 2026:

  • GET /2.0/repositories/{workspace}/{repo_slug}/search/codeRepository-level code search

  • GET /2.0/workspaces/{workspace}/search/codeWorkspace-level code search

We are actively working on the new API which will be released ahead of the removal.

Deprecation Notice Deprecation of random page access issue listing endpoints in Jira Software Cloud REST API

REST API - Jira Software Cloud

What's changing?

We're deprecating the following Jira Software Cloud REST endpoints that use random page access:

  • GET /rest/agile/1.0/board/{boardId}/issue - Get issues for board

  • GET /rest/agile/1.0/board/{boardId}/backlog - Get issues for backlog

  • GET /rest/agile/1.0/board/{boardId}/epic/{epicId}/issue - Get board issues for epic

  • GET /rest/agile/1.0/board/{boardId}/epic/none/issue - Get issues without epic for board

  • GET /rest/agile/1.0/board/{boardId}/sprint/{sprintId}/issue - Get board issues for sprint

  • GET /rest/agile/1.0/epic/{epicIdOrKey}/issue - Get issues for epic

  • GET /rest/agile/1.0/epic/none/issue - Get issues without epic

  • GET /rest/agile/1.0/sprint/{sprintId}/issue - Get issues for sprint

There is a deprecation period of 6 months, and these endpoints will be removed after November 1, 2026.

Why the change?

Over the years, Jira has grown its customer base, and people are using Jira at larger scale and in more complex ways. This led us to make similar changes in the deprecation of JQL search and Evaluate expression endpoints previously to make issue searches more reliable, performant, and scalable. Since the Jira Software APIs mentioned are built on JQL search, we are introducing similar changes to make these operations more reliable, performant, scalable and consistent with the Jira Platform JQL Search API.

What you need to do

To migrate your integrations, you should switch to the new replacement endpoints which use token based pagination.

For a list of replacement endpoints, and other information, see More details below.

More details

What are the replacement endpoints?

Here is a list of recommended replacements.

Deprecated Endpoint

New Endpoint

GET /rest/agile/1.0/board/{boardId}/issue - Get issues for board

GET /rest/software/1.0/board/{boardId}/issue - Get issues for board (enhanced)

GET /rest/agile/1.0/board/{boardId}/backlog - Get issues for backlog

GET /rest/software/1.0/board/{boardId}/backlog - Get issues for backlog (enhanced)

GET /rest/agile/1.0/board/{boardId}/epic/{epicId}/issue - Get board issues for epic

GET /rest/software/1.0/board/{boardId}/epic/{epicId}/issue - Get board issues for epic (enhanced)

GET /rest/agile/1.0/board/{boardId}/epic/none/issue - Get issues without epic for board

GET /rest/software/1.0/board/{boardId}/epic/none/issue - Get issues without epic for board (enhanced)

GET /rest/agile/1.0/board/{boardId}/sprint/{sprintId}/issue - Get board issues for sprint

GET /rest/software/1.0/board/{boardId}/sprint/{sprintId}/issue - Get board issues for sprint (enhanced)

GET /rest/agile/1.0/epic/{epicIdOrKey}/issue - Get issues for epic

GET /rest/software/1.0/epic/{epicIdOrKey}/issue - Get issues for epic (enhanced)

GET /rest/agile/1.0/epic/none/issue - Get issues without epic

GET /rest/software/1.0/epic/none/issue - Get issues without epic (enhanced)

GET /rest/agile/1.0/sprint/{sprintId}/issue - Get issues for sprint

GET /rest/software/1.0/sprint/{sprintId}/issue - Get issues for sprint (enhanced)

What are the differences between the old and new endpoints?

We have tried to make the new endpoints as compatible as possible with the previous ones, however there are some breaking changes:

  • We’ll replace random page access with a continuation token API. You may already be familiar with this pattern from the JQL Search API. This means you won't be able to get multiple pages at the same time with parallel threads. The startAt parameter will be replaced with nextPageToken.

  • The total field is no longer returned in responses. If you need an issue count, use the dedicated approximate-count endpoints instead:

    • POST /rest/api/3/search/approximate-count- Count issues using JQL

    • GET /rest/software/1.0/board/{boardId}/issue/approximate-count - Get approximate issue count for board

    • GET /rest/software/1.0/board/{boardId}/backlog/approximate-count - Get approximate issue count for backlog

  • The new endpoints support a reconcileIssues parameter, which accepts a list of up to 50 issue IDs to reconcile for stronger read after write consistency. These IDs are guaranteed to be reconciled into the search results across pages, providing stronger consistency for recently modified issues. You may already be familiar with this pattern from the JQL Search API - usage of this parameter for these new endpoints is the same as described in search after write with search and reconcile.

Guidance for migration

How can I paginate over a large set of results?

Use the nextPageToken returned in each response to request the next page.

First request:

1 GET /rest/software/1.0/board/{boardId}/issue?maxResults=50

Response:

1 2 3 4 5 { "issues": [...], "nextPageToken": "CAEaAggB", "isLast": false }

Next request:

1 GET /rest/software/1.0/board/{boardId}/issue?maxResults=50&nextPageToken=CAEaAggB

When nextPageToken is absent in the response and isLast is true, you are on the last page.

How do I find out how many issues are on a board or in the backlog with these new endpoints?

Use the approximate-count endpoints:

  • GET /rest/software/1.0/board/{boardId}/issue/approximate-count

  • GET /rest/software/1.0/board/{boardId}/backlog/approximate-count

Response:

1 { "count": 142 }

How do I find out how many issues are in a sprint or epic with these new endpoints?

Use the approximate-count endpoints and JQL as follows:

Deprecated endpoint

Approximate count API Equivalent

JQL parameter

GET /rest/agile/1.0/board/{boardId}/epic/{epicId}/issue - Get board issues for epic

GET /rest/software/1.0/board/{boardId}/issue/approximate-count - Get approximate issue count for board

parent = {epicIdOrKey}

e.g.

parent = 10002

GET /rest/agile/1.0/board/{boardId}/epic/none/issue - Get issues without epic for board

GET /rest/software/1.0/board/{boardId}/issue/approximate-count - Get approximate issue count for board

parent = null

GET /rest/agile/1.0/board/{boardId}/sprint/{sprintId}/issue - Get board issues for sprint

GET /rest/software/1.0/board/{boardId}/issue/approximate-count - Get approximate issue count for board

sprint = {sprintId}

e.g.

sprint = 123

GET /rest/agile/1.0/epic/{epicIdOrKey}/issue - Get issues for epic

POST /rest/api/3/search/approximate-count- Count issues using JQL

parent = {epicIdOrKey}

e.g.

parent = 10002

GET /rest/agile/1.0/epic/none/issue - Get issues without epic

POST /rest/api/3/search/approximate-count- Count issues using JQL

parent = null

GET /rest/agile/1.0/sprint/{sprintId}/issue - Get issues for sprint

POST /rest/api/3/search/approximate-count- Count issues using JQL

sprint = {sprintId}

e.g.

sprint = 123

Response:

1 { "count": 142 }

 

How can I ensure recently updated issues appear in my results?

Use the reconcileIssues parameter to pass up to 50 issue IDs that should be included in results. These will be reconciled into the results regardless of indexing lag. This list must remain consistent across all pages of a paginated request. See how reconcileIssues is used in search after write with search and reconcile for more details.

1 GET /rest/software/1.0/board/{boardId}/issue?reconcileIssues=10001&reconcileIssues=10002&reconcileIssues=10003

Added New Paginated Issue APIs for Jira Software Cloud

REST API - Jira Software Cloud

What's changing

We’ve introduced new "enhanced" APIs for Jira Software Cloud to improve how you list and count issues. These new endpoints offer better performance, token-based pagination, and the option for stronger consistency reads compared to existing issue listing operations.

The new issue listing APIs include:

  • GET /rest/agile/1.0/board/{boardId}/issue - Get issues for board (enhanced)

  • GET /rest/agile/1.0/board/{boardId}/backlog - Get issues for backlog (enhanced)

  • GET /rest/agile/1.0/board/{boardId}/epic/{epicId}/issue - Get board issues for epic (enhanced)

  • GET /rest/agile/1.0/board/{boardId}/epic/none/issue - Get issues without epic for board (enhanced)

  • GET /rest/agile/1.0/board/{boardId}/sprint/{sprintId}/issue - Get board issues for sprint (enhanced)

  • GET /rest/agile/1.0/epic/{epicIdOrKey}/issue - Get issues for epic (enhanced)

  • GET /rest/agile/1.0/epic/none/issue - Get issues without epic (enhanced)

  • GET /rest/agile/1.0/sprint/{sprintId}/issue - Get issues for sprint (enhanced)

To maintain high performance, these enhanced listing APIs do not return total issue counts. If you need issue counts, use these new dedicated endpoints:

  • GET /rest/agile/1.0/board/{boardId}/issue/approximate-count - Get approximate issue count for backlog

  • GET /rest/agile/1.0/board/{boardId}/backlog/approximate-count - Get approximate issue count for board

30 April 2026

Deprecation Notice  Deprecation of classic API token access for Jira Product Discovery GraphQL queries

GraphQL - Jira

We’r’e deprecating support for classic (unscoped) API tokens in Jira Product Discovery (JPD) GraphQL queries. In addition, some GraphQL queries will no longer be accessible via API tokens.

What's changing: Starting Nov 1, 2026, all JPD GraphQL query operations currently accessible via classic API tokens will require fine-grained scoped tokens instead. After this date, requests using classic tokens will be rejected with an authentication error.

What you need to do:

  1. Create a new fine-grained API token in your Atlassian account settings.

  2. Select the JPD scopes your integration requires.

  3. Update your integration to use the new token.

  4. Retire your old classic token.

Reference: For more information, see: https://community.atlassian.com/forums/Jira-Product-Discovery-articles/Deprecation-of-classic-API-token-access-for-Jira-Product/ba-p/3228037

More details

The following sections provide more details about the impact on JPD GraphQL queries starting Nov 1, 2026.

Queries no longer supporting API tokens

This lists all GraphQL queries that won’t be accessible via API tokens.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 jiraProductDiscovery onViewCommentEvents onInsightCreated onInsightUpdated onInsightDeleted onIssueInsightCreated onIssueInsightUpdated onIssueInsightDeleted onPlayUpdated onPlayContributionCreated onPlayContributionUpdated onPlayContributionDeleted onViewCreated onViewUpdated onViewDeleted onViewSetCreated onViewSetUpdated onViewSetDeleted polarisGetEarliestOnboardedProjectForCloudId applyPolarisProjectTemplate refreshPolarisSnippets

Queries requiring scope

This table lists the upcoming required token scopes of JPD GraphQL queries that will still support API tokens.

Query/mutation

Scope required

1 2 3 4 createPolarisInsight updatePolarisInsight copyPolarisInsights resolvePolarisObject

write:insight:jira-product-discovery

1 2 3 deletePolarisInsight archivePolarisInsights unarchivePolarisInsights

delete:insight:jira-product-discovery

1 2 3 4 5 6 polarisInsights polarisInsight polarisInsightsWithErrors polarisLabels polarisSnippetPropertiesConfig insight

read:insight:jira-product-discovery

1 2 3 createPolarisView updatePolarisView updatePolarisViewArrangementInfo

write:view:jira-product-discovery

1 polarisView

read:view:jira-product-discovery

1 polarisProject

read:project:jira-product-discovery

Announcement Reminder: V2 API deprecation in 2 months

Marketplace Platform

Important Reminder: As part of the ongoing Marketplace platform re-architecture, Marketplace V2 APIs are scheduled for deprecation on June 30, 2026.

You can find the full context, including deprecation timelines, replacement V3 endpoints, and partner enablement details in the Quick Reference Guide here.

29 April 2026

Announcement [Canary cohort only] New manifest module to communicate your Connect EOS migration plan for private apps

Adopting Forge from Connect
Forge - Core Platform (excludes product REST APIs)

App developers can now use the connectToForgeMigration manifest module to share their Connect to Forge migration plans and commitment status with Atlassian and their users. This experience is currently limited to developer canary tenants with private apps.

Apps with public Marketplace listings will remain unaffected. However, we encourage you to add this module to your production app, so you can receive the updated behaviour as soon as it goes live.

Please see documentation here.

More details

This module should be added to every major version of your app. It is available for apps extending Jira and Confluence.

Rate this page: