Skip to main content

Catalog Categories Domain

The Catalog Categories domain provides a single endpoint for listing application categories. Categories are shared reference data -- they are not scoped to a single client.

A category represents a classification for catalog apps (e.g. Productivity, Browser, Communication). Categories are linked to catalog apps via the catalog_application_catalog_categories junction table -- a many-to-many relationship.

Categories are embedded inside CatalogApp responses as CatalogCategory. Use the list endpoint below when you need the full set of categories for filter dropdowns or admin UIs.

For embedding and endpoint design decisions, see the Design Guidelines.

Endpoints

EndpointMethodDescription
List Catalog CategoriesGETPaginated list of all categories. Use for filter dropdowns and admin views.

Why there is no Get Category endpoint

The CatalogCategory object is small and complete -- just id and name. The list endpoint already returns the full object for every category. A detail endpoint would return zero additional data, so it is omitted.

Data Transfer Objects (DTOs)

CatalogCategory

Full category representation returned by the list endpoint. This is the same shape as the CatalogCategory embedded inside CatalogApp -- there are no additional fields that only a category-primary endpoint would expose.

{
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"name": "Productivity"
}
FieldTypeNullableDescription
idstring (uuid)NoStable unique identifier for the category
namestringNoCategory display name

DB source: catalog_categories.id, catalog_categories.name

Omitted internal fields: created_by, updated_by, created_at, updated_at

Used in: List Catalog Categories