Log in
The Finnish Personal Identity Code generator no longer rejects valid Finnish PICs that use the century indicators B–F and U–Y.
The Finnish Personal Identity Code generator no longer rejects codes that contain an individual number in the reserved test/temporary range (900–999). These are now accepted and masked within their own range. A test PIC always maps to another test PIC, and a real PIC always maps to another real PIC.
The Finnish Personal Identity Code generator no longer rejects source PICs that have a date of birth that falls outside the configured date range. The date range now only controls the dates of birth in the generated output. Source values that are outside of the range are accepted and mapped to a date within the range.
The Finnish Personal Identity Code generator is now available for all data connector types. Previously it was only available for PostgreSQL and MySQL workspaces.
For the Alphanumeric String Key generator, added a configuration option to preserve a specified number of characters at the end of the source value.
Spark and Databricks - For the Regex Mask generator, before a job runs, Structural now rejects patterns that mix named and unnamed capture groups, or that use .NET-only syntax such as (?'name'...) or (?#...). This is because the .NET and Spark/Java engines handle these patterns differently. Instead, use only named or only unnamed groups. The validation applies only to jobs that run on the Java/Spark engine, like Spark (Hive SDK) sources and Databricks on Spark 3.3 or later. This limitation does not affect other data connectors.
Azure Key Vault is now supported as a secrets manager.
MySQL - To configure how Structural batches records from a MySQL database, replaced the environment setting TONIC_MYSQL_MIN_ROWS_FOR_RANGE_READ with a new setting TONIC_MYSQL_KEYSET_BATCH_TARGET_MEGABYTES. Instead of basing the batches on a count of rows, the new setting creates batches based on the data volume in megabytes.
AI assistant starter suggestions now adapt to your context, showing workspace-specific prompts inside a workspace and general product questions elsewhere.
On the workspace settings page, when no workspace zones are configured, the Zone dropdown list is now hidden.
Fixed an issue where a workspace created as a copy kept the owner from the original workspace.
Snowflake - The Snowflake data connector now supports Tailscale tunneling.
You can now configure the file connector to import a JSON document that has a single top-level key whose value is an array (for example, { "identifier": [ ... ] }) as a single object, instead of splitting the array into a separate record per element. By default, this behavior is disabled, so that existing workspaces are unaffected. To enable this behavior, set the new workspace setting TONIC_DISABLE_JSON_ARRAY_WITH_KEY to true.
Structural Agent is now available on all application pages. Added chat management functionality to the Structural Agent (New Conversation, Delete Conversation, Rename Conversation). A Structural Agent conversation can be maintained across multiple workspaces or application pages (Note: the agent can only access tools for the workspace that is currently open).
MySQL - Structural now reads large source tables in sequential key-range batches over short-lived connections, to avoid failures from source-side query time limits. To enable this behavior and set the minimum batch size, use the environment setting TONIC_MYSQL_MIN_ROWS_FOR_RANGE_READ. The default is 0, which indicates that the behavior is disabled. You can override this setting within each workspace.
You can now use the Structural Agent to identify and resolve schema changes.
Removed the Protection Audit Trail and the undo-redo functionality, which are supplanted by the new Version History.
Fixed an issue where when a newly enabled schema cache was still being built, users would encounter errors when navigating in the Structural application.
Schema changes on truncated tables are now ignored and not listed for review.
Zones for workspace job routing - Self-hosted customers can optionally group their Structural workers into zones. The list of zones is configured on a new Zones tab on Structural Settings. In the worker, you use the environment setting TONIC_WORKER_ZONE_ID to assign the worker to a zone. The workspace settings include a new Zone option to select the zone to route the workspace jobs to. By default, a workspace is not assigned to a zone, and the workspace jobs are routed to a worker that is not assigned to a zone. Structural Cloud has its own set of zones for users to choose from for their workspaces, as well as a set of workers that are not tied to zones.
You can now use the Structural Agent to manage post-job scripts. You can prompt the agent to create, update, delete, enable, disable, or reorder post-job scripts. The Agent then generates the appropriate SQL based on the workspace data connector.
The post-job script editor now includes SQL validation. As you type, the editor validates your SQL and provides inline feedback, including the error message and the exact line and column where the problem was found. The validation feedback is informational only. Validation errors do not prevent you from saving a post-job script.
Adjustable Structural Agent display - You can now change how the Structural Agent displays within Structural. You can use the existing overlay display, display the Agent side-by-side with the Structural user interface, or display it as a full-width panel. For the overlay and side-by-side options, you can adjust the chat width. There are also hotkey options to adjust the Agent display.
Download option, change list for license keys - When you upload a new license key, Structural now displays a summary of the changes to the key, such as a change to the license plan or to the enabled features. You can now also download the current license key. Note that you cannot download license keys that were uploaded before this download option became available.
Removed the Protection Audit Trail and the undo-redo functionality, which are supplanted by the new Version History.
When you change the configuration of a generator preset, you can now apply the updated configuration to the preset occurrences that you have permission to edit. When you import a generator preset that updates an existing preset, you can also apply the updated configuration to the preset’s occurrences.
Structural Cloud organizations can now opt out of LLM usage.
Subsetting configuration from the Structural Agent - Users can now use the Structural Agent chat to manage subsetting configuration. For example, “Enable subsetting and add transactions as a target table set to use 5% of the records.”
SQL Server - Fixed an issue that for some tables caused row counts to be reported as 3x the actual count.
SQL Server - For databases that use change tracking and that have schema or table names that match reserved keywords, fixed an issue that resulted in degraded data generation performance.
Improved the error information that is provided in the Structural Agent chat.
New workspace Version History with filter and restore options
For each workspace, the new Version History displays the list of changes to:
Column sensitivity
Generator assignment
Generator configuration
Table mode assignment
Post-job scripts
Subsetting configuration
The Version History is intended to replace the Protection Audit Trail that was on Privacy Hub, as well as the undo and redo options. We will remove those items soon.
To display the Version History, in the workspace heading, click the clock icon.
The changes are grouped by calendar date and then by time slot. For each change, the list includes:
The type of change
The user who performed the change. If the Structural Agent performed the change, then it is listed as performed by the Agent on behalf of the user.
You can filter the list to show:
Changes that occurred within a specified timeframe
Specific types of changes
Changes that were made by specific users
You can restore the workspace to a specific version.
For data connectors that upload objects to Amazon S3 - including Amazon Redshift, Databricks, the file connector, and Snowflake - to ensure that tags are applied, the IAM user must have s3:PutObjectTagging on the destination S3 bucket. To prevent jobs from failing, when the permission is missing, Structural logs a warning and continues to upload without tags.
Salesforce - GlobalValueSet picklist constraints are now lifted and restored. Managed-package fields are skipped.
Salesforce - Fixed an issue where Tooling API queries might not have returned all records.
By default, self-hosted customers who have not either set up an LLM or opted out of LLM use are connected to Structural’s hosted LLM. This enables self-hosted customers to have immediate access to Structural’s AI-powered features. For existing customers who upgrade to this version, sharing of sample data with the LLM is disabled automatically.
Hosted LLM for self-hosted customers - Structural now provides a hosted LLM for that self-hosted customers can use instead of connecting to their own LLM.
For the Date Truncation and Timestamp Shift generators, you can now optionally configure a fallback generator, to accommodate datetime values that the generator cannot process. The available options are Fail on error (the default), Passthrough, Constant (where you provide the value to use), or Null.
MySQL - Tailscale tunneling is now supported for MySQL.
Fixed an issue where the IBAN generator would throw errors when the source value was not a fully valid IBAN. Validation has been relaxed for non-primary key fields or when consistency is not enabled, allowing a new IBAN to be generated when:
The bank code is preserved. The source value no longer needs to be a valid IBAN. However, the bank code is only preserved only if the source contains a valid country code and a bank code of the correct length.
The country code is preserved.
The country code is missing. When the source value's country code is unknown or missing, the generator now falls back to a randomly selected valid country code.
Added support to use the Structural agent to diagnose datasource connection test failures. For failed tests, an Ask AI prompt allows you to ask an LLM to troubleshoot the issue and suggest next steps.
Controlling AI access to sample data - Added an option to control whether AI features have access to sample data. When true, AI features can retrieve sample data from the workspace source database to improve functionality and output quality. When false, AI features only have access to database schema information. The default value is true.
For self-hosted instances, the option is on the Structural AI Settings page or as the environment setting TONIC_LLM_ENABLE_SAMPLE_DATA. On Structural Cloud, the option is on the Organization Settings page as TONIC_LLM_ENABLE_SAMPLE_DATA.
Oracle - Wrapped Oracle procedures cannot be copied to the destination database, because Oracle does not allow their source to be read. When Structural encounters a wrapped procedure during schema creation, it now logs it. Any wrapped procedures already present on the destination database are preserved instead of dropped.
Oracle: The Oracle connector is now migrated to the new connection test architecture.