Chuyển tới nội dung chính
Phiên bản: 1.0

Phân quyền Arkon — tra cứu đầy đủ

Hai khái niệm nền: Employee.global_role là enum cố định (viewer | contributor | knowledge_manager | admin) + tư cách thành viên EmployeeDepartment (một người thuộc nhiều dept; zero-dept chỉ thấy global). Quyền có format {resource}:{action}:{scope} với own_dept vs all.

Bảng role

RoleQuyền cốt lõi (ROLE_PERMISSIONS_MAP)Là ai
viewerdoc/wiki/skill:read:own_dept, org:departments:read, org:employees:readĐọc tri thức trong dept mình + global
contributorviewer + doc:create:own_dept, wiki:write:own_dept, skill:create:own_deptUpload tài liệu, propose draft Wiki/skill
knowledge_managerdoc/wiki/skill:*:all + skill:contribution:review + org:departments:read/manage, org:employees:read/manage, org:audit:readDuyệt nội dung toàn hệ thống, quản category và department
adminALL_PERMISSIONS (bypass mọi check)Quản trị hệ thống

Chưa gán role mặc định: doc:read/create:own_dept, wiki:read/write:own_dept, skill:read:own_dept, org:departments:read.

Scope Department vs Global

  • Department: cô lập theo phòng ban (HR, Legal, Engineering…). Không có hàng liên kết department = tài liệu global (SOP/chính sách chung).
  • Out-of-scope chỉ lộ tên scope, không lộ tiêu đề/nội dung.
Đừng cấu hình theo tài liệu Workspace cũ

Tài liệu Arkon cũ còn mô tả Workspace realm + routers/projects.py, nhưng code hiện tại không còn — thực tế dùng Department / Global scope.

Ngưỡng viết vs duyệt

  • propose draft cần wiki:write:* (contributor làm được).
  • Direct edit / approve cần wiki:write:all (chỉ manager/admin) — contributor không tự duyệt bài mình.

MCP token scope

Token HMAC-SHA256, verify mỗi request (đổi role/dept/revoke hiệu lực ngay, không cache). MCP_TOKEN_PEPPER bắt buộc. User tự phục vụ ở Profile → McpTokenCard; admin cấp/thu hồi ở Employees (POST/DELETE /api/employees/{id}/token). Chi tiết dùng: Board ↔ Wiki, Skills & MCP.