29 lines
1.9 KiB
Markdown
29 lines
1.9 KiB
Markdown
|
|
# 📖 Harmonic CMTS Manager - Project State (Living Document)
|
||
|
|
|
||
|
|
> ⚠️ **AI 助手請注意**:本專案的核心架構與開發規範已移至 `.clinerules`。此檔案僅作為「專案進度存檔」與「待辦事項追蹤」使用。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ 已完成開發階段 (Completed Phases)
|
||
|
|
|
||
|
|
### Phase 1: PostgreSQL 高可用性架構升級 (Completed)
|
||
|
|
- [x] 成功導入 `asyncpg`,建立 `database.py` 管理非同步資料庫連線池。
|
||
|
|
- [x] 建立 `cmts_options`, `device_status`, `system_filters` 資料表,嚴格遵守 `config_type` 雙軌隔離的主鍵設計。
|
||
|
|
- [x] 實踐完整的「**Zero-Downtime Fallback 機制**」:資料庫連線異常時,自動捕捉錯誤並退回使用 JSON 檔案讀寫,防止 FastAPI Crash。
|
||
|
|
- [x] 調整 `init_db.py` 為非同步啟動腳本。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚧 目前開發階段 (Current Phase)
|
||
|
|
|
||
|
|
### Phase 2: 設備配置備份與快照機制 (Configuration Backup & Snapshots)
|
||
|
|
- [ ] **資料庫擴充**:在 PostgreSQL 中建立 `config_backups` 資料表 (核心欄位需包含 `id`, `host`, `timestamp`, `raw_cli`, `parsed_tree`, `snapshot_name`)。
|
||
|
|
- [ ] **後端 API 實作**:新增「手動建立快照 (Manual Snapshot)」與「取得歷史快照列表」的 RESTful API 路由。
|
||
|
|
- [ ] **自動備份攔截**:在執行任何 `generate_cli` (寫入設備變更) 之前,實作自動觸發背景備份 `running config` 的防呆機制。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🐛 已知問題與未來計畫 (Known Issues & Backlog)
|
||
|
|
- **[未來計畫] Phase 3: 歷史預覽 (History Preview)**:前端 UI 支援點擊歷史快照,將 `parsed_tree` 載入 `tree-ui.js` 並強制標示為「唯讀模式 (Read-only)」。
|
||
|
|
- **[未來計畫] Phase 4: 智慧還原 (Smart Recovery)**:實作 Diff-based Rollback 演算法。比對歷史備份與當前樹狀結構,自動產生反向 CLI 指令 (`no [指令]`),並在推送到設備前提供 Dry-Run 預覽確認視窗。
|