## ADDED Requirements ### Requirement: Change Logging 系統 SHALL 記錄所有關鍵變更操作,包含誰在何時改了什麼。 #### Scenario: 任務欄位變更記錄 - **GIVEN** 使用者修改任務的任何欄位(如截止日期、狀態、指派者) - **WHEN** 變更儲存成功 - **THEN** 系統記錄變更前後的值 - **AND** 記錄操作者、時間、IP 位址 #### Scenario: 專案設定變更記錄 - **GIVEN** 管理者修改專案設定 - **WHEN** 設定變更儲存 - **THEN** 系統記錄所有變更的設定項目 - **AND** 記錄操作者與時間 #### Scenario: 權限變更記錄 - **GIVEN** 管理者修改使用者權限或角色 - **WHEN** 權限變更生效 - **THEN** 系統記錄權限變更詳情 - **AND** 標記為高敏感度操作 ### Requirement: Delete Operations Tracking 系統 SHALL 追蹤所有刪除操作,支援軟刪除與追溯。 #### Scenario: 任務刪除記錄 - **GIVEN** 使用者刪除任務 - **WHEN** 刪除操作執行 - **THEN** 系統執行軟刪除(標記 is_deleted = true) - **AND** 記錄刪除操作與原因 #### Scenario: 附件刪除記錄 - **GIVEN** 使用者刪除附件 - **WHEN** 刪除操作執行 - **THEN** 系統保留檔案於存檔區 - **AND** 記錄刪除操作詳情 ### Requirement: Audit Log Immutability 系統 SHALL 確保稽核日誌不可竄改。 #### Scenario: 日誌寫入 - **GIVEN** 需要記錄稽核事件 - **WHEN** 日誌寫入 - **THEN** 日誌記錄不可被修改或刪除 - **AND** 包含 SHA-256 校驗碼確保完整性 #### Scenario: 日誌完整性驗證 - **GIVEN** 稽核人員需要驗證日誌完整性 - **WHEN** 執行完整性檢查 - **THEN** 系統驗證所有日誌記錄的校驗碼 - **AND** 報告任何異常記錄 ### Requirement: Audit Query Interface 系統 SHALL 提供稽核查詢介面供授權人員使用。 #### Scenario: 依時間範圍查詢 - **GIVEN** 稽核人員需要查詢特定時間範圍的操作 - **WHEN** 設定時間範圍並執行查詢 - **THEN** 顯示該時間範圍內的所有稽核記錄 #### Scenario: 依操作者查詢 - **GIVEN** 稽核人員需要查詢特定使用者的操作歷史 - **WHEN** 選擇使用者並執行查詢 - **THEN** 顯示該使用者的所有操作記錄 #### Scenario: 依資源查詢 - **GIVEN** 稽核人員需要查詢特定任務或專案的變更歷史 - **WHEN** 選擇資源並執行查詢 - **THEN** 顯示該資源的完整變更歷程 #### Scenario: 稽核報告匯出 - **GIVEN** 稽核人員需要匯出稽核報告 - **WHEN** 選擇匯出 CSV 格式 - **THEN** 系統生成報告檔案供下載 ### Requirement: Sensitive Operation Alerts 系統 SHALL 對高敏感度操作發送即時警示。 #### Scenario: 權限提升警示 - **GIVEN** 使用者被授予管理員權限 - **WHEN** 權限變更生效 - **THEN** 系統發送警示給安全管理員 - **AND** 建立 AuditAlert 記錄 #### Scenario: 大量刪除警示 - **GIVEN** 使用者在 5 分鐘內刪除超過 5 筆資料 - **WHEN** 偵測到異常刪除模式 - **THEN** 系統發送警示給安全管理員 #### Scenario: 警示確認 - **GIVEN** 管理員收到敏感操作警示 - **WHEN** 管理員確認警示 - **THEN** 系統記錄確認者與確認時間