ProficientNowTechRFCs

5. Software Catalog

RFC-DEVELOPER-PLATFORM-0001                                       Section 5
Category: Standards Track                               Software Catalog

5. Software Catalog

← Components | Index | Next: Software Templates →


5.1 Entity Model

5.1.1 Overview

The Software Catalog is the central registry of all software in the organization. It models software as entities with defined types, relationships, and ownership.

5.1.2 Core Entity Types

Entity TypeDescriptionExamples
ComponentA piece of softwareService, website, library, ML model
APIAn interface exposed by a componentREST API, gRPC, GraphQL, AsyncAPI
ResourceInfrastructure required by a componentDatabase, cache, queue, storage
SystemA collection of related componentsE-commerce system, payment system
DomainA business domain groupingPayments, Shipping, Customer
GroupA team or organizational unitBackend team, SRE team
UserAn individual userSynced from Keycloak

5.1.3 Entity Relationships

5.1.4 Entity Hierarchy

LevelEntityPurpose
BusinessDomainBusiness capability grouping
SystemSystemTechnical system boundary
ComponentComponent, API, ResourceIndividual software units
OrganizationalGroup, UserOwnership and team structure

5.2 Entity Discovery

5.2.1 Discovery Sources

Entities are discovered from multiple sources:

SourceMechanismEntities Discovered
Git repositoriescatalog-info.yaml scanningComponents, APIs, Systems
KubernetesAPI server watchResources, deployments
CrossplaneResource statusInfrastructure entities
KeycloakOIDC claims syncUsers, Groups

5.2.2 Discovery Flow

5.2.3 Entity Registration

MethodUsage
Automatic discoveryGitHub/GitLab scanning
Manual registrationRegister via UI or API
Template creationTemplates register created entities

5.3 Ownership Model

5.3.1 Ownership Requirements

Per Invariant 7, all catalog entities MUST have defined ownership:

RequirementDescription
Mandatory ownerEvery entity MUST specify an owner
Valid referenceOwner MUST be a valid Group or User entity
Ownership transferOwnership changes tracked in entity history

5.3.2 Ownership Hierarchy

Entity TypeTypical Owner
DomainBusiness unit
SystemProduct team
ComponentEngineering team
APIProviding component's team
ResourceConsuming component's team

5.3.3 Ownership Permissions

Ownership grants specific permissions:

PermissionOwner Can
Edit metadataModify entity description, links, annotations
Edit documentationUpdate TechDocs content
Delete entityRemove entity from catalog
Transfer ownershipChange entity owner

5.4 Dependency Mapping

5.4.1 Dependency Types

RelationshipDescription
dependsOnComponent requires another component or resource
providesApiComponent exposes an API
consumesApiComponent uses an API
partOfEntity belongs to a system

5.4.2 Dependency Visualization

The catalog provides dependency visualization:

ViewDescription
Dependency graphVisual representation of dependencies
Impact analysisWhat depends on this component
API consumersWho uses this API

5.4.3 Dependency Discovery

Dependencies are discovered through:

SourceDependencies Found
Entity definitionsExplicit dependsOn declarations
API specificationsAPI consumer/provider relationships
Kubernetes labelsService-to-service relationships

5.5 Resource Entities

5.5.1 Resource Types

Resources represent infrastructure provisioned for components:

Resource TypeDescriptionExamples
DatabaseRelational or document databasePostgreSQL, MongoDB
CacheIn-memory data storeRedis, KeyDB
QueueMessage queueKafka topic, RabbitMQ queue
StorageObject or block storageS3 bucket, Ceph pool
SchemaData schema definitionAvro schema, JSON schema

5.5.2 Resource Lifecycle

Resources have lifecycle states reflected in the catalog:

StateDescription
ProvisioningResource being created
ReadyResource available for use
DegradedResource operational but impaired
FailedResource creation failed
DeletingResource being removed

5.5.3 Resource Metadata

MetadataPurpose
Environmentdev, staging, production
Size tierResource sizing classification
Connection infoHow to connect (via Vault)
Backup statusLast backup, schedule

5.6 Catalog Operations

The catalog provides full-text search across entities:

Search CapabilityDescription
Entity searchFind by name, description, type
Filter by typeNarrow to specific entity types
Filter by ownerFind entities owned by team
Filter by tagFind entities with specific tags

5.6.2 Entity Views

ViewContent
OverviewEntity metadata, owner, links
DependenciesDependency graph
DocumentationTechDocs rendering
APIAPI specification (OpenAPI, AsyncAPI)
CI/CDBuild and deployment status

5.6.3 Entity Lifecycle


Document Navigation


End of Section 5 — RFC-DEVELOPER-PLATFORM-0001