Blueprints
Blueprints are the core of Bluebricks, allowing you to define and manage your infrastructure templates. Blueprints compose one or more artifacts (or other blueprints) and define how they work together.
Complete Example: bricks.yaml
bricks.yamlBelow is a copy-paste-ready example of a blueprint that demonstrates data references, secret references, and hardcoded/user-provided props:
name: my_app_stack # (Required) Unique blueprint name
version: 1.0.0 # (Required) Semantic version (MAJOR.MINOR.PATCH)
description: Deploys a VPC, database, and app server with secure secret handling # (Optional)
tag: [app, vpc, database, server] # (Optional)
inputs:
region:
type: string
allowed_values:
- us-east-1
- us-west-2
packages:
- name: vpc # Reference to an artifact or blueprint
version: 1.0.0
props:
region: inputs.region # Reference to an global input
cidr_block: 10.0.0.0/16 # Hardcoded value
- name: database
version: 1.0.0
props:
region: inputs.region #Reference to an global input
db_user: admin # Hardcoded value
db_password: secrets.db_password # Secret reference
vpc_id: data.vpc.vpc_id # Data reference to an output of another package
- name: app_server
version: 1.0.0
props:
db_host: data.databse.endpoint # Data reference to an output of another package
db_user: admin # Hardcoded value
db_password: secrets.db_password # Secret reference
outputs:
app_server_ip:
description: Public IP address of the app server
value: data.app_server.public_ip # Data reference to an output of a packageValidation Rules
Blueprint (
name): Must start with a letter or underscore, and contain only letters, numbers, and underscores.inputs and output names: Must start with a letter or underscore, and contain only letters, numbers, and underscores.
No spaces or special characters are allowed in names.
Version: Must follow semantic versioning (
MAJOR.MINOR.PATCH), e.g.,1.0.0.
Key Fields
name: Blueprint identifierversion: Semantic version (required)description: Human-readable descriptionpackages: List of referenced artifacts/blueprintsinputs: Input parameters for the blueprintoutputs: Output values exposed by the blueprint
Properties options
Properties defined the input variables that the blueprint will use and how they will be used, including restrictions or origin of variable (from another package).
inputs fields:
Property name: defines the name of the property as it will be used throughout the code and/or during deployment.
type: The data type of the propertydescription: Human-readable descriptiondefault: Default value if exist for the property, this value will be used if not supplied during deploymentallowed_values: List of values that are allowed to be used. During install, the supplied variable will be verified against this list. The app will list only these options on the deployment page.
inputs structure:
Bluebricks app allowed values example:

Last updated
Was this helpful?

