Catalog Overview
Catalog Architecture
The StackFlow Service Catalog is the self-service interface through which users request IT services. The catalog architecture separates the service definition layer (catalog items with variables and workflows) from the fulfillment layer (assignment groups, approval chains, and tasks). This separation allows catalog items to be updated without impacting in-flight requests.
- DynamoDB:
StackFlow_CatalogCategoryandStackFlow_CatalogItemtables provisioned - S3:
stackflow-catalog-assets-373544523367bucket for catalog item icons and attachments - IAM:
StackFlowAPIRolewiths3:GetObject,s3:PutObjecton the catalog assets bucket
Catalog items are stored in Aurora PostgreSQL with versioning support — changes to a catalog item create a new version while existing open RITMs continue to use the original version definition. The catalog is rendered as a searchable, filterable grid in the self-service portal.
Catalog Categories
| Category | Examples | Typical Fulfillment Time |
|---|---|---|
| Hardware | Laptop, Monitor, Keyboard, Headset | 5-10 business days |
| Software | License, IDE, VPN client | 1-2 business days |
| Access | System access, VPN, Badge access | 1 business day |
| Cloud Resources | EC2 instance, S3 bucket, RDS database | 1 hour (automated) |
| Account Management | New employee setup, password reset | 4 hours |
| Facilities | Desk booking, parking, facilities request | 2 business days |
Catalog Item Types
StackFlow supports three catalog item types. Standard Items follow a simple form-submit-fulfill pattern. Multi-stage Items require sequential approvals and tasks from multiple teams. Automated Items trigger a Lambda function or workflow directly, with no human fulfillment required — these are used for cloud resource provisioning, access grants, and similar automated tasks.
Catalog Variables
Catalog item variables are the form fields presented to the user when submitting a request. StackFlow supports text, multi-line text, dropdown, multi-select, date picker, user picker, CI reference, and file upload variable types. Variables can be made mandatory, conditionally visible (based on other variable values), and validated with regex patterns.
{
"catalog_item": {
"name": "New Laptop Request",
"category": "hardware",
"variables": [
{"name": "preferred_model", "type": "dropdown", "required": true,
"options": ["MacBook Pro 14 M4", "Dell XPS 15", "ThinkPad X1 Carbon"]},
{"name": "business_justification", "type": "textarea", "required": true, "min_length": 50},
{"name": "current_laptop_age", "type": "number", "required": false, "unit": "years"},
{"name": "manager_approval", "type": "user_picker", "required": true, "role_filter": "manager"}
]
}
}
Integration with ITSM
When a catalog item is fulfilled, it can optionally create linked records in ITSM. For example, a "New Laptop" fulfillment automatically creates a Change record for the asset tag assignment and a CMDB CI entry. Bidirectional linking ensures the full audit trail is maintained across catalog and ITSM modules.