HSM Catalog is either an s3 bucket or github repository location which is used by HSM service to present list of available services that can be used/provisioned via HSM. Each HSM service deployment can be configured, to talk to a particular HSM catalog location.
Git repository for catalog-templates holds service definitions for all the services shipped via HSM under default catalog. catalog-templates repository is source of truth for all the services shipped via HSM, except for the Stackato core services.
For Stackato core services specifically HCF, HCE and Helion-Console catalog-templates repository has the service definition, but only the service level config file, icon, readme and version level config files are used from this repository. The SDLs for these services are provided by service teams, by copying them in the partern-services s3 bucket
Other services shipped via HSM catalog like all the dev grade services (dev-mysql, dev-mongo, dev-redis, dev-rabbit), RDS and Haven on Demand SDLs are also copied at the same location in service specific folders. SDLs for these services are copied to this s3 location by Sidecar nightly pipeline, after it builds all the Sidecar extension images. These SDLs are available in catalog-templates repository, the update scripts modifies the SDLs in the repository with appropriate SDL version (based on build number) and image tags (also based on build number) and then they are copied at this s3 locations.
The service definitions should follow the strict directory structure and the files should be placed in the correct locations for HSM to be able to read and interpret the service details correctly.
service-name/ # this should be exactly identical to the name in the SDL
├── config.json # top level service config stores description, categories, labels etc
├── README.md
└── icon.png
├── <Product Version> # Product Version directory, any string is supported here
│ └── <SDL Version> # SDL Version directory, this needs be a valid semver format
│ ├── config.json # defines upgrade configuration for the SDL version
│ └── sdl
│ └── sdl.json # service sdl which defines the service deployment details.