Display conditions
Permissions

Manifest

The manifest contains three required top-level properties: app, modules, and permissions, and number of optional properties. For example:

1
2
app:
  id: "ari:cloud:ecosystem::app/406d303d-0393-4ec4-ad7c-1435be94583a"
  licensing:
    enabled: true 
PropertyRequiredDescription
appYes

Identifying information, licensing details, and app storage (EAP).

See App to learn more.

modulesYes

A list of the modules used by the app.

See Modules to learn more.

permissionsYes

A list of the permissions required by the app.

See Permissions to learn more.

connectModules

A list of the Connect modules used by the app.

endpoint

A list of remote endpoints referenced by remote resolver invocations.

See Endpoint to learn more.

providers

Authentication providers used by the app.

See Providers to learn more.

remotes

A list of remote services required by the app (along with additional options for declaring egress details for data residency).

See Remotes to learn more.

resources

A list of the resources used by the app.

See Resources to learn more.

App

The app dictionary contains properties about your Forge app. Some of these are populated as part of the forge create command (for example, id).

PropertyRequiredDescription
idYesA unique Atlassian resource identifier (ari) assigned to your app.
connect

Details specific to Adopting Forge from Connect.

This is required if the manifest has connectModules.

See Connect to learn more.

licensingNo

The app's licensing state. To enable licensing for your app, add the enabled field attribute and set its value to true.

See licensing to learn more.

packageNo

Settings relating to packaging the Forge application.

See Packaging to learn more.

runtimeYes

Settings relating to the Forge runtime.

See Runtime to learn more.

storage No

A list of custom entities and their respective indexes. Custom entities are user-defined data structures for storing app data. Forge's storage API lets you query data stored in these structures using a wide array of query conditions. These query conditions make it possible to build advanced, complex queries to suit your app's operations.

See Custom entities to learn more.

Runtime

The runtime property lets you configure the Forge runtime using the following settings:

SettingRequiredTypeDescription
snapshotsNobooleanWhether a snapshot of the app is taken at deployment time. Default value is true. This setting is only used in the legacy runtime.
nameYesstring

Lets you specify the Forge runtime environment version on which to deploy your app. This field supports the following values:

  • nodejs18.x (recommended): specifies the latest runtime version. This version runs on a standard Node.js 18 environment. See Runtime for more information about the this runtime version.

  • sandbox: specifies the legacy version of the Forge runtime. See Legacy runtime reference for more information about this runtime version.
  • As of Forge CLI version 9.0.0, all new Forge apps are deployed by default on the latest Forge runtime. This runtime provides several security and performance enhancements, along with greater compatibility with the Node.js ecosystem. We strongly advise developers to run all Forge apps on the latest runtime version.

    For information about migrating an existing app to the latest Forge runtime, see Migrating from the legacy runtime.

    Packaging (preview)

    This section describes a Forge preview feature. Preview features are deemed stable; however, they remain under active development and may be subject to shorter deprecation windows. Preview features are suitable for early adopters in production environments.

    We release preview features so partners and developers can study, test, and integrate them prior to General Availability (GA). For more information, see Forge release phases: EAP, Preview, and GA.

    The package property lets you configure how the application's source code is packaged during deployment.

    SettingTypeDescription
    extraFilesstring[]

    Extra files to copy to the deployed application. These can include application data, configuration files or additional programs the application might want to read or launch.

    Each item in this list can point to a single file or a glob pattern.

    When the Forge function runs, the files matching the specified patterns are available in the application directory and can be opened using e.g. fs.readFile.

    If you intend to add extra executables to your application and call them from the functions, make sure they are compatible with the Forge runtime environment. You might want to use statically linked executables if possible, or include the required libraries together with the executable.

    Connect

    Connect apps that have adopted Forge modules can include Connect modules and a Connect key.

    PropertyRequiredDescription
    keyYes

    A key to identify the Connect app and its components.

    key is environment specific. See how to manage environments when using Forge from your Connect app.

    Note: The production environment of the app must match the Atlassian Marketplace key.

    remote

    The key of the remotes entry that holds the Connect app baseUrl.

    This is required if the manifest has connectModules.

    authentication

    Defines the authentication type to use when making requests from the connect app server to the host application

    jwt or oauth2 (default value is jwt)

    Example

    1
    2
    remotes:
      - key: connect-app-server
        baseUrl: https://hello-world-app.example.com
    app:
      connect:
        key: hello-world
        remote: connect-app-server
        authentication: jwt
    

    Environment variable parsing

    You can use environment variables in your manifest for entire or partial field values. These values are read from the process environment that Forge CLI commands are run in. Strings prefixed with ${ and ending in } will be replaced with the corresponding environment variable.

    Example

    First, export your APP_ID as an environment variable:

    1
    2
    export APP_ID=406d303d-0393-4ec4-ad7c-1435be94583a
    

    Afterwards, you can specify it in your manifest file:

    1
    2
    app:
      id: "ari:cloud:ecosystem::app/${APP_ID}"
    

    Forge CLI commands that read the manifest will convert the variable APP_ID as follows:

    1
    2
    app:
      id: "ari:cloud:ecosystem::app/406d303d-0393-4ec4-ad7c-1435be94583a"
    

    Rate this page: