GRC Dashboard API 規格

Blueprint prefix/api/1.0/grc Fileapi/grc/routes/dashboard_route.py Auth:JWT Required(Header:Authorization: Bearer <token>


API 列表

Method URL 說明
GET /api/1.0/grc/dashboard/summary 取得 GRC 儀表板彙總資料

1. GET /api/1.0/grc/dashboard/summary

Route classDashboardSummaryResource 用途:取得 GRC 儀表板彙總資料,包含指標數字、專案狀態分佈、近 7 天完成率趨勢。

Request

無 Request Body。

GET /api/1.0/grc/dashboard/summary

Response 200

{
  "status": true,
  "data": {
    "metrics": {
      "active_project_count": 3,
      "total_controls": 120,
      "avg_completion_rate": 42,
      "my_pending_task_count": 7
    },
    "status_distribution": {
      "pending": 2,
      "in_progress": 3,
      "completed": 1,
      "suspended": 0,
      "archived": 0
    },
    "completion_trend": [
      {
        "date": "2026-02-25",
        "projects": [
          { "project_uid": "uuid-A", "project_name": "CMMC 評鑑", "completion_rate": 30 },
          { "project_uid": "uuid-B", "project_name": "ISO 27001",  "completion_rate": 15 }
        ]
      },
      {
        "date": "2026-02-26",
        "projects": [
          { "project_uid": "uuid-A", "project_name": "CMMC 評鑑", "completion_rate": 35 },
          { "project_uid": "uuid-B", "project_name": "ISO 27001",  "completion_rate": 15 }
        ]
      }
    ]
  }
}

completion_trend 共 7 筆(今天 - 6 天 → 今天),由舊到新排列。

Response 欄位說明

metrics

欄位 型別 說明
active_project_count integer 狀態為 in_progress 的專案數
total_controls integer 所有 in_progress 專案的控制項總數
avg_completion_rate integer 所有 in_progress 專案的平均完成率(%,四捨五入)
my_pending_task_count integer 當前登入使用者尚未完成的 Job 數(job_executions.status != COMPLETED

status_distribution

key 固定為以下 5 個,value 為該狀態的專案數:

Key 說明
pending 待啟動
in_progress 進行中
completed 已完成
suspended 暫停
archived 已封存

completion_trend

近 7 天(含今天)每天的累積完成率快照,時間範圍:today-6today共 7 筆,由舊到新排列。

取當前 in_progress 且最早建立的前 5 個專案。

欄位 型別 說明
date string YYYY-MM-DD 日期
projects array 該日各專案的累積完成率
projects[].project_uid string 專案 UUID
projects[].project_name string 專案名稱
projects[].completion_rate integer 截至該日已完成任務數 / 總任務數 × 100(%)

累積邏輯completion_rate 為「截至該日(含)已完成的 AO 任務數」÷「該專案總 AO 任務數」× 100。 完成時間以 oscal.assessment_plan_tasks.updated_at 為準。

無資料情境

情境 行為
in_progress 專案 completion_trend: []
某專案無任務 該專案每天 completion_rate: 0
非 admin 且非 owner / participant 只看得到自己有權限的專案