## MODIFIED Requirements ### Requirement: Audit Trail 系統 SHALL 記錄所有文件操作供稽核追溯,整合現有 audit-trail 模組。 #### Scenario: 操作日誌記錄 - **GIVEN** 使用者對附件執行任何操作(上傳、下載、刪除) - **WHEN** 操作完成 - **THEN** 系統透過 AuditService 記錄操作至 `pjctrl_audit_logs` - **AND** 使用 event_type: `attachment.upload`, `attachment.download`, `attachment.delete` #### Scenario: 稽核查詢 - **GIVEN** 稽核人員需要查詢文件操作歷史 - **WHEN** 稽核人員透過 Audit API 執行查詢 - **THEN** 可依 resource_type=attachment 篩選 - **AND** 顯示完整操作歷史 ## ADDED Requirements ### Requirement: File Size Limits 系統 SHALL 限制上傳檔案大小以確保系統穩定性。 #### Scenario: 檔案大小驗證 - **GIVEN** 使用者上傳檔案 - **WHEN** 檔案大小超過限制(預設 50MB) - **THEN** 系統拒絕上傳並回傳錯誤訊息 #### Scenario: 大小限制配置 - **GIVEN** 管理者需要調整檔案大小限制 - **WHEN** 設定環境變數 MAX_FILE_SIZE_MB - **THEN** 系統使用新的限制值 ### Requirement: Mime Type Validation 系統 SHALL 驗證上傳檔案類型以確保安全性。 #### Scenario: 允許的檔案類型 - **GIVEN** 使用者上傳附件 - **WHEN** 檔案類型為常見文件格式(pdf, doc, xls, jpg, png, zip 等) - **THEN** 系統接受上傳 #### Scenario: 危險檔案類型拒絕 - **GIVEN** 使用者上傳附件 - **WHEN** 檔案類型為可執行檔(exe, bat, sh, dll 等) - **THEN** 系統拒絕上傳並回傳錯誤訊息