Skip to main content

Fusion App Integration Guide

info

This document is a work in progress and is currently being refined and expanded. We are actively working to provide you with the latest and most comprehensive information on Fusion App Integration. We appreciate your patience as we continue to improve this guide. If you have any questions or suggestions, please feel free to reach out to our support team. Your input is valuable as we work to enhance this integration process. Thank you for your understanding.

Your application has been requested to be onboarded on the project portal. Many developers often wonder what is required to integrate with the project portal. This document aims to provide comprehensive technical information to guide developers through the integration process.

Fusion Context

Applications can be onboarded for specific contexts or as global applications. If a particular context hasn't been onboarded, the application won't be accessible within that context. In this scenario, if a user wants the application to be accessible in a specific context, they need to request the onboarding of that context.

When an application is onboarded as global, it becomes available in all contexts of that specific context type. For example, if the application supports 'project-master,' it will be accessible in all project master contexts.

Routing

The internal routing of the project portal closely resembles the Fusion router structure, with only minor differences. The application routing, however, remains consistent.

// Application Routing
`/apps/:appKey/`

// If the application requires context
`/apps/:appKey/:contextId`

Fusion Framework

We prioritize staying up-to-date with the latest versions of all Fusion core packages to ensure the integration benefits from the latest functionality. This should not significantly impact your application, except for ensuring that the provided ag-grid license closely aligns with Fusion. Any updates should occur within a day or two.

We offer support for both modern and legacy Fusion applications. To determine whether you are developing a new or older Fusion application, you can check whether you are using the @equinor/fusion-framework-cli tool. If you are, your index file should resemble the following:

import { createElement } from 'react';
import { createRoot } from 'react-dom/client';

import { ComponentRenderArgs, makeComponent } from '@equinor/fusion-framework-react-app';

import configure from './config';
import App from './App';

/** create a render component */
const appComponent = createElement(App);

/** create React render root component */
const createApp = (args: ComponentRenderArgs) => makeComponent(appComponent, args, configure);

/** Render function */
export const renderApp = (el: HTMLElement, args: ComponentRenderArgs) => {
/** make render element */
const app = createApp(args);

/** create render root from provided element */
const root = createRoot(el);

/** render Application */
root.render(createElement(app));

/** Teardown */
return () => root.unmount();
};

export default renderApp;

Application Information

To facilitate a secure and efficient onboarding process for your application, the project portal team kindly requests that you provide the following information. Please ensure that you complete all the necessary fields, whether you are registering an old or new application.

  • App Onboarding information
  • CORS configurations
  • App Registrations

Application Onboarding Information

To facilitate the onboarding of your application, we require some fundamental details:

  1. Application Identifier (appKey): Kindly provide the unique identifier (appKey) associated with your application.

  2. Application Group Placement: Specify the appropriate application group where your application should be positioned.

  3. Application Verison: Inform us whether you are utilizing the new Fusion CLI during the application's development phase. If not, your application may be categorized as a legacy application.

  4. Context: Inform us whether your application is context spesific or global applicaion.

  5. Fuison Context URL Handling: Determine if your application allows for the addition of contextID after the appKey in the URL.

// Application Routing
`/apps/:appKey/`

// If context is required
`/apps/:appKey/:contextId`

For legacy applications, we assume you manage context in the URL manually, and the portal will not automatically append context.

However, if your application is developed using the latest Fusion framework, it should seamlessly handle context IDs after the appKey. Please provide these details to ensure a successful onboarding process.

CORS Configuration

Please ensure that your services have CORS (Cross-Origin Resource Sharing) enabled for the following URLs. Those marked with an asterisk (*) are mandatory.

App Registrations

To ensure seamless communication between the project portal and your services, we must configure API permissions. The app registrations and service principals involved are as follows. Please verify that these entities have the necessary access to your service principles and provide us with a list of client IDs. We will take care of the configuration on your behalf.

Display NameApplication IDDescription
project-portal-webserver-feature0cf88005-bda7-4bbb-acc7-db463c5a8ba4Service Principal for the Web Server in the Feature environment.
 project-portal-webserver-prod7732092e-136d-480d-a261-dd2a1d4a867fService Principal for the Web Server in the Feature environment.
project-portal-webserver-test0713378c-3499-4d7b-a3a5-82fa8d221086Service Principal for the Web Server in the Test environment.

As of now, full support for app-to-app links is not available in the project portal. We are eagerly anticipating the introduction of a portal service and a URL service, which will be provided by Fusion core. These services will enable application developers to create direct links between applications, considering the specific origin/portal where the application is mounted.

Notifications

Since the URL service is not yet implemented, the Fusion integration library's notification integration has hardcoded URLs to Fusion. Consequently, the project portal cannot support actions that link to internal applications, and all links will navigate users out of the project portal and into the Fusion portal. This issue should be resolved when the new URL service is up and running, and updates have been made to the integration library. Applications that wish to leverage the full potential of notifications within the project portal will need to update the Fusion integration library accordingly.

Tasks

A similar issue to notification URLs may also lead users away from the project portal.

Service Messages

Service messages are globally accessible, and any service messages added to your application will be displayed both in the project portal and the Fusion portal. The messages in both portals will be synchronized and identical.