Blueprint Structure and Examples
Blueprint structure
A blueprint must follow a specific directory structure:
repository/
|-- <BlueprintRootDirectory>/
|---- (blueprint content) ...
|-- (other content) ...
|-- params.json
-
Blueprint Root Directory.
This is the root-level directory containing the actual template. When a blueprint is instantiated, only the contents of this directory (and its children) will be included in the target repository.
-
Other Content. Any files or directories outside
<BlueprintRootDirectory>
will be ignored and not processed as part of the template. -
params.json.
A JSON file that defines the parameters used for templating. It follows this structure:
[ { "name": "parameterName", "description": "Parameter description", "defaultValue": "Parameter default value" } ]
Every parameter in the blueprint must follow the naming convention:
${parameterName}
.Restrictions: parameter names cannot contain special characters such as [
, . - _
….]
Example
Let’s consider the following params.json
file:
[
{
"name": "dirName"
},
{
"name": "fileName"
},
{
"name": "fileContent"
}
]
Given the following blueprint structure:
repository/
|-- blueprintDirectory/
|---- ${dirName}/
|------ ${fileName}.json
Where the content of ${fileName}.json
is:
{
"content": "${fileContent}"
}
If the values given to the parameter are:
- dirName = renamedDirectory
- fileName = renamedFile
- fileContent = test
then the compiled blueprint will be:
<your_target_repository>/
|-- renamedDirectory/
|---- renamedFile.json
With renamedFile.json
containing:
{
"content": "test"
}
For more information refer to the ODM Platform website .
Blindata custom parameters
When using Blindata, the params.json
file should contain at least the following parameters:
[
{
"name": "BD_domain",
"description": "The domain within which the data product exists.",
"defaultValue": ""
},
{
"name": "BD_displayName",
"description": "The name of the data product in human readable format.",
"defaultValue": ""
},
{
"name": "BD_name",
"description": "The name of the data product.",
"defaultValue": ""
},
{
"name": "BD_fullyQualifiedName",
"description": "Fully Qualified Name (FQN) that uniquely identifies the data product.",
"defaultValue": ""
},
{
"name": "BD_description",
"description": "A brief description of the data product.",
"defaultValue": ""
},
{
"name": "BD_version",
"description": "The version number of the data product.",
"defaultValue": "1.0.0"
}
]
This allows to integrate the parameters with the Blindata forms, when instantiating e new Data Product from a Blueprint.