Files
ss-tools/specs/015-frontend-nav-redesign/data-model.md

1.6 KiB

Data Model: Frontend Navigation Redesign

Plugin Configuration

The PluginConfig model is extended to support backend-driven navigation.

class PluginConfig(BaseModel):
    """Pydantic model for plugin configuration."""
    id: str = Field(..., description="Unique identifier for the plugin")
    name: str = Field(..., description="Human-readable name for the plugin")
    description: str = Field(..., description="Brief description of what the plugin does")
    version: str = Field(..., description="Version of the plugin")
    ui_route: Optional[str] = Field(None, description="Frontend route for the plugin UI")
    input_schema: Dict[str, Any] = Field(..., description="JSON schema for input parameters", alias="schema")

ui_route

  • Type: Optional[str]
  • Description: Specifies the client-side route (URL path) where the plugin's custom UI is hosted.
  • Behavior:
    • If None (default): The dashboard will open the plugin using the generic DynamicForm modal.
    • If set (e.g., "/tools/mapper"): The dashboard will navigate (goto) to this route when the plugin card is clicked.

Backup Management (New)

Backup Types

// frontend/src/types/backup.ts

export interface BackupFile {
    name: string;        // e.g., "prod-dashboard-export-2024.zip"
    path: string;        // Relative path in storage
    size: number;        // Bytes
    created_at: string;  // ISO Date
    category: 'backups'; // Fixed category
    mime_type?: string;
}

export interface BackupState {
    isLoading: boolean;
    files: BackupFile[];
    error: string | null;
    selectedBackup: BackupFile | null;
}