Removed the requirement that the authentication cookie goes over HTTPS (Secure Cookie). This fixed an issue where users could no longer log into Tonic over HTTP, but they could still log in over HTTPS.
Fixed an issue where users could not log out of Tonic from the email confirmation page.
Fixed an issue where upsert failed because of foreign key violations. Also improved upsert performance.
MongoDB
On the generator configuration panel, changed the label of the Save As menu to Preset Options. The menu contains options related to configuring generator presets.
Free trial users now have access to the file connector.
Tonic now displays the error that occurs when an Algebraic generator configuration does not include any floating-point values.
For composite generators, the generator preset details panel now provides a clearer explanation that presets for composite generators must be configured from within a workspace.
Improved performance for the Address generator and the HIPAA Address generator.
Amazon Redshift
File connector
MongoDB
Snowflake
SQL Server
MultiSubnetFailover
option.You can now export individual topics from the Tonic documentation to PDF files. To export a topic to PDF, click the actions menu next to the topic title, then click Export as PDF.
Fixed an issue with removing unique constraint conflicts in upsert where rows that didn’t have a conflict were excluded from the upsert process.
File connector
Removed support for TIM - The Tonic Installation Manager (TIM) command-line tool to install and configure Tonic is no longer available.
Free trial users can now use a public email address to create the free trial account. Users with public email addresses cannot invite other users or share workspaces. Public accounts are only allowed for free trials.
Users on a Professional instance can now share the Manager workspace permission set with users and groups.
Improved error handling and validation messages for the foreign key file upload process.
Counts of generator preset occurrences no longer include occurrences in deleted workspaces.
On the bulk update panel in Database View, the consistency and differential privacy options now display correctly.
Fixed an issue where you could not select Passthrough as a sub-generator in a composite generator.
Fixed an issue where custom presets could not be deleted.
Fixed a display issue where long post-job action names overflowed into the next column.
Fixed an issue where you could not assign Random Timestamp as a sub-generator for the Conditional generator.
Fixed an issue where the generator configuration panel displayed the generator preset options when the user did not have the Manage generator presets global permission.
Fixed an issue where when a constraint failed to be applied, data generation failed.
Improved display when users who do not have the Manage generator presets permission try to display the Occurrences tab on the preset details panel.
Improved how we handle unavailable options for workspace actions in Workspaces view and in the Tonic navigation options.
For the Conditional generator, Tonic now correctly compares MySQL date values.
Databricks
/Shared
.File connector
Failed to fetch files from S3. The continuation token provided is incorrect.
" but could still see the list of files in the S3 bucket.MongoDB
Custom generator presets
Earlier this year, for Enterprise instances, we introduced the concept of generator presets. A generator preset is a saved configuration of a generator. You can assign generator presets to columns.
The initial release only included built-in generator presets, which allowed you to set the default configuration for Tonic generators.
This update in v924 introduces custom generator presets, which allow you to set up multiple configurations of the same generator. You can create custom generator presets from Generator Presets view. From a generator configuration panel, you can also save the current configuration as a new custom generator preset.
Generator preset occurrences
From Generator Presets view, you can see how often each preset was used in a workspace configuration.
The Occurrences column of the generator presets list shows:
On the generator preset details panel, the Occurrences tab displays both the number of occurrences and the specific workspaces and columns where the generator preset was used. You cannot see workspace and column details for workspaces that you do not have access to.
Other updates
Tonic can now integrate with GitHub for SSO authentication.
To manage generator presets, users must now have the Manage generator presets global permission. Previously, you could also manage generator presets if you had the Manager or Editor workspace permission set for any workspace.
Fixed an issue where the table data in Table View was not updated correctly when switching the table mode to or from Scale mode.
Improved performance for the Regex Mask and Conditional generators.
MongoDB
PostgreSQL
Permissions and permission sets
As of v922, Tonic now uses permissions and permission sets to manage access to Tonic features and functions.
A permission controls access to a single feature or function. A permission set is a saved collection of permissions.Tonic provides built-in global and workspace permission sets. You cannot change the configuration of built-in permission sets. Enterprise instances can create custom permission sets.
Global permission sets contain global permissions, which control access to actions outside the context of a specific workspace. The built-in Admin global permission set grants access to all global permissions. Users and groups configured in the TONIC_ADMINISTRATORS
environment variable are granted the Admin (Environment) global permission set, which also grants access to all global permissions. These global permission sets replace the previous admin user concept.
The built-in General User global permission set is assigned to all Tonic users, and grants access to create workspaces. You can also designate a different global permission set to assign to all Tonic users.
Workspace permission sets are assigned in the context of a specific workspace. They provide access to workspace permissions, which are associated with workspace management functions. The built-in workspace permission sets (Manager, Editor, Viewer Auditor) mirror the previous workspace roles. Similar to the previous Owner role, the Manager workspace permission set is granted access to all workspace permissions. However, unlike the Owner role, the Manager workspace permission set can be assigned to any user or group. You use the workspace sharing function to assign workspace permission sets within a workspace.
Each workspace has a single owner. The user who creates the workspace is the initial owner. All owners are by default granted the Manager workspace permission set. You can also designate a different workspace permission set to assign to workspace owners. You use the transfer ownership function to select a different owner for a workspace.
On Tonic Settings view, the User Management tab is replaced by the Access Management tab. From the Access Management tab, you can:
API endpoint to track user access and permissions
A new API endpoint to track the following events related to user access and permissions:
The endpoint is:GET /api/audit-events/search
Other updates
You can now assign the Business Name generator as a sub-generator for the Regex Mask generator.
For subsetting, Graph View and the table details panel now display information about cycle breaks, when the subsetting process needs to break a circular dependency.
Databricks
File connector
Spark
The Admin Panel is renamed to Tonic Settings.
Tonic now provides a more meaningful error when Preserve Destination mode is assigned to a table in a workspace that does not have a defined destination database.
Fixed an issue where Tonic opened too many connections to the application database.
Fixed an issue with timestamps in the Tonic API specification.
Fixed a Tonic Cloud issue where using a different email domain to update a Tonic license caused issues with Tonic logging.
Enhanced the performance of the HIPAA Address generator.
The Data Pipeline V2 data generation process now respects the TONIC_PROCESS_PARALLELISM
environment variable.
Improved performance for subsetting, especially for data that contains a large number of foreign key relationships.Made a small performance improvement to primary key generators.
File connector
MongoDB
Oracle
PostgreSQL
Spark
NOTE: Releases v899 through v901 were removed.
Tonic Data Pipeline V2 for PostgreSQL ends beta
During the first half of 2023, Tonic has run a beta program for PostgreSQL for our new Data Pipeline V2. The beta program is now ending. Thank you to all of those who provided feedback.
Starting with version V905, Tonic.ai will progressively enable Data Pipeline V2 for all customers. To ensure a smooth transition for all our PostgreSQL customers, Tonic.ai controls the rollout remotely.
The remote rollout mechanism is controlled by an HTTPS request from your instance to https://feature-flag.tonic.ai
. A JSON payload with a unique identifier for your deployment is sent, and the status of Data Pipeline V2 is returned. This request happens at the start of each data generation. If your Tonic server cannot reach https://feature-flag.tonic.ai
, then the check is skipped.
What to expect for the enrollment:
For jobs that run on V2:
We will continue to improve Data Pipeline V2 as we expand coverage to other data connectors.
Expanded Graph View for subsetting
The subsetting Graph View is expanded to use more of the available screen space. The Configure Subset panel, which includes the Options and Latest Results tabs, no longer displays on Graph View. It only displays on Table View.
Other updates
Fixed an issue where when a data generation job failed, tables that used Preserve Destination table mode were not restored.
The generated Tonic API documentation now includes the endpoints for managing file groups for file connector workspaces.
Fixed an issue that caused jobs for some workspaces to fail with the exception "Cannot modify workspace whose schema is not the latest version.
".
Fixed an issue where the job details view displayed incorrect information.
Updated the /api/DataSource
endpoint to not contain secure data such as the API key.
Updated our OpenAPI documents to ensure that all values of operationId are unique.
Improved error messages for failed data generation.
Databricks
Test Connection
button on the workspace details view now works correctly.MongoDB
MySQL
Oracle
PostgreSQL
Snowflake
Spark
SQL Server
NOTE: Releases v897 and v898 were removed.
On Subsetting view, Graph View now displays a loading animation as new data is loaded.
Improved performance for the UUID Key and Integer Key generators.
File connector
Google BigQuery
MySQL
Oracle
The ASCII Key generator now includes an Exclude Lowercase Alphabet option to exclude lowercase letters from the destination values.
Fixed an issue that prevented free trial signups.
Data generation no longer fails when Tonic is unable to retrieve the destination database size.
Updated the FNR generator to prevent a possible leakage of PII.
Added a Date column to the usage report. The date column provides the date and time when the data generation job was completed.
Fixed an issue in the JSON Mask generator where it incorrectly changed the format of timestamps.
Subsetting is no longer prevented when a table that is not in the subset is assigned Preserve Destination mode.
Databricks
MongoDB
Oracle
PostgreSQL
Snowflake
SQL Server
File connector
The new file connector data connector allows you to use files from either Amazon S3, Google Cloud Storage, or a local file system as the source data. The file connector supports .csv, .json, and .xml files. Within a file connector workspace, you create file groups. Each file group contains files that have an identical format and structure. A file group is treated as a table for the purposes of table mode and generator configuration. The file connector is available with the Professional and Enterprise license plans.
Generic OIDC SSO Support
Tonic now supports authentication using a generic OpenID connection.
Tonic API versioning
We have introduced a versioning scheme for the Tonic API. API versions are released more or less quarterly, with the version identifier in the format vYYYY.MM.P
(Year.Month.Patch
). The current release candidate (v.RC
) contains API updates in progress.
You should now specify an API version in your API requests. The System Status tab of the Admin Panel lists the latest available version. You can also select the version to use when you do not provide a version in the request. If you do not provide an API version in a request or select a default API version, then until January 31, 2024, Tonic automatically uses the latest version. After January 31, 2024, Tonic will return an error from the request.
Other updates
Fixed an issue where Tonic incorrectly returned the error No Destination DB has been configured for this Workspace
for workspaces that used Preserve Destination.
For subsetting Graph View, updated the default zoom level to allow users to see more of the graph.
The Keycloak SSO provider now supports PKCE challenge.
Fixed an issue where deep links did not work for SAML SSO.
MongoDB
Oracle
SKIP_CREATE_DB
is set to true
.PostgreSQL
SQL Server
Spark
Fixed an issue where users could only select generators that supported uniqueness constraints for columns that were not unique.
Fixed an issue where admin users who did not have edit permissions on any workspaces could not edit presets from the Generator Presets view.
Improved data generation resiliency against transient failures.
Removed erroneous error messages.
To add AWS credentials to containers, you can now mount to ~/.aws/credentials
.
Improved error messaging for Table View.
Fixed a display issue where the column configuration panel was too narrow and required horizontal scrolling.
Exporting or copying a workspace no longer requires the workspace to have a valid source database connection.
Reduced the amount of memory needed to run the Tonic web server.
MongoDB
Oracle
SELECT ANY DICTIONARY
or SELECT_CATALOG_ROLE
cannot be granted, then Tonic can use a selection of ALL_
views (not recommended).TONIC_ORACLE_SKIP_CREATE_DB=true
, then external tables are now excluded from the table list in Tonic. Tonic does not process those tables.PostgreSQL
Snowflake on AWS
Snowflake on Azure
TONIC_AZURE_BLOB_STORAGE_ACCOUNT_KEY
.The new usage report summarizes the data processed for each table for data generation jobs. The report is a .csv file that you download from Tonic. To download the report, on the Admin Panel, click Download Usage Report.
When certain sensitive loggers are enabled, Tonic now disables log collection.
Fixed an issue on Database View where a column configuration panel would close unexpectedly.
For the TONIC_ADMINISTRATORS
environment variable, you can now specify the names of SSO groups to grant administrator privileges to. Previously you could only specify user email addresses.
The Tonic SDK Javadoc now displays correctly.
Restored the ability to import a workspace configuration from Workspaces view.
MongoDB
PostgreSQL
DEBUG
.TONIC_JOBFLOW_MAX_SOURCE_CONNECTIONS
and TONIC_JOBFLOW_MAX_DESTINATION_CONNECTIONS
environment variables. We recommend that you set each value to the number of CPUs on the corresponding database.Snowflake
The new FNR generator transforms Norwegian national identity numbers. The FNR generator was added in V857. It included options to specify a range of birthdates and preserve the indicated gender. In V866, removed the date range configuration options. The destination values are now always within the same date range as the source values. The FNR generator also now can be used for columns that have uniqueness constraints. The final digits in the destination value are not a valid checksum.
For the beta Data Pipeline V2 processing, fixed an issue where jobs would hang if they were canceled before the job started.
Fixed an issue where the Foreign Keys view would freeze.
Fixed an issue where when you typed @ to add a user mention to a comment, suggestions for the user did not display.Upgraded to use .NET 7.
"Data science modeling" is changed to "data science mode".
When you configure the SSH tunnel settings for a workspace, Tonic now obscures the SSH passphrase.
MongoDB
TONIC_MONGO_DISABLE_COLLECTION_INFORMATION_FETCHING
to false.PostgreSQL
Snowflake
Unable to determine AWS Region
".SQL Server
NOTE: Releases v849 through v854 are removed.
Removed caching of AWS credentials.
For the beta Data Pipeline V2 job processing (available for PostgreSQL only):
DEBUG
.On the Foreign Keys view, when you filter the keys, click the select all option, and then clear the filter, only the matching keys are selected. Previously, the select all option always selected all of the keys.
Fixed an issue where CSV files could not be uploaded to data science mode workspaces.
You can now configure parallelism for sensitivity scans. For relational databases, you use the environment variable TONIC_PII_SCAN_PARALLELISM_RDMBS
, and the default is 4
. For document-based databases, you use the environment variable TONIC_PII_SCAN_PARALLELISM_DOCUMENTDB
, and the default is 1
.
On the table configuration panel for subsetting, Tonic no longer displays a count of post-subset rows before a subset is generated.
Fixed an issue where subsetting data from one workspace appeared in a different workspace.
You can now use UUID columns in the conditions for the Conditional generator.
Fixed an issue where when you deleted a linked column from a column configuration panel, the other linked columns were deleted.
The Timestamp Shift generator can now be assigned to columns where the values use the date format MMddyyyy
.
Fixed a regression that caused NPGSQL logging to occur even when it was disabled.
Google BigQuery
MongoDB
Oracle
Snowflake
CREATE SCHEMA
permissions in order to support Preserve Destination mode for tables. Snowflake on AWS with Lambda processing continues to require CREATE SCHEMA
permissions in order to support Preserve Destination mode.SQL Server
The new Business Name generator produces realistic names of businesses or companies. The Business Name generator can be consistent with itself or with other columns. It improves on and is intended to replace the Company Name generator, which is now deprecated.
Fixed an issue on Table View where users could not use the delete icon to remove a generator assignment for a linked column.
Fixed an issue where the job details view for a subsetting job did not always show all of the steps as completed.Updated the version of pytorch, which is used for data science mode. This new version addresses some security vulnerabilities.
Fixed an issue where when the Tonic server was air gapped, the Admin Panel did not correctly display the current Tonic version.
Fixed an issue where jobs took longer than expected to complete.
Fixed an issue where the subsetting Graph View did not show how table participation in the subset changed since the most recent subsetting data generation.
Fixed an issue where after a single failure to write logs, the Download Job Logs feature stopped refreshing the logs. Tonic now continues to try to upload logs.
Google BigQuery
MongoDB
MySQL
Oracle
TONIC_ORACLE_SKIP_CREATE_DB
= true
, foreign keys are now correctly enabled on the destination database.PostgreSQL
Snowflake
SQL Server
Generator presets are now supported for Enterprise licenses on Tonic Cloud.
For Tonic data encryption, fixed an issue where the previous encryption key environment variable value was saved in the application database, which caused Tonic to use those values even after they were removed.
The Tonic diagnostic logs now include the Tonic worker ID.
Fixed an issue where the Tonic web server would not launch unless the Tonic application database used PostgreSQL v13 or later.
For data connectors other than MongoDB, the sensitivity scan is now parallelized.
Google BigQuery
MySQL
Oracle
TONIC_ORACLE_SKIP_CREATE_DB=true
, fixed an issue where the truncation of tables violated foreign key dependencies, which caused jobs to fail.PostgreSQL
Snowflake
For Tonic data encryption, Tonic now only verifies the key for the enabled process. If you only enable decryption, then Tonic only verifies the value of TONIC_DATA_DECRYPTION_KEY
. If you only enable encryption, then Tonic only verifies the value of TONIC_DATA_ENCRYPTION_KEY
.
Upgraded our Docker images from Ubuntu 20 to Ubuntu 22.04.
Updated to ensure that the Tonic URL reflects the currently active workspace.
Recently started jobs no longer display a start time that occurred several years ago.
On the Data Encryption tab, the option to provide custom initialization vectors is now a toggle instead of radio buttons.
Resolved an issue where Tonic took an extremely long time to load.
Oracle
TONIC_ORACLE_DBLINK_ENABLED
is false
. For the source database user, you can either grant SELECT ANY DICTIONARY
, grant SELECT_CATALOG_RULE
, or (not recommended) grant access to the ALL_*
views.PostgreSQL
Snowflake
NOTE: v805 and v806 are removed.
The new Snowflake on Azure data connector uses Azure Blob Storage to store interim uploaded and generated files.
A copied workspace now includes manual sensitivity designations. A manual sensitivity designation is when you change the sensitivity designation that was assigned by the sensitivity scan to either sensitive or not sensitive.
When the configured encryption or decryption key is not valid - for example, the key is not configured or uses the incorrect size - then Tonic does not allow you to configure Tonic data encryption.
Tonic Cloud now correctly enforces the supported data connectors.
Improved error messaging when subsetting data generation fails because the generator cannot be used with subsetting.When you change the type of Tonic data encryption (decryption, encryption, or both), Tonic no longer clears the decryption and encryption text fields.
MongoDB
Oracle
PostgreSQL
SQL Server
Fixed an issue where the column configuration panel on Privacy Hub incorrectly allowed users to change the configuration of foreign key columns.
The option to create a completely new workspace is no longer available from the workspace management view. You can only copy that workspace and create a child workspace. To create a completely new workspace, use the Create New Workspace option on the Workspaces view.
Fixed an issue where the generator for a column in a table that uses Scale mode could have a configuration option that is invalid for that mode.
Upgraded libraries to address security vulnerabilities.
Fixed an issue where when you applied the Random Timestamp generator to a column, a Bad format string
error was returned.
Improved display of long table names in the table details panel on Subsetting view.
MongoDB
TONIC_DOCUMENT_COLLAPSE_FIELDS_REGEX
provides the regular expression to check the field keys against. TONIC_DOCUMENT_COLLAPSE_FIELDS_REGEX_THRESHOLD
specifies the number of matching fields that causes the fields to be collapsed. A value of 0 indicates to not collapse the fields.Setting the default configuration for generators (Requires an Enterprise license)
The Generator Presets view allows you to configure the default configuration for generators. The current configuration is used whenever that generator is assigned to a column.
To update the configuration, you must be an owner or editor of a workspace in the instance.
In the configuration for a column, you can override the saved default configuration, which we call the baseline configuration. You can also revert to the current baseline configuration or save your configuration as the new baseline configuration.
Other updates
On the workspace management view, the workspace options are now included in the collapsed version of the heading.
For free trial users, the option to create a workspace is always visible in the Tonic heading.
For SAML SSO, if the value of NameID
is not an email address, Tonic uses the email claim in the SAML response.
Databricks
TONIC_WORKSPACE_DEFAULT_ERROR_ON_OVERRIDE
environment variable to determine whether new Databricks tables ErrorOnOverride
by default. The default value is true
, indicating that new tables ErrorOnOverride
.SQL Server
BYPASS_MS_XML_PARSING
from false
to true. The variable indicates whether to convert XML columns to nvarchar(max) to avoid potential XML parsing bugs.When you log back in to Tonic, it now displays the workspace management view for the most recently viewed workspace.
Improved error messaging for rarely occurring user authentication issues.
Fixed display issues on the Subsetting view where part of the subset results graph did not display and the Configuration tab did not scroll.
Amazon Redshift
MongoDB
MySQL
TONIC_WRITE_PARALLELISM
is always 1
, to prevent lock timeouts.Snowflake
SQL Server
Sequence contains no matching element
.Added a confirmation step when updating the baseline configuration of a generator preset from a column configuration panel.
Fixed an issue where job failures sometimes caused the worker process to crash in a way that prevented new jobs from running.
To improve Tonic web application security, added X-Frame-Options
/X-Content-Type-Option
headers.
Databricks
PostgreSQL
SQL Server
NOTE: Releases 741 and 742 were removed.
Graph View for subsetting
The Configuration tab of Subsetting view now includes a toggle to switch between Table View and Graph View.
Table View is the existing tabular list of tables.
Graph View is a diagram view that displays the tables and the relationships between them. Similar to Table View, when you click a table in Graph View, the table details panel displays for that table. You can configure subsetting from either view.
On Graph View, Tonic adds a marker when the subset configuration for a table changed since the last subsetting data generation. A table might be added to the subset, removed from the subset, or modified within the subset.
Tonic data encryption
The new Tonic data encryption feature, available for Professional and Enterprise licenses, allows you to set up a configuration to decrypt source data before applying a generator, encrypt transformed data before writing it to the destination database, or both.
Tonic data encryption uses AES encryption.
Tonic data encryption requires you to set environment variables for the decryption key (TONIC_DATA_DECRYPTION_KEY
) and encryption key (TONIC_DATA_ENCRYPTION_KEY
). Both keys must use the same key size - either 128, 192, or 256 bits.
Admin users configure Tonic data encryption from the Data Encryption tab of the Admin Panel.
When you enable Tonic data encryption, the generator configuration includes a setting to indicate whether to use it for that column.
Other updates
Fixed an issue where navigating to Database View from Schema Changes view for a table-specific issue did not apply the correct filters.
Fixed an issue where workspace import could inadvertently add multiple subset targets in the same table.
Added support for ssh-rsa for data connections.
Improved error logging for the Timestamp Shift generator.
Fixed the display for the import workspace dialog.
MongoDB
PostgreSQL
SQL Server
NOTE: These releases were removed.
Enhancements
In a Databricks workspace, you can now choose to write all of the output tables to one of the following formats: Avro, JSON, Parquet, Delta, CSV, ORC. This setting replaces the previous option to write all of the output tables to Databricks Delta.
When sharing a workspace, free trial users can now invite other users with the same corporate email domain to start their own free trial.
Other updates
Added messaging to the Tonic application about changes to the Tonic license plans.
Fixed an issue with the JSON Mask generator where when users deleted a sub-generator, a different sub-generator was deleted.
Fixed cases where data generation jobs remained in the queued state indefinitely.
Fixed a performance regression that affected workspace loading.
Oracle