General concept
Web Portal serves as the integration layer for the user interface of registered modules. As illustrated in the schema below, Web Portal provides the header, footer, and navigation menu, while the module populates the content area with its views.

Example:

UI integration approach
The module UI is integrated within an <iframe>
HTML element.
While iframes are not typically associated with creating visually appealing, modern user interfaces, they provide a secure sandbox for the modules' UIs. Despite this, modules can still call their APIs, execute scripts, trigger downloads and popups, and submit forms. However, modules are unable to interfere with each other or with Web Portal.
It’s important to note that the iframe solution has some limitations on user and developer experience such as dialogs being unable to overlay the header and footer, and being confined to the borders of the iframe.
Registration approach
To integrate a module’s UI, it must be registered with Web Portal. The registration process is initiated by sending a PUT
request to Web Portal module registry.
The PUT request must include all the module resources, such as views, widgets, contributions, and documents.
If any of the data provided during the registration is invalid, the request will be rejected with error codes and a description immediately.
As a result, the integration status page will only display modules whose registration was successful.
Validation on UserId, ModuleId and AuthproviderClientId
UserId should be valid UUID v4 or GUID (C#) which includes hyphens [Refer - https://datatracker.ietf.org/doc/html/rfc4122#section-4.4] ModuleId & AuthproviderClientId should be a valid alphanumeric [A-Z, a-z, 0-9, -] string with less than 50 characters. The inclusion of a hyphen in the string is optional.