Search code examples
multi-tenantsaas

Designing the UI for a Multitenant Application


We are developing a multitenant application with shared schema for a web application. I would like to know the best practices for designing UI strategies.

We will have different roles for saas owners like Adminsitrators, Helpdesk, Account Manager so The SAAS owner may need to have multiple users who will acess the application and do their job.

HelpDesk: If a tenant put up a ticket, helpdesk team shall be able to view and solve.

Account management: Account Managers may need to access the payment information of the tenants for following up the tenants.

ServiceManagers: To perform maintenance and upgrades etc.

In this case

Do we need to have different UI for "Saas owner" and "Tenants" or is it better to manage it with permissions and roles?

Any best practices?


Solution

  • There are many facets to decide on the mode of delivery

    1. In case you prefer to use Micro FrontEnds, admin and tenant functions can be separate. However, the individual functions like help desk,Accounts management can be a separate micro frontend
    2. There should be options for a tenant to white label the UI (custom logo, custom theme, custom layout (more development effort)) etc.

    With or without micro frontends, your UI layer should be working based on the permissions that comes as an aggregation of the user's roles (even across tenants).

    The UI always has probes to the API to get the permissions and render the various UI components based on the granted permissions to the user.

    We used to build custom UI components like custom grid, custom forms etc so that the permissions could be used to show or hide the various UI elements based on the permissions that a user might posses.

    Ex: In the context of a Administrator, I will be able to see all the team members, but in the context of a Service Administrator, I will be able to assign members to various tenant functions like help desk, accounting etc which the Administrator will not be able to perform, but can view the mappings.

    Similarly, your business requirements will drive the UI, hence if you follow using the permissions for the UI, it is always very fine-grained and easy to manage than depending upon higher levels of abstraction like Roles.

    HTH