Giao diện
@digiforce-nc/plugin-multi-space
Plugin đa không gian làm việc — cho phép một instance Digiforce phục vụ nhiều workspace (space) độc lập, mỗi space có dữ liệu và cấu hình riêng.
Plugin này làm gì?
Tương tự concept workspace trong Slack hoặc Notion. Plugin cho phép tạo nhiều space trên cùng một instance: mỗi space có collection, data, permission và UI riêng biệt. User có thể thuộc nhiều space và chuyển đổi giữa chúng.
Sáu nhiệm vụ chính
| # | Nhiệm vụ | Chi tiết |
|---|---|---|
| 1 | Multi-space | Nhiều workspace độc lập trên cùng instance |
| 2 | Data isolation | Dữ liệu cách ly hoàn toàn giữa các space |
| 3 | Space switching | Chuyển đổi space nhanh qua header hoặc UI |
| 4 | Per-space config | Cấu hình riêng (theme, menu, settings) cho từng space |
| 5 | Cross-space user | User thuộc nhiều space với role khác nhau |
| 6 | Space admin | Mỗi space có admin riêng quản lý users và permissions |
Kiến trúc
Cách ly dữ liệu
Space routing
| Phương thức | Ví dụ | Cách xác định |
|---|---|---|
| Header | X-Space: marketing | Client gửi header trong mỗi request |
| Subdomain | marketing.app.com | Tự detect từ hostname |
| Path prefix | /spaces/marketing/api/... | Parse từ URL path |
API endpoints
| Endpoint | Mô tả |
|---|---|
spaces:create | Tạo space mới |
spaces:list | Danh sách space user thuộc về |
spaces:update | Cập nhật cấu hình space |
spaces:destroy | Xóa space (admin toàn cục) |
spaces:invite | Mời user vào space |
spaces:members | Danh sách thành viên của space |
Database
| Bảng | Mô tả |
|---|---|
spaces | Định nghĩa space: tên, slug, cấu hình, trạng thái |
spaceMembers | Liên kết user ↔ space (M2M), kèm role trong space |
Thành phần client
| Thành phần | Mô tả |
|---|---|
SpaceSwitcher | Dropdown chuyển đổi space hiện tại |
SpaceManager | Trang quản lý danh sách space |
SpaceSettings | Cài đặt riêng cho space (theme, menu, branding) |
InviteToSpace | Dialog mời user vào space |
SpaceMemberList | Danh sách thành viên và phân role |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/server | Server framework |
@digiforce-nc/database | Database ORM |
@digiforce-nc/client | Client UI framework |
@digiforce-nc/plugin-acl | Phân quyền per-space |
Mục lục chi tiết
(Xem trang tổng quan ở trên)