Bitbucket modules
Common modules
Compass modules
Confluence modules
Jira modules
Jira Service Management modules
Rovo modules (Preview)

Jira personal settings page (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 jira:personalSettingsPage module adds an item to the user's profile menu in the main navigation. When the item is clicked, content is rendered on a new Jira page.

The page URL is constructed in the following format: /jira/settings/personal/apps/{appId}/{envId}

Example of a personal settings page

Subpages

By default, the jira:personalSettingsPage module registers a top-level page. However, there is an option to register multiple pages using a pages or sections field.

Use pages to add individual pages to the sidebar and sections to group pages.

The sidebar will only change the global page URL, you will need to handle routes inside your custom UI app using view.createHistory().

This feature works only with custom UI.

Manifest structure

1
2
modules {}
└─ jira:personalSettingsPage []
   ├─ key (string) [Mandatory]
   ├─ resource (string) [Mandatory]
   ├─ render (string) [Optional]
   ├─ resolver {} [Optional]
   ├─ title (string | i18n) [Mandatory]
   ├─ icon (string) [Optional]
   ├─ viewportSize (string) [Optional]
   ├─ displayCondition {} [Optional]

resources []
├─ key (string) [Mandatory]
└─ path (string) [Mandatory]

Properties

PropertyTypeRequiredDescription
key

string

Yes

A key for the module, which other modules can refer to. Must be unique within the manifest.

Regex: ^[a-zA-Z0-9_-]+$

functionstringRequired if using UI Kit 1 or triggers.A reference to the function module that defines the module.
resourcestringRequired if using custom UI or the latest version of UI Kit.A reference to the static resources entry that your context menu app wants to display. See resources for more details.
render'native'Yes for UI KitIndicates the module uses UI Kit.
resolver{ function: string } or
{ endpoint: string }
Yes

Set the function property if you are using a hosted function module for your resolver.

Set the endpoint property if you are using Forge remote to integrate with a remote back end.

titlestring or i18n objectYes

The title of the global page, which is displayed at the top of the page.

The i18n object allows for translation and is available to participants of the Internationalization for Forge EAP. See i18n object.

iconstringThe URL of the icon that displays next to the title. Relative URL's aren't supported. A generic app icon is displayed if no URL is provided.
layout UI Kit:
  • native
  • basic
Custom UI:
  • native
  • blank
  • basic (deprecated)
(default: native)
The layout of the global page that defines whether a page is rendered with default controls (native), lays out the entire viewport with a margin on the left and breadcrumbs (basic for UI Kit), or is left blank allowing for full customization (blank for custom UI).
pagesPage[]

The list of subpages to render on the sidebar.

Note that you can only specify pages or sections but not both.

pages.titlestring or i18n objectYes, if using pages

The title of the subpage, which is displayed on the sidebar.

The i18n object allows for translation and is available to participants of the Internationalization for Forge EAP. See i18n object.

pages.iconstringThe URL of the icon that's displayed next to the subpage title. A generic app icon is displayed if no icon is provided.
pages.routestringYes, if using pagesThe unique identifier of the subpage. This identifier is appended to the global page URL.
sectionsSection[]

The list of sections to render on the sidebar.

Note that you can only specify pages or sections but not both.

sections.headerstring or i18n object

The section header.

The i18n object allows for translation and is available to participants of the Internationalization for Forge EAP. See i18n object.

sections.pagesPage[]Yes, if using sectionsThe list of subpages to render on the sidebar.
displayConditionsobjectThe object that defines whether a module is displayed in the UI of the app. See display conditions.

i18n object

Internationalization (i18n) for Forge apps is now available through Forge's Early Access Program (EAP). For details on how to sign up for the EAP, see the changelog announcement.

EAPs are offered to selected users for testing and feedback purposes. APIs and features under EAP are unsupported and subject to change without notice. APIs and features under EAP are not recommended for use in production environments.

For more details, see Forge EAP, Preview, and GA.

KeyTypeRequiredDescription
i18nstringYesA key referencing a translated string in the translation files. For more details, see Translations.

Extension data

UI Kit and Custom UI

Use the useProductContext hook to access the extension context in UI Kit or getContext bridge method in custom UI.

PropertyTypeDescription
typestringThe type of the module.

Manifest example

1
2
modules:
  jira:personalSettingsPage:
    - key: hello-world-personal-settings-page-module
      resource: main
      resolver:
        function: resolver
      render: native
      title: Hello World
      icon: https://developer.atlassian.com/platform/forge/images/icons/issue-panel-icon.svg
      viewportSize: medium

Rate this page: