backstage-entity-validator
backstage-entity-validator copied to clipboard
Validate properties and well known annotations in your Backstage catalog-info.yaml files.
Backstage entity validator
This package can be used as a GitHub action or a standalone node.js module
GitHub action
Inputs
path
Optional Path to the catalog-info.yaml file to validate. Defaults to catalog-info.yaml at the root of the repository. It also can be a glob like services/*/catalog-info.yaml or a list of files separated by comma users.yaml,orgs/company.yaml.
verbose
Optional Specify whether the output should be verbose. Default true.
validationSchemaFileLocation
Optional Specify the location of the validation schema file.
Outputs
None. Prints out the validated YAML on success. Prints out errors on invalid YAML
Example usage
- uses: RoadieHQ/[email protected]
with:
path: 'catalog-info-1.yaml'
- uses: RoadieHQ/[email protected]
with:
path: 'catalog-info-1.yaml,catalog-info-2.yaml,catalog-info-3.yaml'
- uses: RoadieHQ/[email protected]
with:
path: 'catalog-info-*.yaml,services/**/*/catalog-info.yaml'
- uses: RoadieHQ/[email protected]
with:
path: 'catalog-info-*.yaml,services/**/*/catalog-info.yaml'
validationSchemaFileLocation: 'custom-validation-schema.json'
CircleCI Orb
Inputs
path
Optional Path to the catalog-info.yaml file to validate. Defaults to catalog-info.yaml at the root of the repository.
Outputs
None. Prints out the validated YAML on success. Prints out errors on invalid YAML
Example config
description: >
Sample catalog-info.yaml validation
usage:
version: 2.1
orbs:
entity-validator: "roadiehq/[email protected]"
workflows:
use-entity-validator:
jobs:
- entity-validator/validate:
path: catalog-info.yaml
Using the CLI
Usage
Usage: validate-entity [OPTION] [FILE]
Validates Backstage entity definition files. Files may be specified as
arguments or via STDIN, one per line.
OPTION:
-h display help
-q minimal output while validating entities
-i validate files provided over standard input
-l location of custom validation schema file
Examples:
# in a shell
# validate all entities contained in the "catalog" and subfolders
validate-entity catalog/**/*.yaml
# list of files produced by a script to validate
find-relevant-yaml-files.sh | validate-entity -i
Installing and running
As a global tool
# install
npm install --global @roadiehq/backstage-entity-validator
# run
validate-entity file1.yaml file2.yaml
In an existing node project
# install
npm install --save-dev @roadiehq/backstage-entity-validator
# run
npx validate-entity file1.yaml file2.yaml
When working on this tool
# install
npm install
# run
npm run validate file1.yaml file2.yaml
# or
bin/bev file1.yaml file2.yaml