Descriptor files¶
One YAML file may contain multiple entities separated by ---. Zatalog also
loads several explicit files with repeated -f, or every catalog under a tree
with --root DIR --recursive.
Annotations and labels¶
Annotations hold tool-specific values:
metadata:
annotations:
github.com/project-slug: example/payment-api
jira/project-key: "PAY, cloud/PLATFORM"
jira/component: Payment API
jira/label: payments
Labels are shorter key/value classifications. Both annotations and labels can be queried directly and inherited through System and Domain.
Substitutions¶
Substitutions are expanded before parsing and validation:
spec:
definition:
$text: ./openapi.yaml
configuration:
$json: ./component.json
policy:
$yaml: https://example.com/policy.yaml
$textembeds the referenced content as a string.$jsonparses and embeds JSON.$yamlparses and embeds exactly one YAML document.
Targets can be local paths relative to the descriptor or absolute HTTP(S)
URLs. An object containing an unknown dollar-prefixed key such as $ref, or a
placeholder alongside sibling keys, is left unchanged.
Catalogs from Git repositories¶
A Location entity can add catalog definitions maintained in another Git
repository:
apiVersion: backstage.io/v1alpha1
kind: Location
metadata:
name: company-systems
spec:
type: git
target: git@github.com:example/company-catalog.git
ref: main
paths:
- systems/catalog-info.yaml
- domains/*.yaml
ref defaults to HEAD, and the path defaults to catalog-info.yaml. A
singular path, a paths list, glob patterns, and directories are supported.
Repositories are cloned read-only under the user cache and refreshed when the
catalog loads. Normal Git credentials and SSH configuration apply.
Loaded entities join the same in-memory catalog as local entities, so a local
Component can inherit annotations from a System and Domain in the remote
repository. Location paths are confined to the checkout; absolute paths and
.. traversal are rejected.