Compliance Mapping · FDA 21 CFR Part 11
說明 Jope.SMB 如何滿足 FDA 21 CFR Part 11(Electronic Records; Electronic Signatures)。 每個 control 對應到實作該 control 的系統層,以及 evidence 來源(code path、test、 audit table 或 artifact)。
備註
本頁為 design-intent mapping。完整 CSA(Computer System Assurance)evidence — 包含 IQ / OQ / PQ protocols 與 test execution records — 位於內部 CSA package (不公開於此站)。
§11.10 · Closed Systems Controls
| Sub-control | Requirement | Implementation Layer | Evidence |
|---|---|---|---|
| §11.10(a) | 系統 validation | 全堆疊 | IQ / OQ / PQ protocols;CSA package |
| §11.10(b) | 準確完整 records | Jope.Core · Historian | TimescaleDB schema、7 年保留、append-only tables |
| §11.10(c) | Records 保護 | Jope.Core · FileStorage + Backup | WAL-mode SQLite snapshots;AES-256 加密備份;scheduled + on-demand |
| §11.10(d) | 限制授權存取 | Jope.Core · Identity + Jope.UI · Login | User / Role / Permission store;RBAC 於 command boundary 強制;session idle lock |
| §11.10(e) | Audit trail(append-only、computer-generated) | Jope.Core · Compliance · AuditTrail | audit_events table;hash-chained;append-only 寫入;UI 無法編輯 |
| §11.10(f) | Operational system checks | Jope.SMB.App · DeviceValidationService | Device state machine;connection health;失聯觸發 alarm |
| §11.10(g) | Authority checks | Jope.Core · Identity · RBAC | 每個 privileged command 檢查 permission;權限不足時 UI disable + tooltip |
| §11.10(h) | Device checks | Jope.SMB.App · Device I/O | Driver-level validation;firmware version 記錄;calibration 到期追蹤 |
| §11.10(i) | 人員訓練 | HR + audit | Training records 於 operator profile;連結 electronic signature |
| §11.10(j) | Electronic signature 書面政策 | 組織 SOPs | 軟體不實作;引用於 User Manual |
| §11.10(k) | 文件控制 | 版本化 SOPs + 本站 | Git history;版本化 spec releases |
§11.30 · Open Systems Controls
Jope.SMB 為 closed system(Plant IPC、無公網存取、需驗證)。§11.30 額外 controls(encryption in transit、digital signatures)超出 §11.10 範疇的部分不適用。
§11.50 · Signature Manifestations
| Requirement | Implementation |
|---|---|
| 簽署人姓名 | 寫入 signature record |
| 簽章日期時間 | UTC timestamp、server-side、second-precision |
| 意義(review / approval / authorship) | Signature dialog 必填;enum enforced |
§11.70 · Signature / Record Linking
- 每筆 signature record 儲存
context_ref(例如BatchId:PR-2026-0487/transition:start) - 對應 record 帶
signature_id - Signature record 為 hash-chained,解除連結可偵測
§11.100 · Signature Uniqueness
| Sub-control | Requirement | Implementation |
|---|---|---|
| §11.100(a) | Signature 唯一對應個人 | 每個 User record 一組電子簽章;employee id 唯一 |
| §11.100(b) | 分配前驗證身份 | User 建立需 HR 驗證;evidence 附於 user record |
| §11.100(c)(1) | 向 FDA certify 簽章具法律效力 | 組織層級 — 系統上線時一次性完成 |
§11.200 · Electronic Signature Components & Controls
| Requirement | Implementation |
|---|---|
| 至少兩個 identification components | Employee ID + password(two "something you know") |
| 每次簽章都使用兩個 components | Jope.UI signature dialog 強制要求 |
| 所有 components 可撤銷 | Admin 可重置密碼 / 停用 user;變更全 audited |
| 首次 session 簽章需完整 components;後續可簡化 | 可配置 session policy(預設:每次都重輸密碼以策安全) |
§11.300 · Identification Codes / Passwords Controls
| Requirement | Implementation |
|---|---|
| §11.300(a) Unique combination (ID + password) | Employee ID uniqueness 強制;password hash 用 Argon2id |
| §11.300(b) 密碼週期性更換 | Password expiration policy(預設 90 天)、過期提示 dialog |
| §11.300(c) 遺失 / 停用程序 | User.Status = Disabled 立即阻止登入;觸發 audit event |
| §11.300(d) 防未授權使用 | Session idle lock(預設 120 秒);3 次登入失敗 → lockout |
| §11.300(e) Token 測試 | N/A(密碼制);未來 2FA 時加硬體 token 測試 |
Signature Flow Summary
詳細 sequence 見 Data Flow · Electronic Signature。
4-Eyes Principle (Segregation of Duties)
超出 §11 嚴格要求,Jope.SMB 對高風險 mutations 執行 4-eyes principle:
- User 建立 / 修改 / 刪除
- Role / permission 變更
- Backup restore(雙簽核)
實作為 ChangeRequest state machine(Stateless)with guards:
approver ≠ requester(禁自審)- Dual approval 時:需兩位不同 approver
此超越 §11 底線,符合業界 SoD principle 最佳實務。
Backup & Restore
- Scheduled: 每日 full backup、AES-256 加密、保留 90 天
- On-demand: Backup 頁手動按鈕
- Storage: local + NAS(
\\nas01\backup)+ optional cloud (AWS S3 / Azure Blob) - Restore: 需雙簽核(見上方 4-eyes),產生 audit event
RestoreQueued
Traceability
每筆 audit event 可追溯至:
- User — actor(employee id、顯示名稱、該動作當時的 role)
- Session — session id、IP address、client machine 名稱
- Signature(若需要)— signature id + hash-chain 位置
- Data subject — 被操作的 batch / recipe / user / role
查詢範例位於 Audit Log Viewer operator documentation (coming soon)。