38 lines
1.3 KiB
Markdown
38 lines
1.3 KiB
Markdown
# Data Model: 012-remove-superset-tool
|
|
|
|
## Entities
|
|
|
|
### 1. Environment (Updated)
|
|
- **Source**: `backend/src/core/config_models.py`
|
|
- **Purpose**: Represents a Superset environment configuration, now incorporating all fields required for the `SupersetClient`.
|
|
- **Fields**:
|
|
- `id`: `str` (Unique identifier)
|
|
- `name`: `str` (Display name)
|
|
- `url`: `str` (Base URL for API)
|
|
- `username`: `str`
|
|
- `password`: `str`
|
|
- `verify_ssl`: `bool` (Default: `True`)
|
|
- `timeout`: `int` (Default: `30`)
|
|
- `is_default`: `bool` (Default: `False`)
|
|
- `backup_schedule`: `Schedule`
|
|
- **Validation Rules**:
|
|
- `url` must start with `http://` or `https://`.
|
|
- `timeout` must be positive.
|
|
|
|
### 2. API Contract (SupersetClient)
|
|
- **Source**: `backend/src/core/superset_client.py`
|
|
- **Purpose**: Self-contained client for Superset API interactions.
|
|
- **Key Methods**:
|
|
- `authenticate()`
|
|
- `get_dashboards(query)`
|
|
- `get_datasets(query)`
|
|
- `get_databases(query)`
|
|
- `export_dashboard(dashboard_id)`
|
|
- `import_dashboard(file_name, dash_id, dash_slug)`
|
|
- `delete_dashboard(dashboard_id)`
|
|
- `get_databases_summary()`
|
|
- `get_dashboards_summary()`
|
|
|
|
## State Transitions
|
|
- **Authentication**: Unauthenticated -> Authenticated (token stored in memory/client session).
|
|
- **Import/Export**: File System <-> Superset API. |