Intro
Domo Sandbox allows you to promote content from one instance to another (production) instance. You can promote dashboards, cards, DataFlows, and connectors. Here are some terms you should know before using Domo Sandbox:| Term | Definition |
| Repository | The collection of objects that are being versioned. Over time, multiple versions of the selected objects are stored. An example of what might be included is a dashboard (including cards, Beast Modes, images, etc.) |
| Version | A snapshot of a repository at a given point in time. A repository can have multiple versions. |
| Commit | The action taken to store a new version. This results in a new snapshot of the Domo objects. |
| Promote | The action taken to create or update the objects in the destination Domo instance. An example is promoting a dashboard to production. This creates the dashboard the first time it is promoted or updates the dashboard on subsequent promote actions. |
| Same Instance Promotion | Promoting a repository in the same instance where it was created. Use this when you want to be able to manage the versioning process in the same Domo instance. |
| Source (Dev) Instance | The location of the source objects. This is typically a development or sandbox Domo instance. |
| Destination (Prod) Instance | The location where the objects are updated. This is typically the production instance. |
This article introduces Domo Sandbox in the following topics:
- Access Sandbox
- Instance Configuration
- Manage Repository Sharing
- Sandbox sharing requirements
- Promote Repository
- Sandbox Logs
- Grants
- Unsupported items
- FAQ
- Troubleshooting
Access Sandbox
If you are interested in using this feature, contact your Domo account team. If you do not have their contact information, reach out to Technical Support at support@domo.com You may be required to complete training before you can use the feature.Instance Configuration
Sandbox supports both cross-instance and same-instance promotion. If you want to do cross-instance promotion, contact your Domo account team to have an instance provisioned.Invite Production Instance to Sandbox
You must create a commit/promote relationship from your development instance to your production instance by sending a Sandbox invitation from Dev to Prod.- Log into your source or Dev instance (see the table in for more information).
- In the navigation header, select More > Admin.
- Under Governance, select Sandbox.
- Go to the Instances tab and select + Invite Instance.


- Type in the Domo domain of the destination or Prod instance, and an optional alias. The alias is the identifier used in other areas of Sandbox.
- Select Save.
- Log in to the Prod instance.
- In the Instances tab, choose Incoming Invites and select Approve.
Create a Repository
- Log into your source instance. In the navigation header, select More > Admin.
- Under Governance, select Sandbox.
- Go to the My Repositories tab and select + New Repository.

- Configure the repository by:
- Naming the repository. If you’re creating an App Studio repository, return to that task now.
- Selecting the object type being versioned.
- Choosing the items to be included in the repository.
Note:
By default,
Create initial commit
is selected. When the repository is saved, the first version is committed.

- Select Save Repository.
Create an App Studio Repository
You can create an App Studio repository object type from Sandbox.- Follow the steps to Create a Repository until you name the repository. Then return here.
-
In the
Object Type dropdown, select Apps (App Studio) to display a list of available App Studio apps.

-
Under
Settings, you can check both of the boxes labeled Create as a Linked Repository and Create initial commit. Choosing the initial commit option automatically creates a commit. The linked repository option ensures that you are not creating duplicated content in your repositories. To learn about linked repositories, see Domo Sandbox: Linked Repositories.

-
Select one or more available apps using the checkboxes to the left of the app name(s).
- You can search for existing App Studio apps by searching for the app in the Search Apps (App Studio) search bar above the repository list.
- Select all of the apps currently visible on the Create a New Repository page by selecting Select All Visible. In the image, there are fifteen apps on the page, so selecting Select All Visible selects all fifteen apps.
-
Clear all your app selections by selecting
Clear Selection.

-
Select
Save Repository to save your selections. Save Repository automatically saves the repository in your instance. Selecting and updating instance and user-level access will commit the repository to the identified locations. After saving, the Share Access modal opens and allows you to share your App Studio apps with other instances and users in Domo.


-
You can search for instances using the search bar and select the level of access using the dropdown.
- Can Promote — A llows that instance to promote the current repository.
- Default Access — A llows the source instance to commit, but cannot promote.
-
No Access
— R emoves access to the app repository completely. This means that when the app is shared, it is not committed to that instance.

-
Select the
People tab and search for a user or group to share the app repository with other people. People and groups can have owner-level access, edit access, or commit access. You can also remove user access completely.
- Owner — Allows users to edit and delete the repository.
- Can Edit — Allows users to edit and share the repository.
- Can Commit — A llows users to commit to the repository.
-
Remove
— R emoves access to the app repository completely. This means that when the app is shared, it is not shared with those individuals or groups.


