3.8. Portal Service#

This section provides an overview of the Portal Service component in Nubus for Kubernetes. It describes the following Portal Service components in detail:

  1. Portal Server

  2. Portal Frontend

  3. Portal Consumer

  4. Portal Announcement

  5. Notifications API

  6. Central Navigation API

Fig. 3.31 shows the Portal Service components, their relationships among each other and to other functional components in Nubus. The upcoming sections add the behavior level for each of the components.

Functional components of the Portal Service.

Fig. 3.31 Functional components of the Portal Service.#

Some application components in the Portal Service need an S3-compatible object storage. For a relational overview from the object storage perspective, see S3-compatible object storage.

See also

Portal Service in the interfaces section

for information about incoming and outgoing interfaces.

Portal Service in the deployment view section

for information about Docker images, Kubernetes pods, and Helm Charts used for deployment.

Portal Service in the functional components overview section

for more information about the purpose and tasks.

S3-compatible object storage

for information about application components using S3-compatible object storage.

3.8.1. Portal Server#

The Portal Server is the core component of the Portal Service. It provides the following functionality, as shown in Fig. 3.32.

  • Manage portals and user group assignment to define which portal the Portal Service shows to which user group.

  • Evaluate groups of the user to determine which portal entries to show to the user.

  • Read the portal configuration for the Portal Server, such as configuration information, categories for tiles, and portal tiles.

  • User session handling so that users see the content designated for them.

The S3-compatible storage contains the User group cache for Portal Service and the Portal Service configuration for fast retrieval. Other functionality, described later, stores the information in there.

Behavior of the Portal Service Server.

Fig. 3.32 Behavior of the Portal Service Server.#

3.8.2. Portal Frontend#

The Portal Frontend consists of the following parts, as shown in Fig. 3.33.

Portal Frontend

The Portal Frontend is a Kubernetes pod that delivers the frontend as single web page application to the user’s web browser. It consists of HTML, CSS, and JSON files.

Portal Frontend in the User Browser

The Portal Frontend in the User Browser is the single web page application that runs in the user’s browser. It also contains UI elements for the End User Self Service. From there, the frontend loads the icons for the tiles from the S3-compatible storage. The Portal Service stores the tile icons in the S3-compatible storage.

Behavior of the Portal Service Frontend.

Fig. 3.33 Behavior of the Portal Service Frontend.#

3.8.3. Portal Consumer#

The Portal Consumer is responsible for writing the icons for the tiles, the portal configuration, and the group cache to the S3-compatible storage. During Nubus deployment, the Portal Service registers the Portal Consumer as a consumer in the Provisioning Service.

The Portal Consumer provides the following behavior, as shown in Fig. 3.34:

  • Read tiles, images and write to S3-storage

  • Write Portal configuration

  • React on user group membership change

  • Recreate user group cache

From Directory Service through Provisioning Service to Portal Consumer

A portal administrator creates portals with portal entries and assigns user groups through the Portal Server. The Portal Server stores the information in the Identity Store and Directory Service. The Directory Service notifies about changes to directory objects and triggers the data transformation and messaging process in the Provisioning Service. The Portal Consumer receives a message from the Consumer Messages HTTP REST API to React on user group membership change.

User group cache

Triggered by the Provisioning Service, the application function Read user group cache receives the Event object containing the changes to user groups and portals. To create the user group cache, it queries the Directory Service directly for the affected user groups, nested groups, and their user account memberships. With this data, it builds a mapping to resolve a username to its direct and indirect or nested group memberships. It stores the resulting mapping in the S3-compatible storage for the Portal Server.

Icons for tiles

Read tiles, images, and write to S3 storage reads the tiles and tile images through the UDM HTTP REST API and stores the information in the S3-compatible storage.

Portal configuration

Write Portal configuration writes the configuration for the Portal Service to the S3-compatible storage. Changes to Portals and Portal Entries in the directory service trigger the Provisioning Service to notify the Portal Consumer.

Behavior of the Portal Service Consumer.

Fig. 3.34 Behavior of the Portal Service Consumer.#

3.8.4. Portal Announcement#

The Portal Announcement component shows announcements in the portal to a predefined group of users or all users. For example, administrators can inform users about an upcoming maintenance, or a recent update of a service.

Portal Announcement provides a UMC module to Manage announcements. It runs in the UMC Server in the Management UI. Fig. 3.35 shows the behavior of the Portal Announcement together with data flow of the associated information. UMC Server stores the announcement settings in the LDAP Server. This change triggers the Provisioning Service and passes the information to the Portal Consumer which Write Portal configuration to the S3-compatible storage. The Portal Server reads the portal configuration and shows the announcement in the portal.

Behavior of the Announcement module.

Fig. 3.35 Behavior of the Announcement module.#

3.8.5. Notifications API#

The Notifications API provides an interface to applications to show messages in the portal to all users.

Fig. 3.36 shows the behavior of the Notifications API. Nubus application or Third-party applications not part of Nubus send their notifications to the Endpoint to notify users. The Notifications API takes the notification and passes it to the Endpoint of notification stream. The Endpoint of notification stream sends the message to the portal.

The Portal Frontend in the User Browser shows the notification. Notification are transient. The Notifications API doesn’t save them persistently.

Behavior of the Notifications API.

Fig. 3.36 Behavior of the Notifications API.#

3.8.6. Central Navigation API#

Third-party applications can use the Central Navigation API to append their application menu with navigation links that the user has on their portal.

Fig. 3.37 shows the behavior of the Central Navigation API. The Third-party applications not part of Nubus have behavior that can Enhance global navigation menu for user. For this purpose, it requests the information from the Central Navigation API. The returned data contains information about label, target, and icon of the tiles on the portal.

Behavior of the Central Navigation API.

Fig. 3.37 Behavior of the Central Navigation API.#