scm-harmonic-cmts-admin/PROJECT_STATE.md

1.9 KiB

📖 Harmonic CMTS Manager - Project State (Living Document)

⚠️ AI 助手請注意:本專案的核心架構與開發規範已移至 .clinerules。此檔案僅作為「專案進度存檔」與「待辦事項追蹤」使用。


已完成開發階段 (Completed Phases)

Phase 1: PostgreSQL 高可用性架構升級 (Completed)

  • 成功導入 asyncpg,建立 database.py 管理非同步資料庫連線池。
  • 建立 cmts_options, device_status, system_filters 資料表,嚴格遵守 config_type 雙軌隔離的主鍵設計。
  • 實踐完整的「Zero-Downtime Fallback 機制」:資料庫連線異常時,自動捕捉錯誤並退回使用 JSON 檔案讀寫,防止 FastAPI Crash。
  • 調整 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 預覽確認視窗。