Manifest Tools¶
validate¶
Validate Shoehorn or Backstage manifest files. Format is auto-detected.
shoehorn validate catalog-info.yaml
shoehorn validate .shoehorn/service.yml --format json
cat catalog-info.yaml | shoehorn validate -
Flags
| Flag | Default | Description |
|---|---|---|
--format |
text |
Output format: text or json |
The command calls the Shoehorn validation API, so you must be authenticated (shoehorn auth login). Use --profile to validate against a specific environment. Input (file or stdin) is capped at 10 MB. Returns a non-zero exit code on validation failure.
validate mold¶
Validate a Forge mold YAML definition offline — no server is contacted. Useful in pre-commit hooks and pull-request CI, including from forks where API tokens aren't available.
shoehorn validate mold .shoehorn/molds/create-repo.yaml
shoehorn validate mold my-mold.yaml --format json
shoehorn validate mold my-mold.yaml --strict
cat my-mold.yaml | shoehorn validate mold -
Flags
| Flag | Default | Description |
|---|---|---|
--format |
text |
Output format: text or json |
--strict |
false |
Fail if any warnings are reported |
Checks (errors):
- YAML parses cleanly
- Required top-level fields:
version,metadata.name - At least one of
stepsoractionsis defined - Each step has
idandname, and exactly one ofactionoradapter - No duplicate step IDs across
stepsandrollback.steps - Action IDs are at least two dot-separated parts (e.g.
github.repo.create) and the provider is one ofgithub,deployment,system,catalog,repo - Adapter names are one of:
http,postgres,slack,github,docker,kubernetes,terraform,webhook,email,s3,gcs,file,git,catalog,log - Approval flow:
auto_approve_after≥ 3600s (1 hour), max 10 approval steps, each step has a name and 1–50 approvers
Checks (warnings — only fail with --strict):
- Missing recommended
metadata.displayName,metadata.description, ormetadata.category - Action IDs with a valid provider that aren't on the known built-in actions list (treated as custom actions)
See the full validator reference in docs.shoehorn.dev → CLI → Validator.
convert¶
Convert between Backstage and Shoehorn formats. Supports files, directories, and stdin.
# Backstage to Shoehorn
shoehorn convert catalog-info.yaml
# From stdin (pipe)
cat catalog-info.yaml | shoehorn convert - --to shoehorn
# Shoehorn to Backstage
shoehorn convert .shoehorn/my-service.yml --to backstage
# Backstage Template to Shoehorn Mold
shoehorn convert template.yaml --to mold -o mold.json
# Recursive directory conversion
shoehorn convert ./manifests -r
# Validate during conversion
shoehorn convert catalog-info.yaml --validate