Core platform · Review · 07/7/2026
Review tổng — Core platform CORE
Đánh giá 8 core module của nền tảng (controlplane + ws_suns) — đọc trực tiếp code
(provisioner, runtime-core, permissionEngine, ogapp CLI, module-sdk).
Khung tham chiếu: Odoo · Keycloak · npm/Docker registry · Flyway · Casbin/OPA · Atlassian/Shopify.
✅ Kết luận chung: kiến trúc đúng hướng (DB-per-workspace, module ledger, policy engine) — 4 việc nhỏ P1–P3+P5 nên sửa ngay trong GĐ1, 1 việc vừa (P4) đã có plan riêng.
1
Bảng tổng hợp 8 core module
| Core | Đánh giá | Điểm mạnh | Điểm phải sửa |
| cp-identity | ✅ · ⚠ | SSO authorization-code chuẩn, cô lập session/WS | permissionCache rỗng sau restart → 403; PAT không quyền |
| cp-workspace | ✅ · ⚠ | Provision DB-per-WS sạch, clean script an toàn | Chưa backup/restore per-WS DB; gắn chặt 1 host |
| cp-rbac | ⚠ | Catalog 4 cấp khớp manifest; sync origin cp/local | Hai nguồn sự thật (CP-cache ∪ engine); data scope chưa nối |
| cp-store | ⚠ | Hook verifyLicense đúng chỗ; tải qua CP có Bearer | CP-03 chưa build — license chưa enforce |
| rt-host | ✅ · ⚠ | Ledger + checksum + enable/disable nóng + fail-fast | Migration không tracking; auto-seed "tạm" còn sót |
| rt-authz | ✅ · ⚠ | Grants deny-wins/rule-predicate; resolve thuần test được | Guard + row-filter chưa gắn route nào (chờ RT-16) |
| sdk | ✅ · ⚠ | Vòng dev→build→publish→install trọn; validator có test | create hỏng (thiếu template); manifest chưa có fields/scopeVars |
| registry | ❌ | Semantics npm tối giản, đủ nội bộ | Upload/DELETE không xác thực · version không immutable · không chữ ký |
1b
Built-in module của WS (sẵn lúc boot)
7 module built-in đủ để 1 WS hoạt động độc lập ngay khi provision — không cài qua .ogapp.
| Built-in | Đánh giá | Ghi chú chính |
| iam | ✅ · ⚠ | User cục bộ + PAT + permissionAdmin; roles cũ song song rt_role (chờ RT-16) |
| org | ✅ | Trùng WS0: phòng ban (cây) + chức danh có sẵn → seed thẳng, không tạo danh mục mới |
| hrm | ✅ | 18 model (NV, HĐ, chấm công, lương, tuyển dụng, KPI…) — thay module kế hoạch hr + payroll |
| crm | ✅ | Lead/opportunity/customer — thay module kế hoạch crm v1.5, chỉ thêm convert + commission |
| workflow | ✅ tiềm năng | Engine quy trình + ticket + connector — MVP chưa dùng; chỗ đặt adapter DAT/HĐĐT sau |
| workplace | ◻ | Mạng nội bộ — disable ở WS Vĩnh An (giảm bề mặt) |
| system | ✅ pattern | Manifest-only đưa quyền hạ tầng vào taxonomy — nhân rộng cho audit/backup/notify |
🔴 Phát hiện lớn — chồng lấn với sơ đồ kế hoạch: v1.5 định scaffold hr, payroll, crm — cả 3 đã có sẵn dạng built-in.
Đề xuất: bỏ scaffold mới, dùng built-in + phần đặc thù mỏng (GV↔Employee, timesheet-DAT vào lương, convert lead→hồ sơ, hoa hồng CTV);
org dùng ngay từ MVP làm nguồn phòng ban/chức danh (WS0). v1.5: 7 module mới → 4 mới (lms, finance, fleet, portal) + 3 mở rộng built-in.
2
Ưu tiên sửa P1 → P5
| # | Việc | Vì sao | Cỡ | Tham chiếu |
| P1 | Khóa registry: token POST/DELETE + version immutable + verify checksum lúc cài | Chuỗi cung ứng mọi workspace khách — hiện ai biết URL là thay được ruột gói | 2–3 ngày | npm / Docker registry |
| P2 | Migration tracking per module (module_migrations: key, file, checksum, applied_at) | GĐ1 sắp ALTER (student 1.2) — idempotent-convention không đủ cho upgrade | 2–3 ngày | Flyway / Knex / Odoo |
| P3 | Backup/restore per-WS DB (pg_dump lịch + test restore) | Dữ liệu hồ sơ là căn cứ pháp lý — bắt buộc trước go-live Vĩnh An | Nhỏ | PostgreSQL chuẩn |
| P4 | Hợp nhất authz về engine (RT-16) + data scope + fix cache/PAT | Một nguồn sự thật quyền; mở khóa data scope cho màn hình hồ sơ | ~3 MM | Casbin/OPA · plan sẵn |
| P5 | Template create + lệnh lint convention | GĐ1 scaffold 3 module mới — scaffold tay là lệch chuẩn | Nhỏ | Shopify CLI / create-vite |
Sau trường thứ 2 (chưa cần ngay)
- CP-03 license enforcement + heartbeat (Atlassian model; thiết kế sẵn usage-based theo đầu học viên khớp mô hình giá roadmap)
- Ký gói publisher (sigstore / Docker Content Trust)
- Provisioner dạng reconcile-loop (K8s operator pattern)
- Single-logout lan truyền các workspace
Vệ sinh nhanh — nhặt luôn
- Gỡ khối auto-run seeds "TẠM THỜI" trong runtimeCore.js (quá hạn ghi chú 03/7)
- Health-check per-module sau mount (phát hiện module hỏng lúc boot)
Khớp yêu cầu nghiệp vụ trường lái
- Audit chung: đã giữ chỗ audit_logs — MVP dùng lịch sử hồ sơ (đã chốt), audit platform làm sau
- Offline/mạng kém: core chưa có — chấp nhận cho MVP, phải giải ở v1.5 (điểm danh, app)
- Đa cơ sở ma_csdt: đúng thiết kế — thuộc tính trong WS, core không cần đổi
3
8 core module — trang chi tiết