Appearance
Catalog Module Overview
The Catalog module manages the service configuration records used by the API catalog surface. Each record stores the service identity plus the UI icon, configured price, and enabled state returned by the catalog endpoints.
Responsibilities
- Expose the catalog service configuration list under
/api/catalog/services. - Create a new service configuration when a service does not already have one.
- Update or delete an existing service configuration by configuration ID.
- Reject duplicate creates with a structured
CATALOG.SERVICE_CONFIGURATION_ALREADY_EXISTSapplication error. - Reject updates or deletes for missing configuration IDs with a structured
CATALOG.SERVICE_CONFIGURATION_NOT_FOUNDapplication error. - Constrain the shared catalog contract to the currently supported
AI_AGENTSservice type and the published icon enum set.
Architecture
The module follows the same layered CQRS structure used across apps/api:
- Presentation:
ServiceConfigurationController - Application:
CreateServiceConfigurationHandler,UpdateServiceConfigurationHandler,DeleteServiceConfigurationHandler, andListServiceConfigurationsHandler - Infrastructure: TypeORM persistence entities, repository implementation, and the service configuration mapper
- Domain:
ServiceConfigurationaggregate and the repository interface contract