Blueprints Overview
A Blueprint is a collection of Systems and Components put together by a customer in such a way as to fulfill their functional requirements. The collection is linked together by Connections to its various components via their input and output channels. Components have parameters that can be set to configure their behavior. To allow quick modification of shared configuration values, blueprints can define Settings that can be referenced in the configuration of multiple components.
Components
A Component is a piece of software that performs a specific task within a Blueprint. For example, DataShyft provides components for accessing databases and FTP servers, transforming data from one format to another, and routing data to various components in the blueprint. Each of these components has a specific set of configuration parameters that control how it operates.
Resources
Some of the Components in DataShyft allow access to outside systems (e.g., databases, FTP servers, etc.). These components are configured using Resources. The Resource specifies the information necessary to connect to the external system. When combined with a corresponding component, a blueprint can access the external system and retrieve or store information.
Systems
A System is a location where components can be run. Systems correspond with deployed DataShyft Customer Runtimes. By placing a component onto a system, you are informing DataShyft of where the component should be run. A blueprint must have at least one system in order for it to be deployed but can encompass as many systems as are necessary to accomplish the blueprints goals.
Connections
For a blueprint to perform useful work, the components need to be connected to one another to allow data and control signals to flow between them. Connections within a Blueprint specify the component and output channel the data will come from, and the component and input channel the data will be delivered to. Multiple connections can specify the same sources or destinations if data needs to flow to multiple components within a blueprint.
If a connection specifies a source and destination that are on different systems, DataShyft will automatically setup a secure data communication channel to handle the transfer of data between the systems.
Settings
A Blueprint can contain user-defined Blueprint Settings. Each setting is given a name and a value. The settings can then be referenced in the component configurations within the blueprint. This allows a blueprint to define a value in a single location, then reference it across multiple components, allowing their configuration to be updated all at once by simply changing the setting’s value.
To reference a blueprint setting, the setting’s name is specified in the parameter using the following notation: %{settingName}. When the blueprint is deployed, all the setting references are replaced with the corresponding value.
If a component’s configuration references a blueprint setting that doesn’t exist, attempts to deploy the blueprint will fail. In the blueprint editor UI, such components are flagged, allowing the user to quickly find and correct any errors.
DataShyft provides several built-in settings that allow a blueprint to reference information about the deployment they are running inside of. These settings can be referenced in blueprint configurations without having to manually define them. They are referenced using the same format as user-defined blueprint settings described above.
deployment.id |
The unique ID assigned to the deployment by DataShyft |
deployment.blueprintID |
The unique ID of the blueprint the deployment was created from. |
deployment.name |
The name assigned to the deployment by the deployer |
deployment.timestamp |
The date and time at which the deployment was launched in ISO-8601 format (i.e., 2023-02-03T14:52:10Z) |
deployment.deployer |
The email address of the user that launched the deployment. |
Note: If a blueprint explicitly defines settings with these names, the values will be overwritten by DataShyft at deployment time.