Deploy content from a parent organization to one or more tenants

🚩

This documentation describes one or more public beta features that are in development. Beta features are subject to quick, iterative changes; therefore the current user experience in the Sigma service can differ from the information provided in this page.

This page should not be considered official published documentation until Sigma removes this notice and the beta flag on the corresponding feature(s) in the Sigma service. For the full beta feature disclaimer, see Beta features.

🚩

This is a premium feature. To enable it for your Sigma organization, contact your Sigma Account Executive.

You can deploy content from a parent organization to one or more tenant organizations. For more details about what content gets deployed and considerations, see Deploy content to tenant organizations. For example use cases, see Deployment use cases and examples.

Requirements

To set up a parent organization to deploy documents to tenants, you must be assigned the Admin account type or an account type with the following relevant permissions enabled:

  • To create user attributes and assign tenants, the Manage user attributes feature permission must be enabled on your account type.
  • To create source swap policies and define deployment policies, including add documents and tenants, the Manage deployment policies feature permission must be enabled on your account type.

Each tenant organization must have at least one connection configured. See Connect to data sources.

Prepare to deploy content to tenants

Preparing to deploy content to tenant organizations involves several steps. Depending on your Sigma Tenants architecture, perform the relevant steps:

  1. Configure data source swapping for each connection in the source organization.
  2. Map tenant connections to define which connection to swap to in each tenant.
  3. Define a deployment policy for each set of content that you want to deploy to a tenant as a workspace.
💡

Every time you add a new tenant organization and configure a connection for the tenant, perform the following steps to start deploying content to the new tenant:

  1. Map the tenant connections.
  2. Add the tenant to the deployment policy.

Configure data source swapping

For each connection in the parent organization that must be swapped to a connection in a tenant organization, configure the following in the parent organization:

  1. Create a user attribute
  2. Configure a source swap policy
💡

Every time you add a new connection to your parent and tenant organizations, repeat these steps to configure data source swapping for the new connection.

Map tenant connections

If you configure data source swapping, assign the user attribute to each tenant with the value of the relevant connection name or ID in each tenant.

The user attribute is used in the source swap policy to swap the data sources correctly for each tenant. See Assign the user attribute to one or more tenants.

Perform these steps for each tenant organization that you plan to deploy content to.

Configure a deployment policy

To deploy content to tenant organizations, do the following:

  1. Define a deployment policy.
  2. Add documents to the deployment policy.
  3. Add tenants to the deployment policy.

Create a user attribute to manage tenant connections

When you deploy content to a tenant organization, the data sources must be swapped to match the connections that exist in the tenant organization.

For each connection in the parent organization that must be swapped to a connection in a tenant organization, create a user attribute.

To create a user attribute, see Configure user attributes.

Configure a source swap policy

To manage swapping connections for deployed documents, configure a source swap policy for each connection in the parent organization that must be swapped to a connection in a tenant organization:

  1. In the Administration portal, go to Source swap policies.

  2. Click Create policy, then choose Deployment.

  3. For Name, enter a name for the policy. For example, Tenant Databricks Connection Policy.

  4. For From, choose the relevant connection in the parent organization that you want to swap from. For example, Databricks Development.

  5. For To, select the attribute that you created. For example, tenant_connections.

    When deploying documents, Sigma swaps the connection selected in From to the connection identified by the assigned value in the user attribute.

  6. (Optional) If you want to swap specific paths in the connection to a different path in a tenant organization, click Add rule:

    1. For From, select the path to swap in the connection in the parent organization.

    2. For To, define the values to swap to for each tenant connection. The path segments available to swap depend on your connection. For example, for a connection to Databricks, you can swap the catalog, schema, and/or table. For each segment of the path, choose how to swap:

      • Exact value: Specify the value to swap to. For example, if the schema name is the same for all catalogs that you plan to swap, choose Exact value and enter the schema name.
      • User attribute: Specify a user attribute to use to specify the value to swap to. The assigned value of the user attribute is used when the swap is performed.

    After adding a rule, click Save. You can add multiple rules.

    For example, to swap a DEV catalog in the parent organization Databricks Development connection to a PROD catalog in a tenant connection, where the schema and table structure is identical, do the following:

    1. For From, choose DEV as the catalog, then for schema, choose All paths.
    2. For To, select Exact value as the catalog, then for Value, specify PROD.

    If instead, you want to swap a DEV catalog in the parent organization Databricks Development connection to a PROD catalog in one tenant connection and a TEST catalog in another tenant connection, create a user attribute with a name like catalog_swap and assign the attribute to each tenant with the value of the catalog in the tenant, then add a rule like the following:

    1. For From, choose DEV as the catalog, then for schema, choose All paths.
    2. For To, select User attribute as the catalog, then choose the relevant user attribute: catalog_swap.

    If you want to swap a full object path, such as a table named USAGE in the LOGS schema of the DEV catalog in the parent organization Databricks Development connection is a different location in all tenant connections, do the following:

    1. For From, choose DEV as the catalog, then for schema, choose LOGS. For Table, choose USAGE. If all tables in the schema have the same name in all tenant connections, choose All paths.

    2. For To:

      1. For Catalog select Exact value, then for Value, specify PROD as the catalog.
      2. For Schema, choose Exact value again, then specify a value of the schema in all tenant connections: DATA_TRACKING.
      3. If the table has the same name in the path, for Table, choose Exact value, then specify a value of the table in all tenant connections: USAGE.
  7. After configuring the source swap policy, click Create.

