Last updated Jun 30, 2023

Cloud app licensing

Any app you intend to sell on the Atlassian Marketplace must have licensing features implemented. These features control the use of the app in the Atlassian product.

In the Atlassian product, the Universal Plugin Manager (UPM) checks the validity of app licenses. The Atlassian product reports the licensing status of the instance to the app in each request. The UPM provides an API that apps use to access the Atlassian licensing system for its license checks.

Discounted and no-charge app licenses

Atlassian offers discounted and no-charge app licenses to certain types of organizations such as academic institutions or charitable organizations.

Academic institutions

To support education and encourage the next generation of software developers, Atlassian offers all of our software at a 50% discount to qualified academic institutions. Paid via Atlassian apps are also available to qualified institutions at the same reduced price.

For more information, see Purchasing & Licensing FAQ.

Charitable organizations

Atlassian supports organizations that seek to do good in the world. Charitable organizations can apply for no-cost Community licenses, and once they have this license for any Atlassian product, they can request additional licenses from Atlassian sales representatives, including Community licenses for apps they obtain through the Marketplace.

Customers with an existing Community license can request a Community license for your app by contacting the Pricing, Billing and Licensing help.

Your app should:

  • Check the license status in service requests it receives from the Atlassian site
  • Implement the logic appropriate for the given license status. For instance, for an inactive license, the app may choose to disable its features, enter a read-only state, or function in some other restricted manner that makes sense

Development considerations

To implement licensing for Atlassian Connect, you need to:

  • Set the enableLicensing flag in the app descriptor for the app
  • Write code to check the lic URL parameter for all incoming requests
  • Use the Atlassian Connect REST resource /addons/{appKey} to get additional license information for each application
  • Implement the logic appropriate for the app based on the license status
  • Use a private listing with access tokens to test all license statuses in a Cloud instance

The result of a license check by the Atlassian app is cached for 5 minutes.

Enable app licensing

To implement licensing in an app, set the enableLicensing flag in the app descriptor file (atlassian-connect.json) to true. Any app intended for sale should have this flag enabled.

1
2
{
    "name": "Hello World",
    "key": "hello-world",
    "description": "Atlassian Connect app",
    "baseUrl": "http://www.example.com",
    "enableLicensing": true
}

This tells UPM to check and report licensing status to the app. On the other hand, if you are using a app strictly for internal use or you plan to distribute it freely on the Marketplace, this should be set to false.

Handle requests with the license status

Each incoming request from the Atlassian product site includes a query parameter named lic.

1
2
http://....?lic=active

Your app should check this value to determine the license status of the site associated with the current request. The lic parameter may have either of the following values:

  • active: the license is valid for this instance and app
  • none: no license is present

Access license details

In addition to the lic parameter, an app can use the REST API resource /addons/{appKey} provided by Atlassian Connect to get an instance's license for this app. Note, you will need to declare READ scope in order to use this resource.

Test license enforcement

You can test licensing-related behavior of your app in a local development environment, but there's no way to replicate the interaction with the UPM and Atlassian Marketplace.

In the production environment, the Atlassian Marketplace serves licenses for new subscribers, and the app interacts with the Marketplace to get the license state.

Installing your app in a cloud instance using an access token allows instance administrators to modify the license status of the app. This lets you ensure that your app functions properly in all license statuses.

Rate this page: