Skip to content

PRD: Phân quyền theo phạm vi từng merchant

ModulePhân quyềnPRD IDPRD-EFF-001
Trạng tháiSẵn sàng devFEATEFF · BANA-1436
EpicPlaneBANA-1548
Ngày2026-06-04Phiên bảnv1.0
Gói@nx/identityURDEFF
SurfaceBackend
Phụ tráchPhát Nguyễn

Phân quyền theo phạm vi từng merchant là gì

Tập trung phân quyền lên một policy engine theo merchant, để mọi verifier service enforce các grant trong merchant đang hoạt động được chọn theo từng request, và giải quyết những merchant/organizer mà người dùng tiếp cận được từ kho policy phân quyền thay vì lọc theo request context rải rác. Kết quả: "người dùng này thấy và làm được gì ở đây" trở thành một câu trả lời nhất quán, dựa trên policy, xuyên suốt commerce, finance và inventory - với cô lập theo merchant và tôn trọng soft-delete.

Vì sao cần tập trung lại

Phân quyền trong BANA ban đầu được điều khiển bằng lọc theo request context: mỗi service tự suy ra những organization và merchant mà người dùng tiếp cận được từ request rồi lọc thủ công các truy vấn của mình. Điều này khiến "người dùng này thấy được gì" trở nên ngầm định, lặp lại khắp các service, và không thể suy luận tại một nơi duy nhất - đồng thời không có chỗ chung nào để giải quyết một grant trong merchant đang hoạt động mà request đang hoạt động trên đó.

Một engine scoped-RBAC tập trung trên mọi verifier service lấp khoảng trống này: phân quyền cấp route được enforce theo cùng một cách ở mọi nơi qua policy engine, và tầm với merchant của HQ được mở rộng từ membership organizer/merchant thay vì phỏng đoán theo từng request. Vì BANA cần nạp policy tôn trọng soft-delete và theo từng merchant, platform core cung cấp hợp đồng entity, cờ soft-delete và domain resolver theo merchant cho scoped Casbin adapter của framework - không phải sửa framework. Inventory là bề mặt thí điểm đầu tiên; các coarse role grant nay đã được seed trên mọi module/verifier service.

Chỗ dễ sai nhất

Merchant đang hoạt động quyết định phạm vi, không phải quyền của người dùng

Quyền của một người dùng (họ được làm gì) và merchant đang hoạt động của request (họ đang thao tác ở đâu) là hai câu hỏi khác nhau. Một quyền được cấp trên một merchant chỉ có hiệu lực khi người dùng đang thao tác đúng merchant đang hoạt động của request đó - chuyển sang merchant khác, quyền đó không tự áp dụng theo dù người dùng không đổi.

Đây cũng là lý do một Owner sở hữu nhiều merchant vẫn phải đổi merchant đang hoạt động trên giao diện để thao tác ở merchant khác, thay vì thấy gộp dữ liệu của mọi merchant cùng lúc.

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.