- After you have selected the instances, individuals, or groups you want to share your repository with, the repository is automatically saved and available in the My Repositories tab.
Commit Version
- Log into your source instance. In the navigation header, select More > Admin.
- Under Governance, select Sandbox.
- Go to Repositories > My Repositories.

-
Locate the repository and select
Commit (or, select
Repository Options and Commit).
- Enter a description for the version that you are creating. By default, the version can be promoted. Uncheck Allow this commit to be promoted to prevent this version from being immediately available for promotion.

- Select Save.
Manage Repository Sharing
Instance Sharing
- Log into your source instance. In the navigation header, select More > Admin. The Admin Settings displays.
- Under Governance, select Sandbox.
- Go to Repositories > My Repositories.
-
Locate the repository you want to share. Select
Repository Options and choose Manage Sharing.
- To share the repository with a specific instance, select Can Promote.
- To share the repository with all instances, select Add All.
-
For the same instance promotion, share the repository with the source instance by selecting
Can Promote.
Note: Access to the repository can be revoked at any time by selecting No Access for specific instances or Remove All for all instances.

- Select Close.
User Sharing
- Log into your source instance. In the navigation header, select More > Admin. The Admin Settings displays.
- Under Governance, select Sandbox.
- Go to Repositories > My Repositories.
-
Locate the repository you want to share. Select
Repository Options and choose Manage Sharing.
- Select People. Add people and groups, choose the appropriate permission level, and select Share.
- Select Close.
Sandbox User Permission Levels
Note:
Users with the Administer Sandbox grant can access all repositories.
Sandbox Sharing Requirements
To successfully commit or promote a repository with the expected results, you must have the correct access permissions to both the repository and its content. If you attempt to commit or promote a repository when you do not have the correct access permissions, the repository may still commit or promote but with unintended consequences. You must meet the following requirements to successfully share a repository:- Anyone who commits the repository must own or have received shared access from the source instance, including the repository and its pages, cards, dashboards, AppDB data, DataFlows, and connectors.
- Anyone who promotes the repository must own or have received shared access to the destination instance, including the repository and its pages, cards, AppDB data, DataFlows, and connectors.
Promote Repository
Note:
When promoting a card in a repository, the user doing the promoting is assigned ownership of any Beast Mode that is tied to a DataSet powering that card.
- Log into your target instance and go to the Admin Settings.
- Under Governance, select Sandbox.
- Go to Repositories > Shared Repositories. All repositories that have been shared with your instance display.
- Locate the appropriate repository and select Promote. The repository details display.
- Configure the following:
- Choose the version to be promoted. This defaults to the most recent Committed Version.
- Map dependencies. Depending on the object type of the repository, there may be different mapping requirements. The most common required mapping is data sources.
- In the Advanced tab, apply settings as necessary. Renaming/removing strings from object names is available primarily to facilitate same-instance promotion, but can be used when promoting across instances.
- Select Promote.
Sandbox Logs
- Log into your source instance. In the navigation header, select More > Admin. The Admin Settings displays.
- Under Governance, select Sandbox.
-
Select the
Logs tab.
Note: Commit Logs are available in the source instance and Promote Logs are available in the destination instance.


Grants
| Grant Type | Allows Users To: |
| Administer Sandbox |
|
| Manage Repositories |
|
| Manage Repository Promotion |
|
Grant Examples
To administer Sandbox for a Domo instance, including establishing repository sharing relationships, enabling same-instance promotion, and requiring approval for promotion, a user must:- Have the Administer Sandbox grant
- Have the “Manage Repositories” grant (and/or the “Administer Sandbox” grant”)
- Have the Manage All Cards, Pages and Apps (App Studio) grant (only required for committing page-type repositories)
- Be the owner of the repository or have had the repository shared with them.
- “Can Commit” can commit only
- “Can Edit” can edit the repository content and sharing but cannot delete
- “Co-Owner” can edit and delete the repository
- Be the owner of the content being committed or have had the content shared with them
Note:
The content must be owned or explicitly shared, not merely accessible via Domo Admin-level grants.
- Have the Administer Sandbox grant
- Have the Manage Repository Promotions grant (and/or the Administer Sandbox grant)
- Be the owner of the repository or have had the repository shared with them
- “Can Promote” can promote only
- “Can Edit” can edit the repository (i.e., dataset mappings, renaming, etc.) and promote
- Be included in at least one Personalized Date Permissions (PDP) policy for each DataSet (on which PDP is enabled) used in any cards or dashboards in the repository
- Be the owner of the content (or, for cards or dashboards, have had the content shared with the promoting user if the promoting user also has the Manage All Cards, Pages and Apps (App Studio) grant).
Note:
- The content must be owned or explicitly shared; not merely accessible via Domo Admin-level grants.
- If the repository has never been promoted, the user promoting the repository will be the owner of content created during the promotion.
Unsupported Items
The following items cannot be promoted:- Unsupported features in App Studio:
- Forms
- Workflow widget
- Queue widget
- Content links
- App components
- Element actions
- Saved filters
- Large file sizes*
- Large image sizes*
- Unsupported items in DataSet Views:
- Calculated columns
- SQL Views
- Unsupported items in dashboards:
- Poll Cards
- Dynamic Summary Numbers in Notebook Cards
- Annotations
- Certifications
- Page ordering
- Doc Cards with large files*
- Content links
- Filter options
- Unsupported features in DataFlows:
- Recursive DataFlows
- Password-protected DataFlows
- Writeback Tile DataFlows
- Jupyter DataFlows
- Fixed Input tile
- Text Generation tile
- Unsupported features in connectors:
- DataSet via email connectors
- Linked repositories using connectors
- Unsupported features in Custom Apps and Pro-code Apps:
- Promoting and mapping AppDB collections
- Custom Apps outside of App Studio or individual cards
- Unsupported general features:
- Nested calculations
- Workflows
- Code Engine packages and functions
- Queues
- Approvals
- Projects & Tasks
- Slideshows
- Jupyter Notebooks
- Unsupported items for same-instance promotion:
- Smart Text
- Dynamic Summary Numbers
FAQ
What Domo objects are supported?
What Domo objects are supported?
Dashboards (includes sub-dashboards, cards, Layouts, files, apps), DataFlows, connectors, and DataSet Views. We plan to add additional objects over time and welcome feedback to help prioritize.
Are raw data sources supported?
Are raw data sources supported?
Yes. When creating a repository and selecting an object, choose Connectors. Sandbox supports Connectors with associated accounts in the primary instance. When mapping your Connector to another instance, you need to have an associated account in the target instance.
What happens to data when promoting content with Sandbox?
What happens to data when promoting content with Sandbox?
Sandbox moves content, not data. The best practice is to keep the data in the production instance and make it available in the development instance using either Virtual DataSets or the DataSet Copy Connector.
Can I revert to a previous version of a dashboard if necessary?
Can I revert to a previous version of a dashboard if necessary?
Yes, simply repeat the promotion process, but choose the desired version.
How long are versions stored and maintained?
How long are versions stored and maintained?
Committed versions are stored indefinitely, but they are only guaranteed to work for one month
Are users in the destination instance able to make changes to cards/dashboards promoted to them?
Are users in the destination instance able to make changes to cards/dashboards promoted to them?
Yes, however, any changes they made will be overwritten if there is a subsequent promotion from the source instance. If users would like to make changes, they should Save As the card/dashboard to another location and make changes there, as these are independent of the Sandbox Repository.
How large can repositories be?
How large can repositories be?
There is a limit of 1,000 cards within a repository. In general, there should be a repository for each dashboard or group of DataFlows/Views.
What happens when a promotion is aborted?
What happens when a promotion is aborted?
The promotion progress is stopped. Any changes that have been made in the process will remain in place and not reverted.
Troubleshooting
Sandbox provides logging on commit and promote activity. The best place to start troubleshooting is to review the commit/promote logs for errors. This will usually provide enough information to fix an issue with a specific object.Common Areas to Check
Common Areas to Check
Objects being committed are invalid
Objects being committed are invalid
- Cards: Check all Drill Cards for column errors commonly caused by schema changes in the underlying DataSet.
- Beast Modes: Invalid calculations can cause issues commonly caused by schema changes in the underlying DataSet.
Different Features between source and destination instance
Different Features between source and destination instance
- Example: If Advanced DataFlow functionality isn’t enabled in the destination, the DataFlows will be inaccessible or won’t promote successfully.
Unsupported items
Unsupported items
- Most objects and functionality are supported through Sandbox, though there are a handful of items to be aware of that aren’t currently supported. See the FAQ section above for supported objects.
Need Help?
Email: support@domo.comInclude the following information:- Instance(s) where behavior is occurring
- Repository Name (if applicable)
- Description of behavior
- Screenshot and/or recording of behavior (if applicable)
- Steps to recreate behavior (if known/applicable)