curl -sS "https://demo.backstage.io/api/catalog/entities/by-query" \
--request GET \
--get \
--data filter=kind=component \
--data limit=10 \
| jq --raw-output '
.items[]
|[
(.kind + ":" + .metadata.namespace + "/" + .metadata.name|ascii_downcase),
.apiVersion,
.spec.type,
.spec.lifecycle,
(.relations|map(select(.type == "ownedBy"))|first|.targetRef)
]
|@csv'
"component:default/wayback-archive-storage","backstage.io/v1alpha1","service","production","group:default/team-a"
"component:default/artist-lookup","backstage.io/v1alpha1","service","experimental","group:default/team-a"
"component:default/backstage","backstage.io/v1alpha1","library","experimental","group:default/cncf"
"component:default/wayback-archive","backstage.io/v1alpha1","service","production","group:default/team-a"
"component:default/shuffle-api","backstage.io/v1alpha1","service","production","user:default/guest"
"component:default/wayback-search","backstage.io/v1alpha1","service","production","group:default/team-a"
"component:default/playback-order","backstage.io/v1alpha1","service","production","user:default/guest"
"component:default/podcast-api","backstage.io/v1alpha1","service","experimental","group:default/team-b"
"component:default/petstore","backstage.io/v1alpha1","service","experimental","group:default/team-c"
"component:default/queue-proxy","backstage.io/v1alpha1","website","production","group:default/team-b"