Multi-Tenant Catalog Mode
The Multi-Tenant Catalog Mode feature of SOLO Server allows a "master" catalog to be maintained on a "parent" author account, with the ability to replicate the master catalog to "child" author accounts. This is intended for scenarios involving subsidiaries or distributors, where the customers and licenses for each subsidiary/distributor should be segregated, but product catalog maintenance is done on a master catalog, and the software is built against the product data from the master catalog. In this mode, a master catalog is maintained on a parent author account. Each child author account then inherits a selective copy of the master catalog, which can be resynchronized after any changes to the parent catalog. For the remainder of this topic, the terms "parent" and "child" will be used to describe the two author types when running in this mode.
For more information on the benefits and process of using this feature, read our blog post: Distributors & Subsidiaries can now self-manage licenses
Overview
When using this mode, you must first choose the parent author account. This is generally the default author account created during installation (Author ID 2451871), though this is not a requirement. Once the parent author account is chosen, the ParentCatalogAuthorID entry in the web.config file must be set to this Author ID, and any other author will be considered a child author. Once this is configured:
- To view the synchronization interface, users must have Global Access and View Products permissions. To perform catalog synchronization, users must also have Edit Products permission, and not be marked as Read Only.
- When viewing the product listing for a child author, users with appropriate permissions will now see a Synchronize Catalog option in the Actions menu. Clicking this option will take the user to a page which will list out all products on the parent catalog, as well as whether each product has been replicated to the child catalog, and the last replication details for those products that have been replicated. For users with the appropriate permissions, each author in the listing will also include a checkbox to allow selectively replicating\synchronizing the parent catalog products to the child catalog. Simply check the products to replicate/synchronize and click the Synchronize button to update the catalog on the child author.
- When viewing the product details for a product on the parent author, users with appropriate permissions will see a Synchronize Catalog option in the Actions menu. Clicking this option will take the user to a page which will list out all child authors, as well as whether the given product has been replicated to the child author, and the last replication details for those authors the product has been replicated to. For users with the appropriate permissions, each product in the listing will also include a checkbox to allow selectively replicating/synchronizing the parent product to the child authors. Simply check the authors to replicate/synchronize to and click the Synchronize button to update the products on the child authors.
- Any web endpoints which verify the Product ID or Product Option ID will validate against the values of the parent product/product option, and the encryption key of the parent author will be used. This allows maintaining a single software build which will work across all child authors.
- Similarly, the download page in the Customer License Portal will use the parent author's ESD directory, allowing a single download to be maintained.
Adding a New Child Author
To add a new child author, follow these steps:
- From the menu, choose Admin / Add a new Author Account.
- Fill out the form with the details for the new child author and click the Save button to create the new author.
- Next, verify the permissions of the default user and groups which were created from the prior step. From the menu, choose [User Name] / Users on the upper right and revoke any unnecessary permissions from the default user, and choose [User Name] / Groups and do the same for the default groups. While doing this, you can also add any additional groups or user accounts.
- Finally, perform the first synchronization of the parent catalog to the new child author. From the menu, choose Configure / Products, and then from the Actions menu, choose Synchronize Catalog.
- On the synchronization page, check the checkbox for any products from the parent catalog that should be synced to the new author, and then click the Synchronize button.
Resynchronizing a Child Author Catalog
After initial catalog synchronization, it may be necessary to resynchronize the child author catalog to replicate changes from the parent catalog to the child catalog, or to replicate additional product(s) to the child author account. To resynchronize a child author catalog:
- Switch to the author account whose catalog is to be resynchronized.
- From the menu, choose Configure / Products, and then from the Actions menu, choose Synchronize Catalog.
- A listing of all products from the parent catalog will be displayed. Check the Resynchronize checkbox for any products that already been replicated that need to be resynchronized, and check the Replicate checkbox for any products not already replicated which need to be, and click Resynchronize.
Resynchronizing a Parent Catalog Product to Child Author Catalogs
When a change is made to a product in the parent catalog or a new product is added, it may be necessary to replicate the updates to one or more of the child author accounts. To resynchronize a given parent product:
- Switch to the parent author account, and then choose Configure / Products from the menu. On the product listing, locate the product to be synchronized and view it.
- In the Actions menu on the product details page, choose the Synchronize Product option.
- A listing of all child authors will be displayed. Check the Resynchronize checkbox for any authors that the product has already replicated to that need to be resynchronized, and check the Replicate checkbox for any authors the product is not already replicated which need to be, and click Resynchronize.
Restricting User and Group Permissions on Child Author Accounts
In most cases, user permissions for users and groups on child author accounts should be restricted. For example, to prevent the product catalog from getting out of sync, child author users should not be granted add or edit products permission. To allow child authors to manage their own users and groups without allowing them to grant certain permissions, SOLO Server only allows child author users to grant permissions to which they have been granted. Since the allowed permissions will differ on a case by case basic, a database customization hook is in place which allows implementing customized permissions on the default users and groups which are created when creating the child author account. For SOLO Server Dedicated URL customers using this feature, we will take care of setting this up when we enable this feature. For SOLO Server Self-Hosted customers, we will provide instructions on setting this up, and can optionally implement this through our professional services.
Custom Parameter Sets and Multi-Tenant Catalog Mode
By default, when synchronizing products, any fields related to another record on the parent author (such as Mailing IDs, License Labels, etc.) are not synchronized to the child products and options. If using Multi-Tenant Catalog Mode in conjunction with Custom License Parameters, it is recommended to use global custom parameters on the product options on the parent author account. To create global custom parameter sets, simply use the Configure Custom Parameter Sets (Global) option rather than the standard option in the Actions menu on the product listing page. If a global parameter set is used on a parent option, it will be synchronized with the child options when synchronizing catalogs, meaning you need to only manage one custom parameter set at the parent level.