Architecture
UniPortal runs entirely on the Atlassian Forge platform. It stores its configuration in the Forge Key-Value (KV) Store and shows the dialog through frontend modules inside the JSM customer portal.
Connecting multiple JSM instances
UniPortal has no remote backend for communication between instances. Instead, it uses Atlassian’s 3LO (Three-Legged OAuth) framework so that your JSM instances can exchange data with each other directly.
You authorize each JSM instance once, and every authorization must use the same Atlassian account, for example a dedicated technical user.
The first instance you authorize becomes the master. You configure the dialog only on the master, as described in Create Layout. Every instance you authorize afterward becomes a secondary instance. It receives its configuration from the master and shows it read-only. To make another instance the master, see Connections.
Danger
If you authorize a new instance with a different Atlassian account than the one already in use, UniPortal silently replaces the whole connections list with the sites that account can access. Every previously connected instance that the new account can’t see is removed, with no warning. Always use the same Atlassian account for every instance. For an example, see the FAQ.
Sharing configuration between instances
Everything you configure on the master is sent to all other connected instances in the background: the General settings, the request tabs of every connected tool, and the dialog variants with their order.
If delivery to one instance fails, the other instances still receive the update. When you delete a dialog variant on the master, it is removed from every instance.
Third-party platform integrations
Salesforce and Azure DevOps authenticate locally. You configure each of them separately on every Jira instance, using the platform’s own method:
- Azure DevOps authenticates via a Personal Access Token (PAT).
- Salesforce authenticates through a dedicated OAuth client that you configure in your Salesforce org.
Credentials for Salesforce and Azure DevOps are never part of the configuration that the master shares. Connections and credentials are also not copied per dialog variant, so all variants use the same connections.