scm-harmonic-cmts-admin/PROJECT_STATE.md

3.2 KiB
Raw Blame History

📖 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 檔案讀寫。
  • 調整 init_db.py 為非同步啟動腳本。

Phase 2: 設備配置備份與快照機制 (Completed)

  • 資料庫擴充:在 PostgreSQL 中建立 config_backups 資料表 (包含 id, host, timestamp, raw_cli, parsed_tree, snapshot_name, description)。
  • 前端 UI 實作:完成「設備備份與還原」頁籤,包含建立快照表單與歷史紀錄列表 (馬卡龍色系與 Flexbox 佈局)。
  • 後端 API 實作:完成手動建立快照與取得歷史快照列表的 API 路由。
  • 前端 UI 優化與防禦性編程:完成滿版視覺重構、原生日期選擇器整合,並實作具備 Null-Safety 與 .trim() 容錯的多維度前端搜尋過濾器 (支援快照名稱 + 描述雙欄位比對)。

Phase 3: 智慧差異還原與歷史預覽 (Completed)

  • 歷史預覽 UI:前端支援點擊歷史快照的「檢視」按鈕。
  • 前端安全還原防呆:實作三階段安全還原流程 UI (包含 Diff 預覽與確認寫入按鈕),並加入跨設備還原阻斷機制。
  • 後端 Diff 引擎實作:完成 /api/v1/backups/{id}/diff,成功生成絕對路徑指令陣列。
  • 前端串流接收器 (Streaming UI):升級 executeSmartRestore,使用 ReadableStream 即時渲染後端傳來的 SSH 逐行執行 Log並具備自動捲動功能。
  • 後端 SSH 交易寫入管道 (Transactional SSH Pipeline)
    • 實作 /api/v1/backups/{id}/restore API採用 StreamingResponse (NDJSON 串流回應)。
    • 建立安全的逐行寫入機制 (Fail-safe),遇錯立即停止、發送 abort 撤銷變更,並回傳錯誤 Chunk。
  • 效能與體驗優化:完成 DOM 陣列渲染優化、Terminal 資源回收 (防殭屍連線)、精準 Prompt 偵測,以及 UI 視窗連動防呆機制。

🚧 目前開發階段 (Current Phase)

Phase 4: 自動化防護與進階管理 (Automation & Advanced Management)

  • 自動備份攔截 (Auto-Backup Interceptor):在執行任何 generate_cli (寫入設備變更) 之前,實作自動觸發背景備份 running config 的防呆機制,確保每次變更前都有還原點。
  • 備份保留策略 (Retention Policy):實作定期清理過期或過多歷史快照的機制,防止資料庫無限膨脹。

🐛 已知問題與未來計畫 (Known Issues & Backlog)

  • 目前系統運行穩定,各項併發鎖定與 UI 狀態連動皆已完善。等待進入 Phase 4 開發。