Phân quyền tốt giúp app vận hành ổn định: đúng người, đúng việc, đúng dữ liệu.
Các khái niệm cốt lõi
Role (vai trò)
- Role đại diện cho nhóm người có cùng trách nhiệm trong app (Requester, Approver, Operator…).
- Role quyết định quyền xem/sửa và phạm vi dữ liệu được thao tác.
App members (thành viên app)
- Người dùng được mời vào app thường được gán role.
- Không có role phù hợp thường dẫn đến lỗi “không thấy view/không sửa được”.
Permission levels (mức quyền)
Từ góc nhìn người dùng (khái quát):- View: xem dữ liệu
- Edit: sửa dữ liệu trong phạm vi cho phép
- Manage/Admin: cấu hình app (chỉ dành cho builder/quản trị)
Tên mức quyền có thể khác theo UI, nhưng ý nghĩa thường tương đương.
Phạm vi quyền (scope)
Object-level (theo đối tượng)
- Quyền trên entity, view, workflow, data source…
- Ví dụ: được xem entity Orders nhưng không được quản lý workflow
Record-level (theo record)
- Quy định người dùng được thấy record nào (tất cả / theo điều kiện / theo ownership)
- Ví dụ: requester chỉ thấy record do mình tạo; operator thấy toàn bộ
Field-level (theo field)
- Cho phép hạn chế sửa một số field theo role hoặc theo trạng thái
- Dùng để giữ “source of truth” và giảm rủi ro sửa sai
Mẫu phân quyền thường dùng
Requester / Approver / Operator
- Requester: tạo và theo dõi yêu cầu, không chỉnh sửa phần xử lý nội bộ
- Approver: xem thông tin cần duyệt, quyết định approve/reject
- Operator: xử lý nghiệp vụ, cập nhật trạng thái và dữ liệu vận hành
Permission checklist khi gặp lỗi
Nếu “không thấy dữ liệu” hoặc “không thao tác được”, kiểm tra theo thứ tự:- Người dùng có được mời vào app chưa?
- Role có đúng không?
- View có bị ẩn theo role không?
- Record visibility có chặn không?
- Workflow/step có yêu cầu role cụ thể không?
Liên quan đến chia sẻ dữ liệu giữa app
Khi publish/consume dữ liệu:- Chỉ publish những field cần thiết (nguyên tắc tối thiểu)
- Kiểm tra quyền xem dữ liệu nguồn và quyền dùng data source ở app đích
