Core platform · ws_suns · 07/7/2026

rt-host — Runtime host & module loader CORE

Trái tim runtime: ledger installed_modules (version, checksum_sha256, enabled/status), loader mount module lúc boot, enable/disable không cần restart, hooks install/upgrade/uninstall.

Đánh giá: ✅ Ledger tốt · ⚠ migration tracking + seed tạm · Chi tiết khuyến nghị ở mục 3 — tham chiếu hệ thống phổ biến.
1

Thành phần chính

Thành phầnVai trò
runtime-core (package)createRuntimeCore: ledger + đối chiếu ledger⇄disk (fail-fast khi lệch) + coreTables bảo vệ + checksum
runtimeCore.js (host)Inject authenticate/authz/verifyLicense/hooks; onInstalled copy roleTemplates vào engine + bump epoch
ogapp CLIlist/install/uninstall/enable/disable/info · tải từ registry hoặc CP · hỗ trợ file local
MigrationsSQL chạy theo alphabet, quy ước idempotent IF NOT EXISTS — không có bảng tracking đã chạy
2

Hiện trạng (đọc từ code)

  • Ledger có checksum_sha256, cờ enabled (route 404 ngay không cần restart), fail-fast khi ledger bật mà thiếu code trên disk — ngang cơ chế npm/Docker
  • Hooks lifecycle tách bạch, lỗi hook không phá cài đặt (log warning) — hợp lý
  • Migration không tracking: chỉ dựa idempotent convention. Đủ cho CREATE TABLE, nhưng GĐ1 sắp ALTER (student 1.2 thêm cột) — chạy lại toàn bộ file mỗi lần cài đè là mong manh
  • ⚠ Khối auto-run seeds đóng gói đánh dấu 'TẠM THỜI — XÓA SAU TEST' (03/7) vẫn còn; lỗi seed không fail install
3

Khuyến nghị — tham chiếu hệ phổ biến

Tham chiếuKhuyến nghị
Flyway / Knex / Odoo module upgradeƯu tiên cao: thêm bảng module_migrations(module_key, filename, checksum, applied_at) — chỉ chạy file chưa applied, chặn file đã applied bị sửa nội dung. Nhỏ (~2-3 ngày) nhưng chặn cả lớp lỗi upgrade trước khi module domain vào giai đoạn ALTER
Vệ sinhGỡ khối auto-seed tạm thời đúng như ghi chú; seed chuyển thành lệnh chủ động ogapp seed <key>
Docker healthThêm health-check per-module sau mount (route ping) — phát hiện module hỏng ngay lúc boot thay vì lúc user bấm
4

Liên kết trong core

  • sdk — build ra .ogapp mà host cài
  • rt-authz — nhận roleTemplates lúc onInstalled
  • registry / cp-store — nguồn artifact
Phân quyền

Ma trận tác nhân × năng lực

Core không phải module nghiệp vụ — thay ma trận vai trò bằng tác nhân × năng lực, kèm cơ chế/quyền gate từng năng lực. R đọc · W thực hiện · A duyệt.

Năng lựcCơ chế / quyền gateSUPEROWNER/QTHTDEVSVCUSER
Cài / gỡ modulesystem.admin.modules.install/deleteW
Bật / tắt module (không restart)system.admin.modules.*W
Mount + chạy migrations lúc boottiến trình hệ thốngW
Verify checksum/license lúc cài (đích P1/CP-03)hook verifyLicense + checksumW
Xem health module (đích)system.admin.health.viewR

SUPER = super admin CP · OWNER/QTHT = chủ workspace / quản trị WS · DEV = developer/publisher · SVC = service-to-service (runtime/hook) · USER = người dùng cuối. Mục ghi (đích) = theo khuyến nghị P1–P5, chưa có ở hiện trạng.