34 lines
1.5 KiB
Markdown
34 lines
1.5 KiB
Markdown
# Data Model: Backup Scheduler & Unified Task UI
|
|
|
|
## Entities
|
|
|
|
### Task
|
|
Represents a background operation (Backup, Migration) managed by the system.
|
|
|
|
| Field | Type | Description | Constraints |
|
|
|-------|------|-------------|-------------|
|
|
| `id` | UUID | Unique identifier | Primary Key |
|
|
| `type` | String | Type of task | Enum: "backup", "migration" |
|
|
| `status` | String | Current execution state | Enum: "pending", "running", "success", "failed" |
|
|
| `environment_id` | UUID | Target environment (if applicable) | Foreign Key (Environments), Nullable |
|
|
| `started_at` | DateTime | When the task began | Nullable |
|
|
| `finished_at` | DateTime | When the task completed | Nullable |
|
|
| `logs` | Text | Execution logs | |
|
|
| `error` | Text | Error message if failed | Nullable |
|
|
| `created_at` | DateTime | When task was queued | Default: Now |
|
|
|
|
### Schedule
|
|
Configuration for automatic task execution. Nested within Environment config.
|
|
|
|
| Field | Type | Description | Constraints |
|
|
|-------|------|-------------|-------------|
|
|
| `environment_id` | UUID | Target environment | Foreign Key (Environments) |
|
|
| `enabled` | Boolean | Is schedule active? | Default: false |
|
|
| `cron_expression` | String | Frequency definition | Valid Cron string (e.g., "0 0 * * *") |
|
|
| `last_run_at` | DateTime | Last execution time | Nullable |
|
|
| `next_run_at` | DateTime | Calculated next run | Nullable |
|
|
|
|
## Storage Strategy
|
|
|
|
- **Tasks**: Stored in `tasks.db` (SQLite) via SQLAlchemy.
|
|
- **Schedules**: Stored in `config.json` as part of the Environment model. |