This changelog is the source of truth for all changes to the Forge platform that affect people developing Forge apps.
See what's next for Forge on our platform roadmap.
We're excited to share that Forge, our app development platform for Atlassian cloud apps, is now generally available. You can rely on Forge's hosted infrastructure, storage, and FaaS functions to support apps in production; all of which are backed by Atlassian's operational readiness. Learn more about building the next Marketplace hit with Forge.
Note that some functionality in Forge remains in beta while we're still making changes that may break your apps. Learn more about the current functionality in beta.
We’re deprecating the legacy GraphQL-based Forge storage APIs and the storage module in @forge/api, in favour of the new @forge/kvs SDK and REST APIs (released on March 2025).
This change impacts Forge apps that:
Use storage from the @forge/api package for KVS or Custom Entity Store, and/or
Access Forge storage from a remote service via GraphQL.
Deprecation period: 6 months from the date of this announcement.
After Jun 1, 2026, GraphQL endpoints for Forge storage will be removed and calls will start returning HTTP 410 Gone.
storage module in @forge/api is deprecated
The legacy storage APIs for Key-Value Store (KVS) and Custom Entity Store inside @forge/api are now deprecated.
All new storage features are only available through:
The @forge/kvs package for in-app usage, and
The KVS / Custom Entity Store REST APIs for remote usage.
GraphQL access to Forge storage is deprecated (native and remote)
GraphQL-based access to KVS and Custom Entity Store will be turned off after the deprecation period.
This applies to both:
Native calls made via storage in @forge/api, and
Remote calls made directly to the GraphQL endpoint.
We’re making this change now because:
Performance and reliability:
GraphQL adds significant overhead, which directly limits the throughput of the Forge Storage service. Removing GraphQL allows us to offer a more performant and reliable storage service.
REST is our long-term strategy for public Ecosystem APIs:
Atlassian is standardising on REST as the primary surface for public ecosystem APIs. Deprecating storage over GraphQL is an important step toward that consistent, REST-first platform.
Better developer experience with @forge/kvs:
The new @forge/kvs package provides:
Stronger typing via generics,
More predictable query and filter builders,
Support for new features (transactions, bulk operations, TTL, etc.) that will not be available on the legacy GraphQL-backed storage module.
Simplicity in our platform:
Removing the GraphQL path reduces operational complexity and lets us focus our engineering effort on a single, well-defined storage API.
If your Forge app uses storage from @forge/api
Migrate to the new @forge/kvs package.
Update all storage calls to use the new kvs builders (including query conditions, filters, and sorting).
Adjust error handling so missing keys use KEY_NOT_FOUND instead of UNDEFINED.
If your app accesses Forge storage from a remote via GraphQL
Move those integrations to the Forge Storage REST API for KVS and Custom Entity Store.
Replace GraphQL calls with equivalent REST endpoints and handle HTTP errors correctly (including 410 Gone after deprecation).
For step‑by‑step instructions and full code examples, see the official migration guide: https://developer.atlassian.com/platform/forge/storage-reference/kvs-migration-from-legacy/#migrating-to--forge-kvs-from-legacy-storage-module
If you maintain an app that still depends heavily on GraphQL for storage and believe migration within the deprecation period is at risk, please reach out via ECOHELP so we can work with you on a plan.
Following the Preview release, the Forge Automation Actions is now generally available. The Automation action module allows you to extend the Automation Platform and add new Forge-based actions to your app. With this release Forge Actions can now output smart values, enabling seamless data flow and dynamic automation.
For more information, see the Forge Automation Action module documentation.
The requestRemote bridge API allows Forge apps to integrate directly with remote backends from the UI Kit and Custom UI applications via the Forge bridge.
This API is similar to invokeRemote, where requests include a Forge Invocation Token (FIT) as a bearer token in the authorization header; however, the request is not an official invocation that passes through the Forge platform. Therefore, requestRemote will not include OAuth tokens, even if configured for the remote, and will not be reflected in invocation metrics in the Developer Console.
For more details, see requestRemote.
The new Rolling releases feature is now available through Forge’s Early Access Program. To join the EAP, please complete this sign-up form.
Rolling releases let you decouple app permissions from app code, allowing code updates to be deployed independently of permission changes. This means your app can be upgraded to a new code version even if admins haven't approved new permissions yet, addressing the version fragmentation problem .
With rolling releases, developers can ship code improvements and bug fixes more frequently without being blocked by permission approval processes, while customers benefit from staying on current, secure versions. Admins maintain control by approving permission changes separately from code updates.
For more information on this feature, refer to the RFC-106: Future of Forge versioning - Permissions post.
EAP scope:
Available for Forge apps on Jira and Confluence only
Code-only upgrades via forge install --upgrade code
New Permissions SDK for runtime permission checks (@forge/react and @forge/api)
Current limitations:
Auto-upgrades not yet supported
Some upgrade paths unavailable (e.g., upgrading from free to paid)
The Jira full page module enables developers to build fully custom, chromeless app experiences within Jira Cloud, hosted directly on Forge.
This preview is accessible via the following URL: https://<tenant-name>/forge-apps/a/<app-id>/e/<environment-id>/r/<route-prefix>/<app-route>
For more information, see the Jira full page (Preview)
We are deprecating the forge webtrigger command as a leaf command in favour of 3 new sub-commands for managing webtriggers.
forge webtrigger create for creating a webtrigger URL
forge webtrigger list for listing existing webtrigger URLs
forge webtrigger delete for deleting a webtrigger URL
The forge webtrigger and forge webtrigger create command will function exactly the same until such time as the forge webtrigger command is no longer supported in May 2026, in line with our deprecation policy.
You can now configure the Forge Content Byline Item module to open in a modal instead of a pop-up. The modal supports both standard and full-screen sizes, giving you more flexibility in how your content is displayed. This can be done by using viewportContainer: modal in your manifest.
For more information, see our documentation.
bitbucket:projectSettingsMenuPage module is now available. You can use this module to build a custom project settings page. See the project settings menu page for details.
bitbucket:repoCodeFileViewer module is now available. You can use this module to build a custom file viewer. See the file viewer page for details.
We've introduced the bitbucket:workspaceGlobalPage module for Forge apps. Your app will now appear as a menu item in the Apps section of the Bitbucket workspace navigation, displaying your custom page content when users select it.
To use this module, update your app’s manifest to include bitbucket:workspaceGlobalPage.
For implementation details and examples, see the bitbucket:workspaceGlobalPage module reference.
We are re-enabling automatic Connect to Forge migrations, following the temporary pause which started on Sep 23, 2025
Apps which were impacted by or published to the marketplace following this pause will now see Connect installations progressively move to Forge as long as they meet the minor update criteria. The pace of the migration will be dynamically adjusted to ensure high throughput and reliability of the pipeline as we clear these pending updates.
The new Forge rovo.open method is now available through Forge’s Early Access Program. To join the EAP, please complete this sign-up form.
The rovo.open method allows you to open the Rovo chat sidebar and create a new conversation with either a default or specified Rovo agent.
For more information, see the Rovo documentation.
Forge LLM is now available through Forge’s Early Access Program. This feature allows Forge apps to integrate with an Atlassian-hosted large language model (LLM) capability, meaning that apps that use the feature will still be eligible for the Runs on Atlassian program.
At launch, only the Claude model family is supported. Support for additional model families will be added soon.
To join the Early Access Program, complete the sign-up form.
For more information, see the Forge LLM documentation.
Participation in the EAP may be subject to limitations or eligibility requirements.
Forge platform will be undergoing maintenance in commercial production on November 23, 2025 for approximately 1 minute between 5:30-6:30am UTC
During this interval, below capabilities will not be available intermittently:
Create/update/delete apps
Deploy apps
Install/uninstall/upgrade apps
App invocations will continue to work for existing users of the apps. However, new customers might not be able to use apps as consent process will be impacted during this interval as well.
We’re updating Forge’s invocation rate limits to improve our long-term scalability and flexibility. This change will help ensure our platform can adapt and respond to unpredictable high bursts of traffic.
Currently, we limit the number of invocations to 1,200 per one-minute fixed window.
We are changing this limit to a per one-second sliding window instead, scaling the limit appropriately. In addition, invocations from Forge events and user-triggered interactions will have different limits.
Here are the limits we will be applying once we roll out this change:
Resource | Forge event limit | User invocation limit |
|---|---|---|
Rate limit per app, within an environment | 300 requests per second | 30k requests per minute |
Rate limit per app installation | 100 requests per second | 5k requests per minute |
Rate limit per user | N/A (event invocations are not attached to a user) | 20 requests per second, per app installation, per user |
These will replace the current invocation rate limit, which is:
Resource | Limit | Description |
|---|---|---|
Invocation rate limit | 1,200 | Maximum number of invocations per one minute sliding window. That is, an app reaches this limit when it is invoked 1,200 times within the last 60 seconds. |
Rate this page: