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 products, 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 are removing documentation for internal APIs from public docs for graphql APIs (from Connect Service section). These APIs are meant to be used by Atlassian experiences only and we do not support these APIs for public consumption.
The APIs for which docs are removed are:
Transactions for KVS and Custom Entity Store is now generally available (including its REST API).
This feature allows multiple operations in a single transaction, ensuring that all operations are either committed or rolled back together if one fails. When used in the Custom Entity Store, you can add conditions to operations.
You can now declare a default value for environment variables in your manifest, which will be used if no environment variable is already exported. Read more about Variables.
We’ve increased the maximum number of resources that can be bundled with an app from 10 to 50. For more details, you can refer to the Forge resource limits.
The CLI linter was incorrectly adding an optional property to some existing egress permissions when it identified that certain permissions were defined using the simple string format.
This issue resulted in the manifest file being altered from:
1
2
3
4
5
permissions:
external:
fetch:
backend:
- 'test.com'
to:
1
2
3
4
5
6
permissions:
external:
fetch:
backend:
- address: 'test.com'
inScopeEUD: false
The latest version of the CLI fixes this problem and does not populate the optional inScopeEUD
property anymore.
To install the latest version of @forge/cli
and access these improvements, run the following command in your terminal:
1
npm install -g @forge/cli@latest
To join this Early Access Program, please complete the Forge EAP sign-up form.
The Confluence Full Page UI module aims to enable developers to build fully custom, chromeless app experiences within Confluence Cloud, hosted directly on Forge.
To start using this EAP, sign up using the Forge EAP form.
For more information about how to use this module, see here.
As part of the Atlassian visual refresh updates, we updated the UI Kit Icon component. Some glyphs get a new look, and many more glyphs have been added. There are also a number of deprecations, as detailed below.
The size
prop will only support the values "small"
and "medium"
. The value "large"
is now deprecated and will be removed.
The prop primaryColor
has been renamed to color
.
The prop secondaryColor
is now deprecated and will be removed.
Some glyphs haven been replaced and others will be removed. Visit the Icon migration guide for information on finding a replacement.
The new default size for icons will change from 24x24 pixels to 16x16 pixels.
All deprecations and breaking changes will take place on Jan 1, 2026. Until then, the new Icon
component will be fully backwards-compatible. Any deprecation will trigger a console warning prefixed with [@forge/react: Icon]
on non-production environments.
Forge async events that are successfully enqueued are guaranteed to be delivered at least once within a defined retention window. The retention window is the async event’s lifetime. It begins when the async event is successfully enqueued and lasts for 24 hours, with an option to be extended by another 72 hours, to a total of 96 hours.
Previously, there were four async events retries available in total. Now, async events are automatically retried within the retention window until they are successfully delivered. Retention window information will be available in the RetryContext
for the consumers of async events (see details).
These changes apply only to async events pushed using @forge/events
with major version 2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import {AsyncEvent} from '@forge/events';
export async function handler(event: AsyncEvent) {
const {
retryCount,
retryData,
retryReason,
retentionWindow: {
startTime,
remainingTimeMs
}
} = event.retryContext;
//...
}
We’ve added a set of new Confluence product events to track content changes and permission updates across Confluence. Forge apps can subscribe to them to be invoked when:
a page, blogpost, or attachment is trashed or restored
custom content is created, updated, trashed, or restored
a comment is deleted
restrictions or permissions are updated
avi:confluence:trashed:page
avi:confluence:restored:page
avi:confluence:trashed:blogpost
avi:confluence:restored:blogpost
avi:confluence:created:custom_content
avi:confluence:updated:custom_content
avi:confluence:trashed:custom_content
avi:confluence:restored:custom_content
avi:confluence:trashed:attachment
avi:confluence:restored:attachment
avi:confluence:deleted:comment
avi:confluence:permissions_updated:page
avi:confluence:permissions_updated:blogpost
avi:confluence:permissions_updated:whiteboard
avi:confluence:permissions_updated:database
avi:confluence:permissions_updated:folder
avi:confluence:permissions_updated:custom_content
avi:confluence:permissions_updated:space:V2
See more details about these events here: https://developer.atlassian.com/platform/forge/events-reference/confluence/
We have introduced the ability to define content property indexing via a new Forge Confluence content property module. This makes the data inside content properties available to CQL search, allowing apps to use CQL to search for content they've set data on using the propertyKey
or its searchAlias
.
Content properties allow you to store key-value pairs against a piece of content. Each value must be well-formed JSON.
When defined as part of a content property module, values from these JSON objects can be extracted, indexed, and made available to CQL queries.
Content properties can be set against multiple Confluence content types via the Content properties REST APIs.
With the recent updates to our content delivery network (CDN), all Custom UI apps now allow-list the Atlassian media API URLs by default in the media
CSP policy. This means you no longer need to declare egress to load content coming from the media API in Custom UI apps.
These recent updates can effectively help you reduce egress from your Custom UI apps.
These updates can help if you’re looking to make your app eligible for the Runs on Atlassian badge. To know more about Runs on Atlassian, see this developer blog post.
Note, the removal of egress does not require a major version update of apps.
Look for opportunities to remove the following external permissions from your manifest:
1
2
3
4
permissions:
external:
media:
- address: https://api.media.atlassian.com
We are introducing updates to the official pricing for the Forge platform, effective January 1, 2026. To support developers in managing costs, we are launching a cost dashboard and a cost estimator. These tools will provide transparency and predictability in tracking Forge usage and estimating costs.
Cost Dashboard: Now available in the Developer Console, the Usage and costs dashboard provides visibility into month-to-date usage and forecasted costs for Forge resources at the app level. We've also introduced a cumulative resource usage chart to help you better track and understand overall consumption trends over time.
Cost Estimator: This tool helps developers estimate pricing for apps before they are built by inputting expected usage quantities to receive a monthly cost estimate.
KVS Usage Caveat: Please note that usage metrics for the Key-Value Store (KVS) may differ from past days due to recent updates.
For more information, see the Forge pricing announcement blog post and the Forge platform pricing details. For any feedback, please visit Forge pricing.
Forge Remotes are now available in the Atlassian Government Cloud. Please refer to the AGC documentation for details on supporting Forge Remotes within your AGC Forge app.
We have increased the default timeout for forge functions used in both the webtrigger
and scheduledTrigger
modules from 25 seconds to 55 seconds. Additionally, developers can now specify a timeoutSeconds
value for functions used in the scheduledTrigger
module, with a maximum limit of 900 seconds.
For more details, visit Platform quotas and limits
The short options -v1
and -v2
of the forge version compare
have been removed in major release v12.0.0 of the Forge CLI. Instead, you should use the existing long options --version1
and --version2
.
For example:forge version compare --version1=3 --version2=5
We have made this change to align with established CLI conventions around short options being single characters.
Run npm install -g @forge/cli@latest
on the command line to install the latest version of @forge/cli
and receive these changes.
See the forge version compare documentation for more information.
Rate this page: