Workspaces

View a list of all your workspaces, manage them, and monitor status from the Workspaces View.

A workspace is the container of all the information required to generate a protected version of your data. This includes the connection details to your source and destination databases, all the transformations that you're applying to your dataset, any subsetting configurations, flags on fields that have been identified as potentially containing sensitive information, and snapshots of your schema for automatic schema change detection. Each workspace represents a path for your data between a source and an output database of the same type, for example postgres-prod-copy to postgres-staging.

The scope of Tonic features are contained within a workspace — for example, the undo/redo actions at top left are limited to the current workspace session and view, as are the recent error notifications at the top right of the navigation bar. Navigating through the views in the left-hand toolbar (Privacy Hub, Database View, etc) will reflect the schema and settings for the currently selected workspace (shown in the top drop-down at all times).

Workspace Setup

Click the blue "Create Workspace" button or "New Workspace" from the top toolbar to create a new source/output relationship and configuration for a new use case or data set. You may also get started with Tutorial data or a workspace that has been shared with you by another Tonic user.

When you create a new workspace or edit the settings for the current workspace it brings up the Edit Workspace menu:

  1. Change the name of the current workspace

  2. Toggle between the connection details for the source, the destination database, and any additional details around generation. For example, you can block data generation jobs in an event of any detected schema change in the details tab.

  3. Select the type of database that you're connecting

    Note: We support nearly all relational databases with minimal integration effort. Tonic currently requires that the source and destination databases are the same type. Please contact [email protected] if you don't see the database you want to connect to in the dropdown or if you'd like to transfer between database types.

  4. If you don't have foreign key relationships defined in your source database's schema, or you want to augment/override the existing relationships, you can optionally upload a JSON file that defines these relationships. The file should take the following format:

    [
    {
    "fk_schema": "public",
    "fk_table": "paystubs",
    "fk_columns": ["employee_id"],
    "target_schema": "public",
    "target_table": "employees",
    "target_columns": ["id"]
    },
    ...
    ]

    To help you quickly find these foreign keys in a large dataset, we have an open source project that uses fuzzy matching on column names to find possible relationships: https://github.com/TonicAI/fk_detect

  5. Specify your connection details. The inputs change depending on the database type selected.

  6. By default SSL is turned on. We strongly recommend not turning SSL off.

  7. Specify if you would like Tonic to trust the server's certificate

  8. Tonic can be connected to an SSH Bastion for additional security.

  9. Specify your own client certificate for authentication

  10. We highly recommend that once you've configured your connection you test the connection. If successful a green toast notification will appear, if unsuccessful an error message will appear next to the Test Connection button (see below)

Tonic does not create the output database. You must first create the output database before connecting.

Workspace Navigation

To change workspaces for editing, generation, and troubleshooting, click on the checkmark on the left side of the workspace in your list. You may also change the selection in the drop-down in the top navigation bar. Below, Example Successful Workspace is currently selected.

Workspace Details

In addition to editing workspace details, the Workspaces View displays several helpful pieces of information about each of your workspaces at a high level.

The currently selected workspace is indicated by the highlighted checkmark and row in the workspaces view. If you navigate to another tab or view from the lefthand toolbar, you will be viewing the schema and configuration associated with the selected workspace.

You can see the name of each workspace along with its database type.

You can also see the status for the most recent generation job. Hover over the job status for more details on the date, time, and duration for the job. If a job has failed recently, you will be given additional information about how long this job has been failing (the date of the first failure occurence among a continuous series of failures).

To the right, your role is displayed for a given workspace. For more information, see our documentation on workspace sharing and how to enable this enterprise feature.

And finally, the menu button will show the Workspace Menu options that you have access to as well as display the username of the workspace owner in case you need send them a friendly message.

Workspace Generation

To create a protected data set, navigate to the desired workspace and click on the Generate Data button in the top right corner. If the button is disabled, this means that pre-job checks did not complete successfully, and you'll be able to get more information by hovering over the Generate Data button. Pre-job checks will verify whether your source and output databases are properly connected, whether your table modes and generators are compatible with each other, whether your subsetting configuration is valid if enabled, and for other unresolved errors.

Once a job has started, you can click on the button in the notification to go to the the job's details page, or simply navigate to the Jobs view on the left for details on the generation status.

Workspace Tags

Custom tags can be associated with each workspace, which can help organize and provide a quick glance into the workspace configuration. Tags can be seen by everyone the workspace is shared with. They are stored in the workspace JSON, so they are included in the workspace export. Tags can also be accessed via the API like any other workspace configuration.

To add a tag, hover over a workspace in the Workspace View and click on the Add Tag button that appears. A tag input field will appear where you can input comma-delimited tags, which will be saved when typing Enter. Tags can be edited by clicking an existing tag and using the tag input field to add or remove tags.