Skip to main content
DeployStack’s frontend features a powerful plugin architecture that enables extending the application with additional functionality, UI components, routes, and state management. This modular approach allows for clean separation of concerns and extensible development.

Architecture Overview

The plugin system is designed with flexibility and maintainability in mind:
  • Modular Extension: Add new UI components at designated extension points
  • Route Registration: Register new routes in the Vue Router
  • State Management: Add new Pinia stores for plugin-specific state
  • Lifecycle Management: Initialize and cleanup plugins properly
  • Type Safety: Full TypeScript support for plugin development

Plugin Structure

A standard plugin follows this directory structure:

Plugin Interface

Every plugin must implement the Plugin interface:

Creating Your First Plugin

1. Basic Plugin Structure

Create a new directory for your plugin:

2. Create a Component

Start with a simple Vue component:

3. Implement the Plugin

Create the main plugin file:

4. Create a Dedicated Page

Create a full page view for your plugin:

5. Add Plugin State Management

Create a Pinia store for your plugin:

Extension Points

Extension points are designated areas in your application where plugins can inject components.

Using Extension Points in Your App

Add extension points to your main application components:

Registering Components at Extension Points

In your plugin’s initialize method:

Conditional Rendering

Show specific plugin components based on conditions:

Registering Plugins

Add your plugin to the plugin loader:

Plugin Development Best Practices

1. Plugin Naming and Structure

2. Component Naming Convention

3. Error Handling

4. Resource Cleanup

5. Type Safety

Plugin Composables

Create reusable composition functions:

Testing Plugins

Unit Testing Plugin Components

Integration Testing

Troubleshooting

Common Issues

Plugin Not Loading

Extension Points Not Rendering

  1. Check Extension Point Placement: Ensure <ExtensionPoint pointId="your-point-id" /> is placed in your application views
  2. Verify Point ID: Make sure the extension point ID matches between registration and usage
  3. Component Import: Check that components are correctly imported and registered
  4. Console Errors: Look for JavaScript errors that might prevent component rendering

Plugin State Issues

Performance Debugging

This plugin system documentation provides everything needed to create maintainable and well-tested plugins for the DeployStack frontend. The modular architecture ensures that functionality can be extended cleanly while maintaining the core application’s stability and performance.