Giao diện
Bản đồ gói core
Bảng dưới map packages/core/<thư mục> → package npm (@digiforce-nc/<tên>) và vai trò. Mỗi gói có package.json định nghĩa chính xác tên publish.
Packages chính (runtime)
| Thư mục | Package | Vai trò |
|---|---|---|
server | @digiforce-nc/server | Application Node/Koa - vòng đời app, PluginManager, Resourcer, DataSourceManager, ACL, cache, pub/sub |
client | @digiforce-nc/client | Application React - SPA, PluginManager, RouterManager, Schema, APIClient, DataSourceManager client |
database | @digiforce-nc/database | Database, Collection, Repository, Field, Migration (Sequelize wrapper) |
resourcer | @digiforce-nc/resourcer | ResourceManager, Resource, Action - middleware pipeline HTTP |
data-source-manager | @digiforce-nc/data-source-manager | DataSourceManager, DataSource - quản lý nhiều nguồn dữ liệu |
acl | @digiforce-nc/acl | Engine ACL runtime - role, resource, snippet, fixed params |
auth | @digiforce-nc/auth | AuthManager, JWT, authenticator registry |
actions | @digiforce-nc/actions | Action handler chuẩn: list, get, create, update, destroy, query... |
cache | @digiforce-nc/cache | CacheManager - Redis / in-memory cache |
logger | @digiforce-nc/logger | Logger ứng dụng và system (Winston) |
Packages hỗ trợ
| Thư mục | Package | Vai trò |
|---|---|---|
utils | @digiforce-nc/utils | Hàm dùng chung: compose, topo sort, uid... |
evaluators | @digiforce-nc/evaluators | Đánh giá biểu thức / template (formula, mathjs) |
sdk | @digiforce-nc/sdk | SDK tích hợp (API client wrapper) |
telemetry | @digiforce-nc/telemetry | OpenTelemetry integration |
snowflake-id | @digiforce-nc/snowflake-id | ID generator kiểu Snowflake (distributed unique) |
ui-core | @digiforce-nc/ui-core | Thành phần UI lõi dùng chung client |
Packages tooling
| Thư mục | Package | Vai trò |
|---|---|---|
app | @digiforce-nc/app | Khởi tạo ứng dụng tổng hợp (preset) |
build | @digiforce-nc/build | Build tool (webpack/vite) |
cli | @digiforce-nc/cli | CLI commands |
create-digiforce-nc-app | create-digiforce-nc-app | Scaffold project mới |
devtools | @digiforce-nc/devtools | Dev tools |
test | @digiforce-nc/test | Test utilities (mock app, mock database) |
Sơ đồ phụ thuộc giữa packages chính
Trục đọc mã (để debug)
Request HTTP (server-side)
server → resourcer → actions handler → database / data-source-managerBắt đầu từ Koa middleware, request đi qua DataSourceManager → ResourceManager → handler trong actions → cuối cùng tới Repository (từ database hoặc data source khác).
Quyền
acl (engine runtime) + plugin-acl (đồng bộ DB → memory)Engine acl chạy trong bộ nhớ. Plugin plugin-acl chịu trách nhiệm đọc cấu hình quyền từ database và đẩy vào engine.
Giao diện
client → APIClient (axios) → HTTP API → server pipelineClient render UI theo schema, tạo request thông qua APIClient. Không có truy cập trực tiếp tới repository hay database.
Đọc tiếp
- Luồng dữ liệu & request - nắm pipeline từ đầu đến cuối
- Server - Application - chi tiết vòng đời server
- Engine ACL / Auth: Engine ACL, Auth & AuthManager