Giao diện
@digiforce-nc/plugin-backup-restore
Plugin sao lưu và phục hồi ứng dụng — dump database, download/upload backup file, restore toàn bộ hoặc migration giữa các môi trường.
Plugin này làm gì?
Hãy hình dung một hệ thống sao lưu và phục hồi như két sắt an toàn: bạn có thể chụp lại toàn bộ trạng thái ứng dụng (database, cấu hình) vào một file backup, cất giữ an toàn, và khi cần thì khôi phục lại đúng trạng thái đó — như quay ngược thời gian.
Ba nhiệm vụ chính
| # | Nhiệm vụ | Chi tiết |
|---|---|---|
| 1 | Sao lưu (Backup) | Dump toàn bộ database thành file backup, lưu trên disk |
| 2 | Phục hồi (Restore) | Upload hoặc chọn backup file, khôi phục lại trạng thái database |
| 3 | Migration | Chuyển dữ liệu giữa môi trường (dev → staging → production) |
Kiến trúc
Tổng quan 4 tầng
| Tầng | Vai trò | Thành phần |
|---|---|---|
| Client UI | Tạo backup, xem danh sách, restore | BackupAndRestoreList, DuplicatorProvider |
| Server API | Xử lý dump, restore, upload | Dumper, Restorer, AppMigrator |
| Database | Nguồn dữ liệu / đích khôi phục | Toàn bộ collection trong hệ thống |
| Backup Files | File backup trên disk | Không lưu trong DB, lưu trực tiếp trên filesystem |
API endpoints
| Endpoint | Mô tả |
|---|---|
backupFiles:list | Danh sách backup file hiện có |
backupFiles:get | Chi tiết một backup file |
backupFiles:create | Tạo backup mới (trigger dump) |
backupFiles:download | Download backup file |
backupFiles:upload | Upload backup file từ máy tính |
backupFiles:restore | Phục hồi từ backup file |
backupFiles:destroy | Xóa backup file |
backupFiles:dumpableCollections | Danh sách collection có thể backup |
Luồng Backup & Restore
| Thành phần | Chức năng |
|---|---|
Dumper | Đọc dữ liệu từ DB, đóng gói thành backup file |
Restorer | Đọc backup file, ghi ngược vào DB |
AppMigrator | Xử lý migration giữa phiên bản/môi trường khác nhau |
| CLI restore | Command digiforce restore cho restore từ terminal |
| Multer upload | Middleware nhận file backup từ client |
Database
Plugin này không tạo bảng riêng — backup files được lưu trực tiếp trên filesystem (thư mục storage/backups). Metadata file (tên, ngày tạo, kích thước) được đọc từ filesystem.
Thành phần client
| Thành phần | Mô tả |
|---|---|
DuplicatorProvider | Context provider cho tính năng backup/restore |
BackupAndRestoreList | Trang danh sách backup, nút tạo/restore/download/xóa |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/actions | Action context types (peer) |
@digiforce-nc/database | Database ORM (peer) |
@digiforce-nc/server | Server framework (peer) |
@digiforce-nc/client | Client framework (peer) |