Blossom Docs
Blossom

Reference

blossom help:data

Explain structured data input

Usage

blossom help:data

Blossom data input

Resource commands use one structured input model:

blossom app:create --data app.yml
blossom app:create -d '{"app":{"name":"demo"}}'

--data accepts inline YAML/JSON, a local file path, or an HTTP(S) URL.

Local files and inline input support variable substitution:

$VAR
${VAR}

For example:

api_token: $HETZNER_API_TOKEN
api_token: ${HETZNER_API_TOKEN}

Use ${VAR} when the variable touches other letters, numbers, or underscores:

name: app${SUFFIX}

Bare $VAR is only expanded at a natural boundary, so values like app$SUFFIX or BCrypt hashes remain literal.

Escape a dollar sign as $$ when the value must keep a variable for the deployed runtime instead of reading the local CLI environment:

command: bundle exec rackup --port $$PORT

Blossom sends that command as bundle exec rackup --port $PORT.

Values load in this order:

1. .env in the current working directory
2. BLOSSOM_VARS_FILE, if set
3. the process environment

Later sources win. Exported environment variables override BLOSSOM_VARS_FILE and .env values.

HTTP(S) URL input is left literal so shared remote examples stay deterministic.

There is no –vars-file flag. Use BLOSSOM_VARS_FILE when a specific variables file is needed:

export BLOSSOM_VARS_FILE=/path/to/vars.env

Variable files use simple KEY=value lines. Blank lines and # comments are ignored. Blossom does not evaluate shell expressions, command substitution, defaults, conditionals, loops, includes, or templates.

On this page