Закончили редизайн, обновили интерфейс бэкапа
This commit is contained in:
47
specs/015-frontend-nav-redesign/data-model.md
Normal file
47
specs/015-frontend-nav-redesign/data-model.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Data Model: Frontend Navigation Redesign
|
||||
|
||||
## Plugin Configuration
|
||||
|
||||
The `PluginConfig` model is extended to support backend-driven navigation.
|
||||
|
||||
```python
|
||||
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
|
||||
|
||||
```typescript
|
||||
// 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;
|
||||
}
|
||||
Reference in New Issue
Block a user