Cloud-Based Multi-Tenant SaaS Business Intelligence Application for Enterprises

Services : Cloud Services

Cloud-Based Multi-Tenant
Saas Application

Project Overview

In 2021, Mantrax embarked on building a unique cloud-based multi-tenant SaaS application. It’s a financial metrics dashboard app for iOS and Android with a twist. To the onlooker, it will look like a simple tool that allows users to enter data and displays clean visualizations to present that data.

The Problem

The challenge was to de-identify all private company information (name, emails, product names etc.) before they made it to the database. For example, if Acme Corp sells a product called Foo Bar, we couldn’t save either the label “Acme Corp” or “Foo Bar” in the database.

    Potential Solution

    A knee-jerk reaction was to leverage the concept of Encryption-at-Rest, however, after the design assessment, we realized that the application would lose its USP if we used this principle. Although Encryption-at-rest with the proper key management policies would be a solid solution, there is nothing novel about it.

    Actual Solution

    At Mantrax we believe in putting order to chaos and coming up with solutions that are both elegant and sustainable. Our solution to this problem followed this mantra as well.

    TLDR; Anytime a new private label is created, the application generates a unique key (variable lengths) and stores this key in local storage (device) as well as remote storage (database). Any dollar amount saved in the database is saved using these unique keys as the identifier.

    Project Challenges

    01
    Unique Security Model
    The initial challenge was creating a data model that would support client isolation and allow users to log in seamlessly. Due to the nature of the app, using a NoSQL database was an obvious choice.
    02
    Multi-Tenancy at Scale
    At Mantrax, we are not married to any tech stack. We choose a stack that’s right for the solution.
    03
    Data Entry for Mobile Screen
    Maintaining a separate code base for iOS and Android means a more expensive development process.

    Project Solutions

    01
    Unique Security Model
    We used MongoDB for the data layer due to its amazing multi-tenancy capabilities. Each client on this app has their own database which can even be put on different clusters in different public clouds to satisfy client requirements.
    02
    Multi-Tenancy at Scale
    Since the purpose of the app was to allow a large volume of data entry capabilities, we chose Node JS, as it is non-blocking. For performance, we are running the Node process in cluster mode.
    03
    Data Entry for Mobile Screen
    We used Ionic (Angular) for the front end and leveraged Ionic’s local storage feature to save private label information.

    Even if there is a breach, no one can connect the data with the company.
    When we displayed the data, we merged the data from the device and the database.
    This is completely obfuscated to an end user.