Skip to content

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_EXISTS application error.
  • Reject updates or deletes for missing configuration IDs with a structured CATALOG.SERVICE_CONFIGURATION_NOT_FOUND application error.
  • Constrain the shared catalog contract to the currently supported AI_AGENTS service 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, and ListServiceConfigurationsHandler
  • Infrastructure: TypeORM persistence entities, repository implementation, and the service configuration mapper
  • Domain: ServiceConfiguration aggregate and the repository interface contract

Sub-Domains