# 資產依賴關係功能 - 快速開始指南

## 🚀 5 分鐘快速演示

### 前置條件
確保系統已啟動：
```bash
# 檢查服務狀態
docker compose ps

# 如果未啟動，執行
docker compose up -d

# 等待服務就緒（約 30 秒）
```

---

## 步驟 1: 生成測試資料

```bash
# 進入後端容器
docker compose exec backend bash

# 執行資料生成命令
python manage.py seed_asset_relationships

# 預期輸出：
# ✅ 建立關係: AST-001 -> AST-002 (depends_on)
# ✅ 建立關係: AST-003 -> AST-001 (uses)
# ...
# ✅ 完成！共建立 XX 個資產依賴關係
#
# 📊 統計資訊：
#   - 總資產數: XX
#   - 總關係數: XX
#
# 🔥 關鍵資產 Top 5：
#   - AST-001 主資料庫: 5 個依賴
#   ...

# 退出容器
exit
```

---

## 步驟 2: 測試後端 API

```bash
# 執行測試腳本
./test_asset_dependency.sh

# 或手動測試 API：

# 1. 取得依賴關係圖
curl http://localhost:8000/api/asset-relationships/dependency_graph/ | jq

# 2. 取得關鍵資產
curl http://localhost:8000/api/asset-relationships/critical_assets/ | jq

# 3. 影響分析（替換 {asset_id}）
curl http://localhost:8000/api/asset-relationships/impact-analysis/{asset_id}/ | jq
```

---

## 步驟 3: 訪問前端頁面

### 方式 1: 從資產列表進入

1. 開啟瀏覽器訪問：http://localhost:3000/assets
2. 點擊頁面右上角的 **「依賴關係圖」** 按鈕
3. 或點擊任意資產的 **「影響」** 按鈕查看影響分析

### 方式 2: 直接訪問

- **依賴關係圖**: http://localhost:3000/assets/dependency-graph
- **影響分析**: http://localhost:3000/assets/{asset_id}/impact-analysis

---

## 📊 功能展示要點

### 1. 依賴關係圖頁面

**查看內容**：
- ✅ 統計卡片：總資產數、依賴關係數、關鍵資產數
- ✅ 關鍵資產 Top 10 標籤（點擊可跳轉）
- ✅ 互動式依賴關係圖：
  - 拖曳節點調整位置
  - 滾輪縮放
  - 點擊節點查看資產詳情
  - 迷你地圖導航
- ✅ 圖例說明

**操作演示**：
1. 拖曳節點調整布局
2. 使用滾輪放大/縮小
3. 點擊節點跳轉至資產詳情
4. 點擊「新增關係」按鈕建立新依賴
5. 點擊關鍵資產標籤快速定位

### 2. 影響分析頁面

**查看內容**：
- ✅ 目標資產詳細資訊
- ✅ 影響等級評估（高/中/低）
- ✅ 影響範圍警告（高影響會顯示紅色警告）
- ✅ 依賴資產清單表格
- ✅ 建議措施清單

**操作演示**：
1. 從資產列表選擇一個資產
2. 點擊「影響」按鈕
3. 查看影響分析結果
4. 檢視依賴資產清單
5. 閱讀建議措施

### 3. 新增依賴關係

**步驟**：
1. 在依賴關係圖頁面點擊「新增關係」
2. 選擇來源資產
3. 選擇目標資產
4. 選擇關係類型：
   - 依賴於 (depends_on)
   - 連接到 (connected_to)
   - 託管 (hosts)
   - 使用 (uses)
   - 備份於 (backed_up_by)
5. (選填) 填寫描述
6. 點擊確定

---

## 🎯 測試場景

### 場景 1: 識別關鍵資產

**目標**: 找出組織中最關鍵的資產

1. 訪問依賴關係圖頁面
2. 查看「關鍵資產」統計數字
3. 檢視「關鍵資產 Top 10」標籤
4. 點擊標籤查看資產詳情

**預期結果**: 
- 被最多資產依賴的資產顯示為紅色（critical）
- 可以看到每個資產的依賴數量

### 場景 2: 故障影響評估

**目標**: 評估某個資產故障時的影響範圍

1. 選擇一個資產（例如：主資料庫伺服器）
2. 點擊「影響」按鈕
3. 查看影響分析結果
4. 檢視有多少資產會受影響

**預期結果**:
- 顯示影響等級（高/中/低）
- 列出所有受影響的資產
- 提供相應的建議措施

### 場景 3: 依賴關係視覺化

**目標**: 理解資產之間的依賴結構

1. 訪問依賴關係圖
2. 觀察節點和邊的排列
3. 找出依賴鏈（A -> B -> C）
4. 識別孤立資產

**預期結果**:
- 清楚看到資產間的連接關係
- 不同顏色代表不同資產類型
- 可以追蹤依賴路徑

---

## 🐛 常見問題

### 問題 1: 圖形顯示空白

**原因**: 沒有資產依賴關係資料

**解決**:
```bash
docker compose exec backend python manage.py seed_asset_relationships
```

### 問題 2: 前端無法連接後端

**檢查**:
```bash
# 確認後端運行
curl http://localhost:8000/api/assets/

# 確認前端運行
curl http://localhost:3000
```

### 問題 3: React Flow 顯示異常

**解決**: 清除瀏覽器快取或使用無痕模式

---

## 📈 進階使用

### 自訂依賴關係類型

如需新增關係類型，編輯 `backend/assets/models.py`:

```python
RELATIONSHIP_TYPE_CHOICES = [
    ('depends_on', '依賴於'),
    ('connected_to', '連接到'),
    ('hosts', '託管'),
    ('uses', '使用'),
    ('backed_up_by', '備份於'),
    # 新增您的類型
    ('your_type', '您的描述'),
]
```

### 匯出依賴關係資料

```bash
# 匯出為 JSON
curl http://localhost:8000/api/asset-relationships/ > relationships.json

# 或在 Django shell 中操作
docker compose exec backend python manage.py shell
>>> from assets.models import AssetRelationship
>>> relationships = AssetRelationship.objects.all()
>>> # 進行您的資料處理
```

---

## 📝 驗證清單

完成演示後，確認以下功能正常：

- [ ] 資產依賴關係資料已生成
- [ ] 依賴關係圖正常顯示
- [ ] 可以拖曳和縮放圖形
- [ ] 點擊節點能跳轉至詳情
- [ ] 關鍵資產正確識別
- [ ] 影響分析計算正確
- [ ] 新增依賴關係功能正常
- [ ] 頁面響應速度良好

---

## 🎉 完成！

您已成功完成資產依賴關係功能的演示！

**下一步**:
1. 在實際環境中建立真實的資產依賴關係
2. 定期審查和更新依賴關係
3. 使用影響分析輔助 BCP/DR 規劃
4. 監控關鍵資產狀態

**相關文檔**:
- 完整報告: `ASSET_DEPENDENCY_COMPLETION.md`
- 開發計劃: `plan.md`
- API 文件: http://localhost:8000/api/docs/

---

有問題？請參考完整文檔或查看程式碼註釋。
