Gap Analysis — Rights ↔ LumiBase Features
Ánh xạ mỗi quyền/nghĩa vụ của người dùng vào hiện trạng triển khai của LumiBase, kèm bằng chứng đường dẫn file và phần việc cần làm để lấp.
Chú giải trạng thái: ✅ đã có · ⚠️ một phần · ❌ thiếu.
⚠️ Đây không phải tư vấn pháp lý. Đây là đánh giá mức độ sẵn sàng về kỹ thuật. Việc có một nguyên thuỷ kỹ thuật không tự nó chứng minh tuân thủ pháp lý.
1. Bảng tóm tắt
| Quyền / nghĩa vụ | Trạng thái | Bằng chứng (đường dẫn) | Việc cần làm để lấp |
|---|---|---|---|
| Xoá / quyền được lãng quên | ✅ | apps/cms/src/services/erasure-service.ts; bảng erasure_requests (schema/regulated.ts); admin /api/v1/admin/erasure + /api/v1/admin/sar (regulated-content-readiness) | Thêm luồng tự phục vụ /me/erasure chồng lên service erasure admin. |
| Truy cập / quyền được biết | ✅ | apps/cms/src/modules/data-rights/export-service.ts; GET /api/v1/me/data-export (hồ sơ, consents, hoạt động, revisions tự viết, thông báo) | Mở rộng khi thêm bảng chứa PII mới. |
| Di chuyển dữ liệu (portability) | ✅ | apps/cms/src/routes/data-export.ts — JSON có cấu trúc của dữ liệu chính người dùng, kèm header tải Content-Disposition | Bổ sung biến thể CSV nếu cần; tái dùng cho preview erasure. |
| Chỉnh sửa (rectification) | ✅ | apps/cms/src/routes/users.ts (cập nhật user); sửa hồ sơ | Không cần cho hồ sơ; đảm bảo mọi trường PII người dùng sửa được. |
| Hạn chế xử lý | ✅ | apps/cms/src/modules/data-rights/restriction-service.ts; bảng processing_restrictions; tự phục vụ GET/PUT /api/v1/me/restriction; helper isRestricted cho service | Gắn isRestricted vào agent run + marketing làm điểm thực thi. |
| Phản đối / opt-out (bán/chia sẻ) | ✅ | Loại consent sale_share qua PUT /api/v1/me/consents/sale_share (packages/contracts/src/schemas/consent.ts) | Gắn link "Do Not Sell or Share" + tín hiệu Global Privacy Control ở frontend. |
| Đồng ý + rút lại | ✅ | packages/database/src/schema/consent.ts (user_consents); apps/cms/src/modules/consent/service.ts; apps/cms/src/routes/consent.ts (GET/PUT /api/v1/me/consents); audit consent_granted/consent_withdrawn | Thêm UI preference center. |
| Đồng ý cookie / theo dõi | ⚠️ | Đã có store backend (user_consents, loại analytics/functional); chưa có thu thập ở frontend | Banner đồng ý + thu thập cho cookie/theo dõi không thiết yếu, ghi qua /me/consents. |
| Huỷ đăng ký email | ✅ | packages/database/src/schema/compliance.ts (email_suppressions); apps/cms/src/modules/email/suppression.ts; public GET/POST /api/v1/email/unsubscribe; send path lọc người nhận marketing | Thêm header SMTP List-Unsubscribe (RFC 8058) khi OutboundEmail hỗ trợ custom header. |
| Xoá tài khoản (in-app/web) | ⚠️ | Erasure do admin /api/v1/admin/erasure + SAR /api/v1/admin/sar (regulated) | Thêm luồng tự phục vụ + URL yêu cầu xoá công khai (Apple 5.1.1(v) / Google Play). |
| Minh bạch / thông báo quyền riêng tư | ⚠️ | Trang privacy tại apps/landing/src/app/privacy/page.tsx (chung chung) | Bản đồ dữ liệu để khai báo "data safety"/nhãn chính xác; thông báo theo từng triển khai. |
| Thông báo vi phạm | ⚠️ | apps/cms/src/modules/audit/ cung cấp dấu vết phát hiện; modules/anomaly | Quy trình ứng phó sự cố + thông báo cơ quan trong 72h (mức tổ chức). |
| Chuyển dữ liệu xuyên biên giới / nội địa hoá | ⚠️ | Runtime edge; apps/cms/src/middleware/rls.ts cô lập tenant | Cấu hình ghim vùng / data-residency + tài liệu. |
| Quyết định tự động / con người xem xét | ✅ | apps/cms/src/modules/data-rights/automated-decisions-service.ts; GET /api/v1/me/automated-decisions hiển thị revisions agent trên nội dung của user kèm provenance; HITL qua ai_approvals | Thêm hành động "yêu cầu con người xem xét" do user khởi tạo. |
| Biện pháp an ninh (mã hoá/truy cập) | ✅ | apps/cms/src/services/crypto-service.ts (AES-256-GCM); fields.encrypted (cms.ts:124); middleware/rls.ts; RBAC schema/access.ts | Duy trì; tài liệu hoá quản lý khoá. |
| Retention / tự động dọn | ✅ | Audit: apps/cms/src/modules/audit/rotator.ts; tổng quát: apps/cms/src/modules/data-rights/retention-service.ts (activity + notifications đã đọc/lưu) qua POST /api/v1/retention/run | Mở rộng mốc cho nhiều bảng PII; lên lịch trên cron rotation. |
2. Những điều LumiBase đã làm tốt
Các nguyên thuỷ này là thật và tái sử dụng được khi xây tính năng tuân thủ:
- Audit & provenance.
apps/cms/src/modules/audit/logger.tsghi sự kiện append-only, che bí mật;routes.tscho truy vấn phân trang cursor và xuất NDJSON;rotator.tsdọn theo mốc cấu hình được. Hỗ trợ mạnh bằng chứng GDPR Điều 30/32 và dấu vết phát hiện vi phạm. - Cô lập đa tenant.
apps/cms/src/middleware/rls.tsthực thi row-level security quaSET LOCAL app.site_id, bổ sung cho lọcsite_idmức ứng dụng — phòng thủ nhiều lớp chống rò rỉ liên tenant. - Mã hoá.
apps/cms/src/services/crypto-service.tscung cấp AES-256-GCM; field có thể đánh dấuencrypted(packages/database/src/schema/cms.ts:124). - Kiểm soát truy cập chi tiết.
packages/database/src/schema/access.tsđịnh nghĩa role, policy, permission (mức row + field), API key, và share. - Soft delete.
items.deletedAt(packages/database/src/schema/cms.ts:201) với index một phần lọcdeleted_at is null— cửa sổ phục hồi trước khi dọn.
3. Các khoảng trống lớn nhất (và vì sao quan trọng)
- Xoá tài khoản toàn cục (quyền được lãng quên). ✅ Đã triển khai bởi feature
regulated-content-readiness:
apps/cms/src/services/erasure-service.ts+erasure_requests(schema/regulated.ts), expose qua admin/api/v1/admin/erasurevà SAR/api/v1/admin/sar. Thoả GDPR Điều 17, CCPA delete, PDPD. Luồng tự phục vụ/me/erasurechồng lên là follow-up. - Xuất dữ liệu cá nhân ("download my data"). ✅ Đã triển khai (v0.8.x).
GET /api/v1/me/data-export(apps/cms/src/modules/data-rights/export-service.ts) gom hồ sơ, consents, hoạt động, revisions tự viết và thông báo của chính người gọi thành JSON tải về có cấu trúc (loại trừ secret). Thoả GDPR Điều 15/20. - Quản lý đồng ý. ✅ Đã triển khai (v0.8.x). Bảng
user_consents(packages/database/src/schema/consent.ts) lưu quyết định hiện tại theo(site_id, user_id, type)kèm mốc thời gian grant/withdraw;ConsentService+GET/PUT /api/v1/me/consentscho phép tự quản lý; mọi thay đổi đều được audit (consent_granted/consent_withdrawn). Thoả nguyên thuỷ storage + API + audit cho GDPR Điều 7 / PDPD. Còn lại: preference center ở frontend. - Huỷ đăng ký email / trung tâm tuỳ chọn. ✅ Đã triển khai (v0.8.x). Danh sách
email_suppressionsper-site (packages/database/src/schema/compliance.ts), endpoint one-click công khai (GET/POST /api/v1/email/unsubscribe) dùng token ký không trạng thái, và bộ lọc ở send path loại bỏ người nhận đã opt-out cho emailmarketing(apps/cms/src/modules/email/suppression.ts). Thoả cơ chế CAN-SPAM; headerList-Unsubscribecòn là follow-up. - Retention dữ liệu tổng quát. ✅ Đã triển khai (v0.8.x).
RetentionService(apps/cms/src/modules/data-rights/retention-service.ts) dọn logactivityvànotificationsđã xử lý quá mốc do operator cấu hình (LUMIBASE_ACTIVITY_RETENTION_DAYS/LUMIBASE_NOTIFICATION_RETENTION_DAYS,0/không đặt = tắt), quaPOST /api/v1/retention/run.
4. Ghi chú về vai trò
[Inference] Phần lớn triển khai LumiBase là self-host, khiến đơn vị vận hành trở
thành bên kiểm soát dữ liệu và do đó là bên chịu trách nhiệm pháp lý đáp ứng các
quyền này. Nhiệm vụ của LumiBase là cung cấp năng lực (endpoint, lưu trữ, audit) để
đơn vị vận hành tuân thủ. Checklist tiếp cận phần việc từ góc đó.
Tiếp theo: xem implementation-checklist.md cho backlog ưu tiên.