Structural architecture
Last updated
Last updated
The following diagram shows how data and requests flow within the Tonic Structural application:
The Structural application database is a PostgreSQL database that stores the workspace and Structural configuration.
The configuration includes:
Which users have administrative access to the Structural instance.
Configuration of the workspaces in the Structural instance. Each workspace includes:
Data connections
Users and roles
Generation configuration (table modes, generators, subsetting)
Post-job actions
Job tracking
For a file connector workspace that uses files uploaded from a local file system, the Structural application database stores the encrypted source files. It also stores the generated destination files.
Each workspace is connected to a source database and a destination location. Depending on the workspace, the destination location might be a database, a Tonic Ephemeral data snapshot, a container repository, or a file system.
Source databases and destination locations are external to Structural, but Structural must be able to read from the source database and write to the destination location. For a file connector workspace that uses local files, the destination location is the Structural application database.
The source database contains the original data. We recommend that you use a static copy of your production database that was restored from a backup.
The destination location contains the results of the Structural data generation.
Each of the components below can have one or more containers.
Runs the Structural user interface. It also runs scans to ascertain the structure of the source data, including the scans to detect schema changes.
The web server displays preview data from the source database, and pulls the configuration from the application database.
The web server also receives and processes requests and calls from the Structural API.
The web server also handles the migration of the Structural database when a new Structural version makes changes to it.
Sends email notifications to notify users about comments on source database columns. The commenting feature requires an enterprise tier license.
The notification component also processes Structural webhooks. Webhooks perform specific actions when a data generation job completes, fails, or is canceled.
A Structural instance can have multiple workers. Additional workers allow you to process multiple jobs at the same time.
Structural workers run sensitivity scans. During a sensitivity scan, Structural looks for specific types of sensitive information in the source database. For details, go to Built-in sensitivity types that Structural detects.
The workers also run data generation. The data generation process pulls data from the source database and applies the configured generators and subsetting. The configuration is in the application database.
The workers write the resulting data to the destination location.
The SMTP server processes the notifications sent by the Structural notification component.
All communication between Structural components, between Structural components and the application database, and between the notification component and the SMTP server use TLS encryption.
TLS encryption also is used by default to encrypt communication between Structural and the source and destination.