Bricks Manifest File Format (bricks.json)
bricks.json is a metadata file used in Atomic Infrastructure™ orchestration.
Every blueprint must have a bricks.json file in its root directory that lists important information about the structure and behavior of that blueprint.
This page explains the structure of the blueprint manifest and the features they can include.
Examples
The following example manifests show the basic manifest structure and some commonly used features as a starting point for creating your own manifest:
{
"name": "lonely_yellow_beaver",
"description": "Generated using bricks tf-rescue",
"version": "1.0.0",
"state": "managed",
"props": {
"bucket_name": {
"description": "Fallback name for the bucket",
"type": "string"
}
},
"packages": [
{
"name": "aws_sqs_queue",
"version": "1.0.1",
"props": {}
},
{
"name": "aws_simple_s3",
"version": "0.1.1",
"props": {
"bucket_name": "Data.aws_sqs_queue.arn ?? Props.bucket_name"
}
}
]
}{
"name": "aws_simple_s3",
"description": "Simple Implementation of AWS S3 Bucket",
"version": "0.1.4"
"author": "[email protected]",
"outs": {
"s3_bucket_region": {
"type": "string",
"description": "AWS S3 Bucket Region"
},
"s3_bucket_arn": {
"type": "string",
"description": "AWS S3 Bucket ARN"
}
},
"props": {
"bucket_name": {
"type": "string",
"description": "AWS Bucket Name"
}
},
"native": {
"type": "terraform",
"path": "./src/terraform/"
}
}Blueprint Vs. Artifact
The native block refers to IaC files archived together with the bricks.json file. It indicates to the orchestrator that besides building relationships, there are files that have to be executed.
A common practice is to create a set of native blueprints and wrap them with a non-native blueprint to orchestrate them all.
On runtime, each native blueprint is planned and applied separately, maintaining a small blast radius and spending up the runtime.
Reference
name
Blueprint name. It can't contain spaces, special characters, and dashes.
description
Free text explanation of the blueprint.
version
Blueprint version. Must follow Go's module version numbering.
manifest_version
bricks.json schema version. Set to 1.
managed
Indicate whether Bluebricks manages the state of the blueprint.
author
Blueprint creator, generated automatically.
repository
An object that describes the codebase location. Used for development.
repository.type
Repository vendor, currently, constant as git.
repository.url
Codebase URL to be used as reference.
props
Blueprint external API definition. Defines what properties are open for manipulation.
props.{{name}}
Property name, must be mapped to a IaC variable.
props.{{name}}.type
Type of property. Supported types: string, number, all
props.{{name}}.value
Default value of property. Overwritten by user-input.
props.{{name}}.description
Free text explanation of the property.
packages
Nested blueprints.
packages.[].name
Blueprint name. Added automatically using bp add command.
packages.[].version
Blueprint version. Added automatically using bp add command.
packages.[].props
The blueprint properties. Defines the Semantic Trigger™ between sibling blueprints and default values to the nested blueprints.
packages.[].path
A URL pointed to the nested blueprint. Used by bp add-repo command.
native
IaC statement node. See Native Vs. Non-Native section.
native.type
Type of Infrastructure as Code, enum-based value - use bp create command.
native.path
Relative path to the IaC files.
Last updated
Was this helpful?

