Enhancements
Workspace inheritance - For enterprise customers, the workspace inheritance function allows you to create child workspaces that automatically inherit source data and Tonic configuration from their parent workspace. Changes to the parent workspace configuration are copied to the child workspace. You can override the subsetting configuration and post-job scripts in a child workspace.
Links from Schema Changes to Database View - Added links from Schema Changes entries to Database View. The links automatically filter Database View to only include the affected column or table. The links only display for columns and tables that are in the source database. Removed columns or tables do not have links to Database View.
Schema filtering for PostgreSQL - For PostgreSQL workspaces, when you create or edit the workspace, you can specify a list of schemas to either include or exclude from the source database.
User profile pictures - From the User Settings view, Tonic users can now upload a user image for their account. For SSO providers that support user images, the image from the SSO is used by default.
Zip code configuration for HIPAA Address generator - A new configuration setting for the HIPAA Address generator allows you to determine how the generator sets the zip code. If the setting is off, the generator uses the current process, which replaces the last two digits of the zip code with zeros. For low population areas, the zip code is all zeros. If the setting is on, then the generator selects a real zip code that starts with the same three digits as the original zip code. For low population areas, if a state is provided in the data, the generator selects a random zip code from that state. Otherwise it selects a random zip code from the United States.
Other updates
Minor updates to the Subsetting view. New icons for the subsetting summary and the inbound and outbound relationship counts. Added a Use subsetting toggle to indicate to use the subset configuration for data generation. This toggle is synchronized with the same toggle on the Confirm Generation panel.
Fixed an issue where Tonic logged users out between browser sessions more often than expected.
Improved performance for the JSON Mask generator.
Fix to ensure that the AI Synthesizer is canceled when a data generation job that includes AI Synthesizer is canceled.
Fixed an issue where a data generation job would hang if there was a failure.
Fix to address an issue where after a one-click update, the Tonic version unexpectedly regressed to an earlier version.
Fix to ensure that cross-table commands do not run in parallel, which could cause deadlocks in the database.
MongoDB
PostgreSQL
Spark
Enhancements
Filtering workspaces by tags - On the Workspaces view, you can filter the workspaces by the assigned tags. In the Tags column heading, click the filter icon to display the list of applied tags. Check the checkbox for each tag to include. The list is filtered to include workspaces that have at least one of the selected tags.
Automatically resolving schema changes - Schema changes are now resolved or dismissed automatically when you update the table or column configuration.
Other updates
Corrected the number of rows for out-of-subset tables. No longer show 0 when out-of-subset tables are processed.
Improved error messaging when a where clause for a subset target table is invalid.
Corrected an issue where the subsetting table configuration was not handled correctly.
The job types filter on the Job History view now only shows valid types for the workspace.
Improved performance for data generation.
Improved performance for the AI Synthesizer.
Improved reporting of subsetting progress when parallelism is enabled.
MongoDB
Spark
Enhancements
You can now enable parallel processing for subsetting. The TONIC_SUBSETTING_PARALLELISM environment variable sets the number of steps to process in parallel.
Other updates
Made a couple of small improvements to the AI Synthesizer generator.
Fixed an issue where users could not change the percentage on a subsetting target table.
Improved how we sort tables for parallel processing to improve efficiency.
MongoDB
Spark
Enhancements
On Privacy Hub, the term "Unprotected Sensitive" is replaced with "At-Risk". The protection status counts exclude columns that are not included in the destination database.
On Database View, added an option to filter by whether a column is included in the destination database. A new At-Risk toggle provides a shortcut to filter for columns that are included, marked as sensitive, and not assigned a generator. The Column Type filters, which filter columns based on whether they are a primary or foreign key, are changed from checkboxes to toggles.
In the Privacy Report, added Not Included as a value for ColumnPrivacyStatus, to identify columns that are not included in the destination database. The value Protected replaces the current values Masked and Anonymized, which are moved to a new ProtectionType column.
Other updates
Improved the display of the Database View advanced filter for smaller screens.
Fixed an issue with the generation of the API reference.
Began to log latencies each hour for source and destination databases.
MongoDB
MySQL
When you create a sample workspace, it now includes a tag called Sample Tag.
Fixed an issue where the Update Tonic button was not displayed correctly.
Improved the user interface for activating new hosted accounts.
Improved message to notify users that the subset configuration changed since the last subsetting data generation.
The HIPAA Address generator now works correctly for US addresses.
MongoDB
Oracle
PostgreSQL
Added a new Max Categorical Dimension parameter to the AI Synthesizer configuration. This parameter controls the dimension of each column that has categorical or location encoding. If a column contains more distinct categories than this parameter, the most frequent categories are embedded as distinct one-hot vectors. The remaining categories are combined into a single one-hot vector.
Improved error identification for an invalid WHERE clause in subsetting configuration.
On the subsetting page, for tables that were not previously in the subset, the row count is now correctly represented as unknown instead of 0.
Fixed an issue with the Tonic update option in the Tonic application.
Configuring a subset target table to include 100% of the records no longer causes an error during data generation.
Removed connection pooling from Tonic workers to address database connection issues during data generation.
MongoDB
MySQL
Oracle
ORACLE_TRACE_LEVEL, ORACLE_TRACE_FILE_LOCATION, ORACLE_TRACE_FILE_MAX_SIZE, and ORACLE_TRACE_OPTION) to enable Oracle tracing.PostGreSQL
Spark
Enhancements
On Privacy Hub, the list of unprotected sensitive columns is replaced with a Database Tables list. The Database Tables list summarizes the protection status of each table in the source database. The Privacy Status column summarizes the protection status of the columns in the table. It provides access to the same column details and configuration options as the protection status panels at the top of Privacy Hub.
You can now filter the Workspaces view based on your assigned role in the workspace. For example, you can only display workspaces for which you are an Owner or an Editor. To use the role filter, click the filter icon in the Role column heading. For admin users, the role filter includes a Role assigned toggle to allow them to only see workspaces that they have a role in.
Other updates
Customers in the Basic license tier can now transfer ownership of workspaces and assign workspace roles to other users.
New users are now logged into Tonic immediately after they create their Tonic account.
For AI Synthesizer:
To update a license key, self-hosted instances that do not have an admin user can set the license key as the value of the TONIC_LICENSE environment variable. Tonic ignores the variable in instances that have an admin user.
The Workspaces view no longer waits for users to finish applying several new filters in quick succession before it fetches new results.
On the Job History view, fixed an issue where the copy job ID and download logs icons flashed on hover. Removed an error that flashed when job details were displayed.
Fixed the parallel processing for subsetting.
MongoDB
MySQL
Oracle
Spark
Added Sequence Length Loss Factor and Order Column Loss Factor model configuration options for events data to the AI Synthesizer. Sequence Length Loss Factor indicates the importance of realistic sequence lengths in the model. Order Column Loss Factor indicates the importance of realistic column value ordering in the model.
For the Categorical generator, differential privacy is now off by default.
Increased the amount of time after which an inactive job is assumed to be canceled.
Amazon Redshift
MongoDB
MySQL
Oracle
Snowflake
Spark
SQL Server
New features and enhancements
Redesigned the user experience for the subsetting feature. The new subsetting view displays a list of the source database tables and indicates whether each table is in the subset. When you click a table, the table details display in a new right-hand panel. From the details panel, you can configure target tables. You can also identify lookup tables (previously referred to as reference tables), and indicate how to handle tables that are not in the subset.
If subsetting is configured, when you run a data generation job, you can enable or disable subsetting.
Added latitude and longitude processing to the HIPAA Address generator.
You can now filter Database View based on the applied generator. On the filter panel, in the Applied Generator field, you can provide the list of generators to include.
Redesigned the Schema Changes page. The Actions list is now called Conflicting Schema Issues. Tonic provides clearer warnings when a schema change resolution will result in a change to the workspace configuration. Resolving a conflicting issue or bulk dismissing non-conflicting issues now includes a confirmation step.
Other updates
Renamed the Events generator to Event Timestamps.
Fixed some small display issues in the new Privacy Hub and Subsetting displays.
Improved event generation for the AI Synthesizer.
Improved how we retrieve CloudWatch logs to include the job ID and to use the correct Tonic version.
Corrected the processing of downstream, multi-index tables during subsetting. Corrected an issue in the initial fix.
Improved memory usage during data generation.
Amazon Redshift
MongoDB
PostGreSQL
Oracle
Snowflake
New features and enhancements
We enhanced Privacy Hub to add expanded top-level metric panels. These panels show the number of unprotected sensitive columns, protected columns, and unprotected non-sensitive columns. From these panels, you can display column details, select and configure the column generator, view sample data, and add column comments.
You can now add or update a Tonic license from the Tonic application. For a new instance, you are prompted to provide the license key before Tonic displays the login screen. Tonic displays a message when the current license is expired. The Admin Panel includes an option to update the license key.
For the Address generator, added City with State and City with State Abbr to the available options for the column format. You use these options for column values such as San Francisco, California or Boston, MA.
Tonic now supports subsetting for MongoDB databases.
Workspaces can now have a description (up to 200 characters) as well as a name. Use the description field to provide additional context for the workspace and how it is used.
In the Tonic API, you can now sort workspaces based on the last generation date.
Other updates
Tonic now prevents a job from running when the worker determines that the server is running a different version of Tonic.
Refactored the underlying implementation of the subsetting feature.
Made some small memory improvements for data generation.
Implemented performance improvements when applying parallel constraints.
Corrected errors for edge cases related to the Audit Trail.
When the selected workspace changes, the identifier in the URL is now updated correctly.
The workspace configuration is migrated to a data type that enables more efficient querying.
Tonic now validates uploaded foreign keys against the table definitions.
MongoDB
Oracle
PostgreSQL
Spark
Refreshed the Audit Trail user interface on Privacy Hub. The new Protection Audit Trail provides a paginated list of the updates to the sensitivity designation and generator assignments.
Deep links now work correctly when you use Google SSO to authenticate.
Error messages from Oracle are now displayed in response to invalid where clauses in subset configuration.
Made minor memory improvements to the Address generator.
Snowflake
SQL Server
Improved cross-tab support for automatic logouts when you configure an inactivity period.
The Update option in the actions menu now takes you directly to the System tab on the Admin Panel instead of the Users tab.
Corrected the password length requirement to be 12 characters or greater instead of greater than 12 characters.
Improved the estimated row progress for scaled tables.
Eliminated a race condition that occurred when applying constraints.
Databricks:
SQL Server:
When users create a new password, Tonic now displays a panel with the password requirements, and indicates whether the password meets those requirements.
Improved the parallelization and concurrency for processing foreign key constraints.
Databricks and Spark EMR
MongoDB
Features
For PostgreSQL databases, Tonic now supports name and char data types.
For Tonic single sign-on, Tonic now supports Azure Active Directory.
From the administration screen, administrators for customers that run Tonic on Kubernetes and Docker can now download logs from all containers that run Tonic.
For Spark-powered integrations, Tonic now supports the Address generator as a sub-generator.
Bugs
Improved performance for:
Improved the browsing experience on low resolution displays.
Features
Skip batch instead of failing generations on Postgres in some cases when values fail to be inserted
Improvement to Synthesis Reports for AI Synthesizer generated data
Changing Lambda deployment from ECR to ZIP for integrations using Lambda functions. Images no longer need to be manually deployed to ECR.
Bugs
Fix for One-Click Tonic update when the PostgreSQL application database is deployed in a Docker container
Features
Support for arrays with Struct Mask generator on Amazon EMR/Spark and Databricks
Bugs
Fix issue causing privacy scans on Dremio to fail
Minor UI fixes to workspace page
Fix for data generation issue on Db2 iSeries when destination is empty
More robust handing of Databricks host URLs
Features
Add data type advanced search for Oracle, Amazon Redshift, and BigQuery
Performance improvements for constraint restoration
Improved performance of Random Integer generator on Spark
Bugs
Fix issue on SQL Server preserve destination mode when table names contain a ".".
PostgreSQL: Fix issue copying arrays with trailing slashes
Features
For Amazon S3/EMR data source, support separately testing each component of the connection (Glue catalog, EMR cluster, and S3 bucket)
The Additive Noise Generator is renamed to Noise Generator with two noise options - Additive (existing) and Multiplicative (new)
Improve Javadocs for Spark SDK and other enhancements
Bugs
Fixes for the SQL beautifier on post-job scripts, including scenarios that may have crashed the app on Safari
Skip processing Temporal Types when not supported (SQL Server 2012) to prevent job failures
Features
Support graceful cancellation of privacy metric computation for AI Synthesizer
Java SDK documentation available from the SDK Setup dialog
Bugs
Only show SSO and Enterprise licensing information to users when appropriate
Minor UI fixes for scrolling on the workspace view table
Minor UI fixes for the Edit Workspace page
Features
Add support for Azure Datalake Storage Gen 2 as an output destination for Databricks
Don't include statistics for Oracle schema copy
MongoDB: Support uploading foreign key file, support deleting configured foreign keys
Bugs
Do not stop generation in SQL Server if schema pre-fetch fails
Improved deletion of old logs to prevent timeouts