docs ready

This commit is contained in:
2025-12-30 21:30:37 +03:00
parent 45c077b928
commit fce0941e98
12 changed files with 803 additions and 43 deletions

View File

@@ -0,0 +1,84 @@
# Implementation Plan: Backup Scheduler & Unified Task UI
**Branch**: `009-backup-scheduler` | **Date**: 2025-12-30 | **Spec**: [link](spec.md)
**Input**: Feature specification from `/specs/009-backup-scheduler/spec.md`
**Note**: This template is filled in by the `/speckit.plan` command. See `.specify/templates/commands/plan.md` for the execution workflow.
## Summary
Implement a robust backup scheduling system using `APScheduler` and a unified "Tasks" UI in SvelteKit to manage and monitor all background operations (backups, migrations).
## Technical Context
**Language/Version**: Python 3.9+, Node.js 18+
**Primary Dependencies**: FastAPI, APScheduler, SQLAlchemy, SvelteKit, Tailwind CSS
**Storage**: SQLite (`tasks.db`), JSON (`config.json`)
**Testing**: pytest
**Target Platform**: Linux server
**Project Type**: Web application
**Performance Goals**: UI latency < 200ms, Backup trigger < 1s
**Constraints**: Minimal resource footprint for background scheduler
**Scale/Scope**: ~10 environments, ~1000 historical tasks
## Constitution Check
*GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.*
- **Library-First**: N/A (Feature integration)
- **CLI Interface**: N/A (Web UI focus)
- **Test-First**: Mandatory for Scheduler logic and API endpoints. PASS.
- **Integration Testing**: Required for Scheduler -> TaskManager interaction. PASS.
**Result**: PASS
## Project Structure
### Documentation (this feature)
```text
specs/009-backup-scheduler/
├── plan.md # This file (/speckit.plan command output)
├── research.md # Phase 0 output (/speckit.plan command)
├── data-model.md # Phase 1 output (/speckit.plan command)
├── quickstart.md # Phase 1 output (/speckit.plan command)
├── contracts/ # Phase 1 output (/speckit.plan command)
└── tasks.md # Phase 2 output (/speckit.tasks command - NOT created by /speckit.plan)
```
### Source Code (repository root)
```text
backend/
├── src/
│ ├── api/
│ │ └── routes/
│ │ └── tasks.py # NEW: Task management endpoints
│ ├── core/
│ │ ├── scheduler.py # NEW: APScheduler integration
│ │ └── task_manager/ # EXISTING: Updates for DB persistence
│ ├── models/
│ │ └── task.py # NEW: SQLAlchemy model
│ └── services/
└── tests/
frontend/
├── src/
│ ├── components/
│ │ └── TaskList.svelte # NEW: Task display component
│ │ └── TaskLogViewer.svelte # NEW: Detailed log view
│ ├── routes/
│ │ └── tasks/ # NEW: Tasks page
│ │ └── +page.svelte
│ └── types/
```
**Structure Decision**: Standard FastAPI + SvelteKit structure.
## Complexity Tracking
> **Fill ONLY if Constitution Check has violations that must be justified**
| Violation | Why Needed | Simpler Alternative Rejected Because |
|-----------|------------|-------------------------------------|
| | | |