Software Catalog Flashcards
What is the software catalog?
centralized system that keeps track of ownership and metadata for all the software in your ecosystem (services, websites, libraries, data pipelines, etc)
What are Software Catalog use cases?
1) Helping teams manage and maintain the software they own.
2) Makes all software and their owners discoverable.
What is the path of the software catalog?
/catalog
What are 3 ways to add components to the catalog?
1) Manually register components
2) Creating components through Backstage templates
3) Integrating with an external source
How to manually register components
1) Go to /create and
2) Click the REGISTER EXISTING COMPONENT button
What data do you provide to register a component?
Yaml file stored in source control
What is the change process for components?
normal source code process through git
When you provide a git url to create a component, a copy of the content is made and stored in the database. true or false?
true, entities are ingested from various authoritative sources and held in a database, subject to automated processing
Starring of components
feature that allows easy and quick access to components you visit frequently
What concept allows you to integrate tooling?
plugins
Benefit of integrating tooling through plugins
1) organize the infrastructure tools
2) avoid cognitive overhead each time teams switch context between different infrastructure UI
What are the main extension points where developers can customize the catalog?
Entity providers
Policies,
Processors
Process for customizing the catalog
Ingestion,
Processing,
Stitching
Explain the Ingestion process
entity providers fetch raw entity data from external sources and seed it into the database
Explain the processing process
policies and processors treat the ingested data into raw entities (that are also subject to processing), errors, or relations to other entities
What is stitching?
all of the data emitted by various processors are assembled together into the final output entity
What are providers supplied by default with Backstage?
1) app-config provider: the one that deals with user registered locations (e.g. URLs to YAML files), and
2) location database provider: that deals with static locations in the app-config.
Can the processing delete or unregister entities?
No. it can only call new entities into existence or update entities that it has previously called into existence
Can stitching be augmented?
No, stitching is a fixed process, that cannot be modified or extended. Any modifications you want to make on the final result, has to happen during ingestion or processing.
What data are merged by the Stitching process?
1) Processed entity
2) Errors emitted by the processing step
3) Relations emitted by the processing step
4) Relations emitted by other processing steps that point at the current entity
What is the entity graph?
A graph formed by omitted entities with edges going from processed parent entities, to child entities emitted while processing the parent.
What is an orphan entity?
A child that has no other edges pointing at it
What happens if an orphan entity is found?
1) The stitching process injects a backstage.io/orphan: ‘true’ annotation on the child entity.
2) If orphanStrategy: delete configuration is set then entity is deleted
3) Can be “reclaimed” by the original parent or new parent .
4) Catalog page in Backstage for detects the new annotation and informs users about the orphan.
Why does orphaning exists instead of having an eager deletion process?
Safety. Entities that often were added by direct user action should also be deleted only by direct user action.