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/WSpermissionCache rỗng sau restart → 403; PAT không quyền
cp-workspace✅ · ⚠Provision DB-per-WS sạch, clean script an toànChưa backup/restore per-WS DB; gắn chặt 1 host
cp-rbacCatalog 4 cấp khớp manifest; sync origin cp/localHai nguồn sự thật (CP-cache ∪ engine); data scope chưa nối
cp-storeHook verifyLicense đúng chỗ; tải qua CP có BearerCP-03 chưa build — license chưa enforce
rt-host✅ · ⚠Ledger + checksum + enable/disable nóng + fail-fastMigration không tracking; auto-seed "tạm" còn sót
rt-authz✅ · ⚠Grants deny-wins/rule-predicate; resolve thuần test đượcGuard + row-filter chưa gắn route nào (chờ RT-16)
sdk✅ · ⚠Vòng dev→build→publish→install trọn; validator có testcreate hỏng (thiếu template); manifest chưa có fields/scopeVars
registrySemantics 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)
orgTrù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
hrm18 model (NV, HĐ, chấm công, lương, tuyển dụng, KPI…) — thay module kế hoạch hr + payroll
crmLead/opportunity/customer — thay module kế hoạch crm v1.5, chỉ thêm convert + commission
workflow✅ tiềm năngEngine quy trình + ticket + connector — MVP chưa dùng; chỗ đặt adapter DAT/HĐĐT sau
workplaceMạng nội bộ — disable ở WS Vĩnh An (giảm bề mặt)
system✅ patternManifest-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ệcVì saoCỡTham chiếu
P1Khóa registry: token POST/DELETE + version immutable + verify checksum lúc càiChuỗi cung ứng mọi workspace khách — hiện ai biết URL là thay được ruột gói2–3 ngàynpm / Docker registry
P2Migration tracking per module (module_migrations: key, file, checksum, applied_at)GĐ1 sắp ALTER (student 1.2) — idempotent-convention không đủ cho upgrade2–3 ngàyFlyway / Knex / Odoo
P3Backup/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 AnNhỏPostgreSQL chuẩn
P4Hợp nhất authz về engine (RT-16) + data scope + fix cache/PATMột nguồn sự thật quyền; mở khóa data scope cho màn hình hồ sơ~3 MMCasbin/OPA · plan sẵn
P5Template create + lệnh lint conventionGĐ1 scaffold 3 module mới — scaffold tay là lệch chuẩnNhỏ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