Apps Catalogue (Stack Components Directory)
Overview
The Apps Catalogue (also known as Stack Components Directory) is a browsable directory of pre-configured data tools and applications available for one-click installation in the Shakudo platform. This feature provides administrators with a visual catalogue of stack components (like databases, analytics tools, workflow orchestrators, etc.) that can be automatically deployed to the platform with minimal configuration. Each component is presented as a card with its logo, category, installation status, and an install action button.
Access & Location
- Route:
?panel=apps-catalogue
- Navigation: Admin → Stack Components Catalogue
- Access Requirements:
dashboard-admin
role - Feature Flags:
selfInstalledAppsEnabled
must be enabled
Key Capabilities
Browse Available Stack Components
Users can explore a visual catalogue of pre-configured data science and analytics tools, each represented by a card showing the tool's name, logo, category, and current installation status. The catalogue includes components ranging from databases to workflow orchestrators to visualization tools.
One-Click Installation
For components marked as "CATALOGUED" (ready to install), administrators can install them with a single click. The system automatically creates a dedicated namespace (hyperplane-auto-{component-name}
), configures necessary metadata, and initiates the Helm chart deployment without requiring manual configuration.
Search and Filter by Category
The interface provides a search bar for finding specific stack components by name, and a category filter menu that allows filtering components by their functional category (e.g., databases, workflows, visualization, etc.). This makes it easy to discover relevant tools in large catalogues.
Monitor Installation Status
Each component card displays its current installation status (CATALOGUED, SCALING, ACTIVE, PAUSED, ARCHIVED, etc.), allowing administrators to track which components are installed, which are being deployed, and which are available for installation.
User Interface
Main View
The panel features a two-column layout:
Left Sidebar (Filter Panel):
- Search text field with search icon for filtering components by name
- Category filter menu listing all available categories with an "All" option
- Categories are dynamically populated based on available apps
Main Content Area:
- Title: "Stack Component Directory"
- Grid of app cards (responsive: 3 cards per row on desktop, 1 on mobile)
- Each card displays:
- Component logo/icon with background color
- Component name
- Category label
- Install/status button in bottom-right corner
- Loading indicator appears during data fetches
Dialogs & Modals
- Installation Confirmation Dialog
- Purpose: Confirm installation of a stack component before proceeding
- Title: "Install {App Name}"
- Prompt: "Are you sure you want to install '{App Name}'?"
- Actions: Cancel or Install
- Automatically displays success notification with namespace information after installation
Installation States & Actions
Component Install States:
- CATALOGUED - Ready to install, shows "Install" button (blue, contained style)
- SCALING - Currently installing, shows "Scaling" button (disabled, loading spinner)
- ACTIVE - Installed and running, shows "Pause" button (outlined style)
- PAUSED - Installed but scaled down, shows "Activate" button (blue, contained style)
- PAUSING - Currently scaling down, shows "Pausing" button (disabled, loading spinner)
- ARCHIVED - Not auto-installable, requires manual configuration (disabled)
- UNKNOWN - Status cannot be determined (disabled)
- UNAVAILABLE - Deprecated status, component not available (disabled)
Special Cases:
- Components in category "Shakudo Core" cannot be installed or uninstalled through this interface
- Install buttons are disabled during state transitions (SCALING, PAUSING)
- Hover tooltips provide detailed status explanations and namespace information
Technical Details
GraphQL Operations
Queries:
getCatalogue
- Retrieves the list of all available stack components from the catalogue with their current installation status, category, description, Helm chart info, license details, and image metadata. Supports filtering by name and category. Uses polling interval of 5000ms for real-time status updates.
Mutations:
installOnePlatformApp
- Creates and installs a new platform app from the catalogue. TakesPlatformAppCreateInput
which includes name, namespace, component label, category, tooltip description, image details, and license information. Automatically generates namespace ashyperplane-auto-{app-name}
.
Subscriptions: None
Component Structure
- Main Component:
/root/gitrepos/monorepo/apps/hyperplane-dashboard/components/PlatformAppsCatalogue/PlatformAppsCataloguePanel.tsx
- Grid View:
/root/gitrepos/monorepo/apps/hyperplane-dashboard/components/PlatformAppsCatalogue/PlatformAppsCatalogueGrid.tsx
- App Cards:
/root/gitrepos/monorepo/apps/hyperplane-dashboard/components/PlatformAppsCatalogue/PlatformAppCatalogueCard.tsx
- Install Component:
/root/gitrepos/monorepo/apps/hyperplane-dashboard/components/PlatformAppsCatalogue/PlatformAppsCatalogueInstall.tsx
- Category Filter:
/root/gitrepos/monorepo/apps/hyperplane-dashboard/components/PlatformAppsCatalogue/PlatformCatalogueCategoryFilterMenu.tsx
- Utility Functions:
/root/gitrepos/monorepo/apps/hyperplane-dashboard/components/PlatformAppsCatalogue/getInstallStateDescription.ts
State Management
- Uses Jotai atom
PlatformAppPageAtom
for managing selected platform app state - Local component state for search query and selected category filter
- Apollo Client cache for GraphQL query data with 5-second polling interval
Common Workflows
Installing a New Stack Component
- Navigate to Admin → Stack Components Catalogue
- Browse available components or use search/filter to find desired tool
- Locate component card showing "Install" button (must be in CATALOGUED state)
- Click "Install" button on the component card
- Confirm installation in the dialog that appears
- System displays success notification showing the installation namespace
- Component status changes to "SCALING" with loading spinner
- Wait for installation to complete (status will change to "ACTIVE")
- Component becomes available in the main Stack Components panel for configuration and management
Finding Components by Category
- Open the Apps Catalogue panel
- Look at the category filter menu in the left sidebar
- Click on a category name (e.g., "Databases", "Workflows", "Visualization")
- The grid refreshes to show only components in that category
- Click "All" to remove category filter and see all components again
Searching for Specific Tools
- Open the Apps Catalogue panel
- Type component name in the search field at top-left
- Results filter in real-time as you type
- Combine with category filter for more refined searches
- Clear search field to see all results again
Related Features
- Stack Components - Manage installed stack components (view details, pause/activate, configure, uninstall)
- Platform Apps Management - Configure installed applications with Helm values and custom settings
- Namespace Management - View and manage Kubernetes namespaces where components are deployed
Notes & Tips
Installation Behavior:
- All catalogue installations automatically create namespaces with the pattern
hyperplane-auto-{component-name}
- Component labels are automatically set as
hyperplane.dev/app-name={component-name}
- Installation success messages include the target namespace for reference
- Components marked as "Shakudo Core" cannot be uninstalled as they are essential platform services
Status Monitoring:
- The catalogue polls for updates every 5 seconds to keep installation states current
- During installation (SCALING state), the install button shows a loading spinner and is disabled
- ACTIVE components can be paused/scaled down from the main Stack Components panel
- If a component shows UNKNOWN or UNAVAILABLE status, contact Shakudo support
Search & Filter Best Practices:
- Use search for specific tool names (e.g., "PostgreSQL", "Airflow")
- Use category filter to discover tools by function (e.g., all databases, all ML tools)
- Combine search and filter for precise results (e.g., search "flow" within "Workflows" category)
- Category list is dynamic and only shows categories present in the current catalogue
Permissions:
- Only users with
dashboard-admin
role can access the Apps Catalogue - The
selfInstalledAppsEnabled
feature flag must be enabled at the platform level - Installation permissions are checked at the component level (some may require additional permissions)
- Components in "Archived" state require manual intervention from Shakudo support to install
Component Lifecycle:
- CATALOGUED → SCALING (installation in progress) → ACTIVE (running)
- ACTIVE → PAUSING (scaling down) → PAUSED (scaled to zero)
- PAUSED → SCALING (scaling up) → ACTIVE (running again)
- Archived components cannot be installed through this interface (require manual configuration)