Fusion App Integration Guide
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:
Application Identifier (
appKey
): Kindly provide the unique identifier (appKey
) associated with your application.Application Group Placement: Specify the appropriate application group where your application should be positioned.
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.
Context: Inform us whether your application is context spesific or global applicaion.
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.
- *https://project.fusion.equinor.com/
- *https://webserver-fusion-project-portal-test.radix.equinor.com/
- *https://webserver-fusion-project-portal-prod.radix.equinor.com/
- https://webserver-fusion-project-portal-featur.radix.equinor.com/
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 Name | Application ID | Description |
---|---|---|
project-portal-webserver-feature | 0cf88005-bda7-4bbb-acc7-db463c5a8ba4 | Service Principal for the Web Server in the Feature environment. |
project-portal-webserver-prod | 7732092e-136d-480d-a261-dd2a1d4a867f | Service Principal for the Web Server in the Feature environment. |
project-portal-webserver-test | 0713378c-3499-4d7b-a3a5-82fa8d221086 | Service Principal for the Web Server in the Test environment. |
Deep Linking / Parameter Links
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.