Assign the user attribute to one or more tenants

To make sure that a source swap policy swaps data sources to the correct connection in a tenant organization, assign the user attribute to specific tenants.

Before you an assign the user attribute, retrieve the connection name for all tenants:

  1. In the Administration portal, go to Tenants.
  2. Select a tenant to open the tenant details, then select the Connections tab.
  3. Locate the relevant connection, then copy the Name.

Assign the user attribute to one or more tenants:

  1. In the Admin portal, go to User attributes.
  2. Select the user attribute that you created. For example, tenant_connections.
  3. On the user attribute detail page, select Tenants Assigned.
  4. Click Assign Attribute to Tenants.
  5. In the Assign Attribute modal, search for and select one or more tenant names.
  6. For each tenant that you want to assign, specify an Assigned Value. The assigned value can be a connection name or a connection ID.
  7. Click Assign.

Define a deployment policy

For each set of documents that you want to deploy to one or more tenant organizations:

  1. Create a deployment policy. Each deployment policy creates a workspace in one or more tenant organizations.
  2. Add documents that you want to deploy to one or more tenant organizations.
  3. Add tenants to the deployment policy to deploy the documents to the specified tenants.

Create a deployment policy

To manage sharing content with tenants, create a deployment policy:

  1. In the Administration portal, go to Deployment policies.

  2. Click Create deployment policy.

  3. For Name, name the deployment policy. By default, the name of the deployment policy is the name of the workspace created in the tenant organization. For example, for a set of content to deploy when you first create a tenant, name the policy Starter pack.

  4. (Optional) Turn on the Use a different name in tenants toggle, then specify a different name to use as the workspace name created in the tenant organizations.

  5. (Optional) By default, the published version of the documents added to the deployment policy is deployed. If you want to deploy a tagged version instead, for Version tag, choose a version tag.

  6. (Optional) If the tenant organizations use a different connection from the parent organization, turn on the Swap data sources toggle and do the following:

    1. Select Add source swap policy, then choose a source swap policy.
    2. Repeat for each connection that must be swapped in the parent organization.
  7. Click Create.

    Your deployment policy is created. Select it to add documents and tenants.

Add documents to the deployment policy

After creating a deployment policy, add documents to deploy them to tenants:

  1. In the Administration portal, go to Deployment policies
  2. Locate and select the deployment policy to which you want to add documents.
  3. Click Add document.
  4. In the Add document modal, search or browse to a document to deploy to tenant organizations, then select the document.
  5. Click Add.
  6. Repeat steps 3–5 to add more documents.

Add tenants to the deployment policy

After creating the deployment policy, add tenants to share the documents with:

💡

One tenant can be added to multiple deployment policies.

  1. In the Administration portal, go to Deployment policies.
  2. Locate and select the deployment policy to which you want to add tenants.
  3. Select the Deploy to tab.
  4. Click Add tenant.
  5. In the Add tenant modal, search for and select one or more tenants.
  6. Click Add.

After adding a tenant, a new workspace appears in the tenant organization. The workspace contains any documents deployed by the deployment policy. The workspace and all deployed documents should appear within a few minutes.

After setting up the deployment policy, manage deployed content.

Programmatically deploy content from the parent organization to tenants

If you want to use the Sigma REST API to manage deploying content from the parent organization to tenants, refer to the following steps and endpoints:

An admin in the parent organization can programmatically perform the following steps. For steps that need to be performed in a tenant organization, the admin can impersonate each tenant for API calls.

  1. For the parent organization and each target tenant, retrieve the connection ID and name information. Use List connections (GET /v2/connections).
  2. In the parent organization, create a user attribute (POST /v2/user-attributes).
  3. Assign the user attribute to target tenants with the value of the relevant connection ID or name for each tenant. Use Set a user attribute for tenants (POST /v2/user-attributes/{userAttributeId}/tenants).
  4. Create a source swap policy with a type of deployment. In the swaps portion of the request body, provide the user attribute as the toConnection parameter.
  5. In the parent organization, create a deployment policy (POST /v2/deploymentPolicies). For the sourceSwapPolicies parameter in the request body, provide one or more source swap policies.
  6. Add documents to the deployment policy (POST /v2/deploymentPolicies/{deploymentPolicyId}/files). To identify which documents to add, call the List workbooks or List data models endpoints and use the workbookId or dataModelId in the response in the inodeIds option.
  7. Add tenants to the deployment policy (POST /v2/deploymentPolicies/{deploymentPolicyId}/tenants).