Giao diện
@digiforce-nc/plugin-import-schema
Plugin nhập schema — import cấu hình collection, fields, relations và UI schema từ file JSON, hỗ trợ merge, overwrite và conflict resolution.
Plugin này làm gì?
Sau khi export schema bằng plugin-export-schema, plugin này cho phép import ngược vào instance khác. Hỗ trợ hai chế độ: merge (gộp với cấu hình hiện có) và overwrite (ghi đè), với giao diện conflict resolution khi phát hiện xung đột — admin quyết định giữ hay ghi đè từng item.
Sáu tính năng chính
| # | Tính năng | Chi tiết |
|---|---|---|
| 1 | Import JSON | Import schema từ file JSON (upload hoặc paste) |
| 2 | Validation | Kiểm tra schema hợp lệ: format, required fields, references |
| 3 | Merge mode | Gộp với cấu hình hiện có (chỉ thêm mới, không ghi đè) |
| 4 | Overwrite mode | Ghi đè toàn bộ cấu hình hiện có |
| 5 | Conflict UI | Hiển thị xung đột: item nào đã tồn tại, diff chi tiết, cho admin chọn |
| 6 | Dry run | Chạy thử để xem danh sách thay đổi trước khi apply thật |
Kiến trúc
Luồng import
Conflict resolution
| Tình huống | Hành vi |
|---|---|
| Collection mới | Tự động tạo (không conflict) |
| Collection đã tồn tại, cùng schema | Skip (không thay đổi) |
| Collection đã tồn tại, schema khác | Hiển thị diff, admin chọn keep/overwrite |
| Field mới trong collection cũ | Merge mode: thêm field, Overwrite: thay toàn bộ |
| UI page đã tồn tại | Hiển thị diff, admin chọn |
Thành phần client
| Thành phần | Mô tả |
|---|---|
ImportWizard | Wizard upload file, chọn mode, review changes |
ConflictResolver | Giao diện giải quyết xung đột (side-by-side diff) |
DryRunPreview | Bảng xem trước thay đổi: added, updated, conflicted |
ImportProgress | Progress bar hiển thị tiến trình import |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/server | Server framework |
@digiforce-nc/database | Database ORM |
@digiforce-nc/client | Client UI framework |
Mục lục chi tiết
(Xem trang tổng quan ở trên)