Portal Management in SupportCenter Plus is implemented on a single server and single database model. i.e the data pertaining to all portals are stored in the same database and table. The data segregation is handled at the application level. Portals are used to manage your business verticals independently. By default, the application is configured with only one portal.
Database Architecture
Common Tables: Tables that contain data that are common across the organization are called common tables. Some examples for common tables are tables that contain the user information in the organization, the type of authentication, and common settings like the alias URL, attachment path, etc.
Portal Tables: Tables that contain data that are portal-specific are called Portal Tables. For example, tables that contain requests, solutions, etc. To be more precise, the request data related to the General portal, custom portal, etc., are stored in the same 'WorkOrder' table but within different ranges.
Portal Security Layer: Each portal when created is associated with a specific range in the database. For example, the data related to the General portal is stored within a range of 1 to 100,000,000 and data related to other portals are stored within 100,000,001 to 200,000,000 and so on. The portal security layer sits just before the query layer and ensures that every query that goes to the database has the specific range criteria of that portal added to it. Only tables that are common, such as users, personalization, login configuration, etc., are allowed without range. This ensures that portal-specific data cannot be fetched from another portal through the application.
Note: If the database is accessed directly, then all portal information can be accessed by a direct query. Access to the direct database should be controlled by the customer.
How are File attachments / inline images stored?
File attachments and inline images for each portal are stored in a separate folder.
Every file attachment is associated with a unique alphanumeric key. Only when the key matches can the attachment be downloaded. This ensures that the attachments of one portal cannot be downloaded from another portal.
In the case of inline images that are available through the URL directly, each inline image is stored with a complex random alphanumeric file name which makes it tougher to iterate and access other portal's data.
How are reports handled?
Custom reports will have the range that is associated with a portal added as criteria automatically, ensuring that data related to another portal is not fetched. Query reports are parsed to check if there are any portal-specific tables involved, and if yes, the required range criteria are appended to it automatically.