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.