Skip to main content
The DeployStack frontend provides a flexible component system for global settings that allows developers to create custom interfaces for specific setting groups. This system enables rich functionality like connection testing, custom validation, and specialized UI components while maintaining consistency with the overall design system.

Architecture Overview

The global settings system uses a component registry pattern that allows custom Vue components to be registered for specific setting groups. When a user navigates to a settings group, the system checks if a custom component is registered and uses it instead of the default form renderer.

Key Components

1. Component Registry (useSettingsComponentRegistry)

The registry manages the mapping between setting group IDs and their custom components.

2. Settings Form Composable (useSettingsForm)

Provides common form functionality for settings components.

3. Connection Test Composable (useConnectionTest)

Handles connection testing functionality for external services.

Creating Custom Setting Components

Step 1: Create the Component

Create a new Vue component in src/components/settings/:

Step 2: Register the Component

Add your component to the registration file:

Step 3: Component Props and Events

Your component must implement the required props and events:

Advanced Patterns

Custom Validation

Add custom validation logic to your components:

Custom Connection Testing

Implement service-specific connection testing:

Multi-Step Configuration

Create complex multi-step configuration flows:

Integration with Existing Systems

Design System

Follow the established UI Design System patterns. Use shadcn-vue components and maintain consistency with the overall design.

Internationalization

Add i18n support following the Internationalization Guide. Create dedicated translation files for your settings components.

Event Bus

Use the Global Event Bus for cross-component communication when settings are updated.

Testing Custom Components

Unit Testing

Integration Testing