1.6 KiB
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 genericDynamicFormmodal. - If set (e.g.,
"/tools/mapper"): The dashboard will navigate (goto) to this route when the plugin card is clicked.
- If
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;
}