Managing customer tenants

A customer tenant is a separate virtual space for Platform applications. For Platform private cloud, master tenant administrators create and manage customer tenants using the System Console application:

System Console Customers Tab

To create a customer tenant, you create a Customer record. The Customer record specifies configuration such as which applications users of that customer tenant can access, where their data will be stored, and the level of security. From the Customer record, master tenant administrators can log into the customer tenant with super-admin privileges (when this functionality is enabled). Some fields of Customer records, like the address, can be edited by administrative users of the customer tenant through their Account Setting page.

The isActive formula field determines whether users can log in to the customer tenant. The default implementation for the IsActive formula sets the Status of newly created customer records to Active. You can change this formula if desired.

The Subscribers tab of the System Console application lists all users in all customer tenants. You cannot create these records directly. Platform creates them when an administrator in the customer tenant creates a User record. Subscriber records are useful for marketing, communication and other purposes such as sending mass emails.

If you delete a Customer record, all records and hosted files from that tenant will be deleted. Deletion cannot be reversed unless you have a backup file. You can restore customer data from a backup file created on a different Platform server, see Moving and restoring customer tenants.

Installing applications in new tenants automatically

The Customer record allows you to specify a list of applications that Platform installs when it creates the new customer tenant. The Platform application is required, and Platform installs the applications you specify, in order. When an application includes a Post Customer Create Script, that script is executed after the application is installed. You can use a Post Customer Create Script to create a tenant with no administrative users, and instead create a custom role that has some administrative permissions. See Creating a tenant with no administrative users for details.

Sometimes multiple applications contain the same component with different definitions. By default, Platform accepts additions to component definitions, such as a new object field, but rejects conflicting changes, such as those to an existing field name.

The AppInstallOverridesChanges property in the Shared Properties controls this behavior. If the property value is true, and Platform installs an application with a conflicting component definition, it accepts it. As Platform installs applications, all conflicting component definitions override existing definitions.

For example, suppose a Contact application includes the User object, which is also part of the Platform application. A developer makes two changes to the User object: a field addition, favoriteTeam; and a field name change, lastName to familyName. An administrator adds the Contact application to the list of applications to be installed in a new tenant and creates a new customer tenant. The Platform application always installs first. The AppInstallOverridesChanges property value determines what happens to the User object when the Contact application is installed:

  • With the default value, false, Platform adds the new favoriteTeam field to the User object.
  • With a value of true, Platform adds the new favoriteTeam field and changes the lastName field's name to familyName.