18 thg 5, 2025·8 phút đọc

Thiết kế ma trận quyền cho công cụ nội bộ: vai trò và phạm vi

Thiết kế ma trận quyền giúp bạn ánh xạ vai trò, phạm vi và ngoại lệ trước khi xây màn hình và API, giảm sửa đi sửa lại và sai sót truy cập về sau.

Thiết kế ma trận quyền cho công cụ nội bộ: vai trò và phạm vi

Vấn đề mà ma trận quyền giải quyết

Công cụ nội bộ là phần mềm nhóm bạn dùng để vận hành công việc hàng ngày. Nghĩ tới bảng quản trị, dashboard vận hành, bảng điều khiển hỗ trợ, màn hình kiểm tra tài chính và các app nhỏ giúp người dùng duyệt phê duyệt, sửa dữ liệu hoặc trả lời khách hàng.

Những công cụ này chạm tới dữ liệu nhạy cảm và hành động quyền lực. Một nhân viên hỗ trợ có thể cần xem hồ sơ khách hàng nhưng không bao giờ thấy chi tiết thanh toán đầy đủ. Người làm tài chính có thể xuất hóa đơn nhưng không được sửa cài đặt tài khoản. Một trưởng ops có thể làm cả hai, nhưng chỉ trong khu vực của họ.

Quyền truy cập trở nên lộn xộn nhanh vì công cụ nội bộ phát triển theo nhiều lớp. Vai trò mới xuất hiện, vai trò cũ tách ra, và các ngoại lệ một lần chồng chất: “Cho Maria hoàn tiền”, “Ngăn nhà thầu ghi chú”, “Cho team lead phê duyệt tối đa $500.” Khi quy tắc chỉ nằm trong đầu người hoặc rải rác trong ticket, giao diện và endpoint API drift, và khoảng hở bảo mật xuất hiện.

Thiết kế ma trận quyền khắc phục điều đó bằng cách tạo bản đồ chung về ai được làm gì, với dữ liệu nào và dưới giới hạn nào. Nó trở thành nguồn sự thật cho cả quyết định UI (màn hình, nút, trường hiển thị) và quyết định backend (server cho phép gì, kể cả khi ai đó cố vượt giao diện).

Nó không chỉ dành cho developer. Một ma trận tốt là tài liệu làm việc để product, vận hành và người xây dựng cùng đồng thuận. Nếu bạn xây dựng bằng nền tảng no-code như AppMaster, ma trận vẫn rất cần thiết: nó hướng dẫn cách thiết lập vai trò, định nghĩa tài nguyên và giữ cho màn hình trực quan và endpoint sinh ra đồng bộ.

Một ma trận đơn giản giúp bạn:

  • Làm rõ quy tắc trước khi xây dựng
  • Giảm hỗn loạn “trường hợp đặc biệt”
  • Giữ cho quyền UI và API đồng bộ
  • Xem xét thay đổi truy cập mà không phải suy đoán

Thuật ngữ chính: vai trò, tài nguyên, hành động, phạm vi, ngoại lệ

Thiết kế ma trận quyền tốt bắt đầu bằng những từ dùng chung. Nếu đội bạn dùng những thuật ngữ này theo cùng một cách, bạn sẽ tránh được quy tắc lộn xộn sau này.

Một vai trò là nhóm người theo công việc, thường cần cùng loại quyền. Nghĩ tới Support, Finance, Ops, hay Manager. Vai trò nên mô tả việc họ làm hằng ngày, không phải vị trí thâm niên. Một người có thể có nhiều vai trò, nhưng nên hạn chế.

Một tài nguyên là thứ bạn bảo vệ. Trong công cụ nội bộ, tài nguyên thường là khách hàng, ticket, hóa đơn, báo cáo, tích hợp và cài đặt. Đặt tên tài nguyên như danh từ. Điều này giúp khi bạn chuyển quy tắc thành màn hình và endpoint API.

Một hành động là việc ai đó có thể làm trên tài nguyên. Giữ động từ nhất quán để ma trận dễ đọc. Các hành động điển hình gồm:

  • view
  • create
  • edit
  • delete
  • approve
  • export

Một phạm vi trả lời câu “những bản ghi nào?” mà không phải tạo thêm vai trò. Phạm vi thường là ranh giới giữa truy cập an toàn và không an toàn. Phạm vi phổ biến gồm:

  • own (bản ghi bạn tạo hoặc được giao)
  • team (nhóm của bạn)
  • region (lãnh thổ của bạn)
  • all (tất cả)

Một ngoại lệ là ghi đè phá vỡ quy tắc vai trò và phạm vi bình thường. Ngoại lệ có thể tạm thời (cho ca làm việc), theo người (chuyên viên cần thêm quyền), hoặc theo bản ghi (một khách VIP bị khóa). Xử lý ngoại lệ như nợ có kiểm soát: theo dõi ai phê duyệt, lý do và khi nào hết hạn.

Ví dụ: Một nhân viên Support có thể “xem ticket” với phạm vi “team”, nhưng có ngoại lệ ngắn hạn để “export ticket” cho một cuộc rà soát vụ việc. Trong công cụ xây trên AppMaster, kiểu quy tắc này dễ duy trì hơn nếu bạn đặt tên vai trò, tài nguyên, hành động và phạm vi nhất quán ngay từ đầu.

Quyết định cần làm trước khi vẽ ma trận

Bắt đầu bằng việc đồng ý về thứ bạn đang bảo vệ. Liệt kê các khu vực của công cụ như tài nguyên, không phải màn hình. Một màn hình có thể hiển thị “Orders”, “Refunds” và “Customers” cùng lúc, nhưng đó là những tài nguyên khác nhau với rủi ro khác nhau.

Trước khi viết phép quyền, chuẩn hóa động từ hành động. Khác biệt nhỏ về từ ngữ tạo thành quy tắc trùng lặp sau này (edit vs update, remove vs delete, view vs read). Chọn một bộ ngắn gọn và dùng nhất quán cho mọi tài nguyên. Với hầu hết công cụ nội bộ, bộ đơn giản như view, create, update, delete, approve, export là đủ.

Phạm vi là quyết định tiếp theo, và nên khớp với cách công ty bạn đã nghĩ. Quá nhiều phạm vi khiến ma trận khó đọc; quá ít khiến ngoại lệ liên tục. Nhắm tới một tập nhỏ phù hợp cấu trúc tổ chức, ví dụ:

  • own (bản ghi bạn tạo)
  • team (bản ghi của nhóm bạn)
  • location (chi nhánh hoặc vùng)
  • all (tất cả)
  • none (không truy cập)

Bạn cũng cần quy tắc rõ cho “không”. Quyết định điều gì bị cấm rõ ràng so với bị từ chối ngầm. Từ chối ngầm (anything not listed is denied) an toàn và đơn giản hơn. Cấm rõ ràng hữu ích khi bạn có quyền rộng nhưng muốn chặn hành động cụ thể, ví dụ “Finance truy cập tất cả hóa đơn nhưng không được delete.”

Cuối cùng, đánh dấu các hành động nhạy cảm sớm, trước khi chúng bị chôn trong lưới. Export, delete, payout, thay đổi vai trò và truy cập dữ liệu cá nhân cần chú ý thêm, ghi log và thường là bước phê duyệt. Ví dụ, bạn có thể cho support lead cập nhật hồ sơ khách hàng, nhưng yêu cầu approval từ finance trước khi tạo hay xuất payout.

Nếu bạn xây trong AppMaster, những quyết định này sẽ ánh xạ rõ ràng đến endpoint phía backend và Business Process sau này, nhưng ma trận phải rõ trước.

Từng bước: xây ma trận quyền từ đầu

Bắt đầu từ công việc mọi người làm, không phải màn hình dự định. Nếu bạn bắt đầu với màn hình, bạn sẽ sao chép giao diện hiện tại và bỏ qua quy tắc thực sự (như ai được phê duyệt hoàn tiền, hay ai được sửa hồ sơ khách hàng sau khi bị khóa).

Cách đơn giản để thiết kế ma trận là coi nó như bản đồ từ tác vụ đến quyền, rồi chuyển thành ứng dụng sau.

Thứ tự xây dựng thực tế

  1. Liệt kê tác vụ nghiệp vụ bằng ngôn ngữ đơn giản. Ví dụ: “Thực hiện hoàn tiền”, “Thay email khách hàng”, “Xuất hóa đơn cho tháng trước”. Giữ ngắn và thực tế.

  2. Biến tác vụ thành tài nguyên và hành động. Tài nguyên là danh từ (Invoice, Ticket, Customer), hành động là động từ (view, create, edit, approve, export). Giao một người chịu trách nhiệm cho mỗi tài nguyên: người có thể giải thích các trường hợp cạnh và nói “đúng, như vậy”.

  3. Định nghĩa vai trò dựa trên đội ổn định. Dùng nhóm như Support, Finance, Operations, Team Lead. Tránh dùng chức danh thay đổi thường xuyên (Senior, Junior) trừ khi thực sự thay đổi quyền.

  4. Điền ma trận với quyền tối thiểu mỗi vai trò cần để hoàn thành tác vụ. Nếu Support chỉ cần view hóa đơn để trả lời câu hỏi, đừng cấp “export” mặc định. Bạn luôn có thể thêm sau, nhưng bớt sau sẽ phá thói quen.

  5. Thêm phạm vi chỉ nơi cần thiết. Thay vì một quyền “edit” chung, ghi rõ phạm vi như “edit own”, “edit assigned”, hoặc “edit all”. Điều này giữ quy tắc rõ mà không tạo ra 50 vai trò.

Ghi các ngoại lệ trong bảng riêng, không để lẫn trong ma trận. Mỗi ngoại lệ cần trường lý do rõ ràng (compliance, nguy cơ gian lận, phân tách nhiệm vụ) và một chủ sở hữu duy nhất phê duyệt.

Khi xong, các công cụ như AppMaster giúp chuyển ma trận thành endpoint được bảo vệ và màn hình admin mà không phải đoán quy tắc khi xây.

Cấu trúc ma trận để giữ tính sử dụng

Biến ma trận của bạn thành ứng dụng
Xây dựng công cụ nội bộ an toàn với vai trò, phạm vi và kiểm soát phía máy chủ ngay từ đầu.
Dùng thử AppMaster

Ma trận chỉ hữu dụng nếu mọi người có thể đọc nhanh. Nếu nó trở thành một mảng ô khổng lồ, đội ngừng dùng và quyền đi chệch ý định.

Bắt đầu bằng cách tách ma trận theo miền. Thay vì một sheet cho mọi thứ, dùng một tab cho mỗi mảng nghiệp vụ như Customers, Billing, Content. Hầu hết vai trò chỉ chạm vài miền, giúp rà soát nhanh và giảm thay đổi nhầm.

Dùng mẫu đặt tên nhất quán trên các tab. Định dạng đơn giản như Resource.Action.Scope khiến mỗi quyền rõ nghĩa và tránh trùng lặp. Ví dụ Invoice.Approve.Department đọc cùng kiểu với Customer.Edit.Own.

Khi gặp trường hợp cạnh, kiềm chế không tạo vai trò mới. Thêm chú thích ngắn cạnh ô mô tả ngoại lệ và khi áp dụng. Ví dụ: Support có thể view hóa đơn nhưng chỉ sau khi khách hàng xác minh danh tính. Ghi chú cũng có thể chỉ tới bước UI bổ sung cần làm mà không thay đổi mô hình vai trò.

Đánh dấu quyền rủi ro cao để nổi bật khi rà soát. Đó là các hành động như refunds, approvals, exports, delete. Ghi rõ điều kiện kiểm soát kèm theo, ví dụ phê duyệt hai người hoặc xác nhận chỉ dành manager.

Để ma trận duy trì theo thời gian, phiên bản hóa nó như một tài liệu thực:

  • v1, v2, v.v. kèm ngày
  • owner (một người chịu trách nhiệm)
  • tóm tắt thay đổi ngắn
  • nguyên nhân kích hoạt thay đổi (quy trình mới, audit yêu cầu)

Khi ma trận ổn định, dễ dàng hơn để xây màn hình và endpoint trong AppMaster, vì mỗi nút và hành động API ánh xạ tới một tên quyền rõ ràng.

Biến ma trận thành màn hình và endpoint

Ma trận chỉ hữu dụng nếu nó trở thành quy tắc thực sự ở hai nơi: API và UI. Bắt đầu bằng cách coi mỗi tài nguyên trong ma trận (Tickets, Invoices, Users) là một nhóm endpoint. Giữ hành động khớp với động từ trong ma trận: view, create, edit, approve, export, delete.

Phía API, kiểm tra quyền trên mọi request. Kiểm tra UI hữu ích cho trải nghiệm, nhưng không phải là bảo mật. Một nút ẩn không ngăn được cuộc gọi trực tiếp tới API.

Cách đơn giản chuyển ma trận thành quyền API là đặt tên quyền nhất quán và gán tại ranh giới nơi hành động xảy ra:

  • tickets:view, tickets:edit, tickets:export
  • invoices:view, invoices:approve, invoices:delete
  • users:view, users:invite

Rồi dùng cùng tên quyền để điều khiển UI: mục menu, truy cập trang, nút, thậm chí trường nhập. Ví dụ, nhân viên Support có thể thấy danh sách Ticket và mở ticket, nhưng trường “Refund” chỉ có thể sửa nếu họ có invoices:approve.

Cẩn thận giữa quyền danh sách và chi tiết. Đội thường cần “thấy rằng có mục đó” mà không cần thấy bản ghi chi tiết. Điều đó nghĩa là bạn có thể cho phép danh sách trả về với các cột hạn chế, nhưng chặn mở bản ghi chi tiết trừ khi user có quyền detail (hoặc vượt qua kiểm tra phạm vi như “assigned to me”). Quyết định sớm để không xây màn danh sách rò rỉ dữ liệu nhạy cảm.

Cuối cùng, ánh xạ ghi audit tới các hành động quan trọng. Export, delete, approve, thay đổi vai trò và tải dữ liệu nên tạo event audit với ai, làm gì, khi nào và đối tượng mục tiêu. Nếu xây trong AppMaster, bạn có thể đặt điều này trong logic endpoint và business process để cùng quy tắc kích hoạt hành động và ghi audit.

Sai lầm thường gặp và bẫy

Ánh xạ tài nguyên vào cơ sở dữ liệu
Mô hình hóa tài nguyên trong Data Designer và giữ quyền gắn với thực thể thật.
Bắt đầu xây dựng

Con đường nhanh nhất làm hỏng ma trận là mô hình hóa UI thay vì nghiệp vụ. Một màn hình có thể hiển thị nhiều thứ, và cùng một mục có thể xuất hiện trên nhiều màn. Nếu bạn coi mỗi màn là tài nguyên riêng, bạn sẽ sao chép quy tắc, bỏ sót cạnh và tranh cãi về đặt tên thay vì truy cập.

Bẫy khác là tạo quá nhiều vai trò. Các đội liên tục thêm vai trò (Support Level 1, Level 2, Support Manager...) khi một tập vai trò nhỏ cộng phạm vi rõ ràng đã đủ. Phạm vi như “own team”, “assigned region” hay “accounts you manage” giải thích khác biệt tốt hơn vai trò mới.

Một vài lỗi thường thấy:

  • Định nghĩa chỉ “view” và “edit” rồi quên các hành động như export, bulk edit, refund, impersonate, hoặc “change owner”.
  • Dùng ngoại lệ như bản vá dài hạn. Các cấp quyền tạm thời nhanh chóng thành vĩnh viễn và che dấu mô hình vai trò bị lỗi.
  • Ẩn nút trong UI và nghĩ là an toàn. API vẫn phải từ chối request nếu user tìm được endpoint.
  • Không quyết định điều gì xảy ra khi phạm vi của ai đó thay đổi, như chuyển team hoặc đổi vùng. Quyền phải cập nhật dự đoán được, không drift.
  • Xem “admin” như vô hạn mà không có giới hạn. Ngay cả admin cũng nên có tách bạch, ví dụ “có thể quản lý user” nhưng “không được approve payout”.

Ngoại lệ cần thận trọng. Hữu dụng cho tình huống tạm thời, nhưng phải hết hạn hoặc được rà soát. Nếu ngoại lệ cứ tăng, đó là dấu vai trò hoặc phạm vi không được ánh xạ rõ.

Ví dụ nhanh: trong công cụ support và finance, Support có thể view hồ sơ khách hàng và tạo ticket, còn Finance có thể export hóa đơn và thực hiện refund. Nếu bạn chỉ bảo vệ trang, một nhân viên Support vẫn có thể gọi API export trực tiếp. Dù bạn dùng code tuỳ chỉnh hay nền tảng như AppMaster sinh endpoint backend, quy tắc phải nằm ở server, không chỉ ở UI.

Checklist nhanh trước khi bắt đầu xây

Giữ vai trò đơn giản và ổn định
Định nghĩa một tập vai trò rõ ràng ngay bây giờ, sau đó xử lý ngoại lệ bằng phạm vi thay vì sinh role quá nhiều.
Đặt vai trò

Ma trận chỉ hữu dụng khi nó biến thành quy tắc rõ ràng, có thể cưỡng chế. Trước khi tạo màn hoặc endpoint đầu tiên, chạy qua checklist này để tránh trạng thái “gần đủ an toàn” sẽ vỡ khi có vai trò hay ngoại lệ mới.

Xây quy tắc trước, rồi xây UI

Bắt đầu với mindset deny mặc định: mọi thứ không được phép rõ ràng đều bị chặn. Đây là cơ sở an toàn nhất và ngăn truy cập bất ngờ khi bạn thêm tính năng mới.

Đảm bảo có một nguồn sự thật cho quyền. Dù nó nằm trong tài liệu, bảng dữ liệu hay cấu hình no-code, mọi người phải biết nơi quy tắc hiện tại. Nếu spreadsheet nói khác app làm khác, bạn sẽ phát hành bug.

Đây là checklist ngắn gọn trước xây dựng cho thiết kế ma trận:

  • Default deny được thi hành mọi nơi (nút UI, endpoint API, export, background jobs).
  • Mỗi hành động có định nghĩa phạm vi rõ ràng (own record, team, region, all, hoặc tập tên cụ thể).
  • Khả năng admin tách biệt khỏi hành động nghiệp vụ (quản lý vai trò khác với “approve refund”).
  • Hành động nhạy cảm yêu cầu kiểm soát mạnh hơn (phê duyệt, ghi log, và lý tưởng có cảnh báo hoạt động bất thường).
  • Ngoại lệ có owner và ngày hết hạn, để “quyền tạm thời” không thành vĩnh viễn.

Sau đó, kiểm tra quy tắc với một kịch bản thực tế. Ví dụ: “Một nhân viên support có thể xem order và thêm ghi chú cho vùng của họ, nhưng không được sửa giá hay hoàn tiền. Finance có thể hoàn tiền nhưng chỉ sau phê duyệt của manager, và mọi refund đều được ghi log.” Nếu bạn không thể tóm tắt trong một hai câu, phạm vi và ngoại lệ chưa rõ.

Nếu bạn xây trong AppMaster, coi những mục này là yêu cầu cho cả màn và business logic, không chỉ UI. Nút có thể ẩn hành động, nhưng chỉ quy tắc backend mới thực sự cưỡng chế.

Ví dụ tình huống: công cụ nội bộ cho support và finance

Tưởng tượng công ty cỡ trung sử dụng một công cụ nội bộ cho Support và Finance. Cùng database chứa Customers, Tickets, Refunds, Payouts và một vùng Settings nhỏ (mẫu và tích hợp). Đây là loại app mà kiểm tra đăng nhập đơn giản không đủ.

Các vai trò họ bắt đầu với:

  • Support Agent: xử lý ticket trong một hàng đợi
  • Support Lead: hỗ trợ các hàng đợi và phê duyệt một số hành động
  • Finance: xử lý công việc liên quan tiền
  • Ops Admin: quản lý quyền truy cập và cài đặt hệ thống

Ma trận bắt đầu bằng việc viết hành động cho mỗi tài nguyên, rồi siết bằng phạm vi.

Với Tickets, Support Agent có thể view và update trạng thái ticket chỉ với ticket trong queue được giao. Họ có thể thêm ghi chú nhưng không được đổi owner. Support Lead có mọi quyền Support Agent có, cộng thêm khả năng chuyển ticket trong vùng của họ.

Với Refunds, Finance có thể tạo và approve refund, nhưng chỉ tới một mức số tiền. Support có thể tạo yêu cầu refund, nhưng không thể approve. Phê duyệt refund là hành động tách biệt khỏi tạo refund, vì vậy nó luôn hiển thị trong ma trận và không nên cấp nhầm.

Với Payouts và Settings, công cụ giữ chặt: chỉ Finance xem payouts, chỉ Ops Admin thay đổi Settings. Support thậm chí không thấy các màn này, giảm cám dỗ và lỗi.

Thêm ngoại lệ: Support Lead cover vùng khác hai tuần. Thay vì cho họ vai trò Ops Admin rộng, ma trận có thể thêm mở rộng phạm vi tạm thời (Support Lead + Region B, hết hạn ngày X). Ngoại lệ đó an toàn hơn là sao chép quyền qua vai trò.

Nếu bạn xây trong AppMaster, ma trận sẽ hướng dẫn trang hiển thị và endpoint backend cho phép, nên ai cũng không thể truy cập Payouts hay Settings bằng cách đoán API.

Cách kiểm thử và duy trì quyền theo thời gian

Đặt đăng nhập phía sau mọi công cụ
Bắt đầu với xác thực cơ bản để quy tắc truy cập có nền tảng đáng tin cậy.
Thêm xác thực

Quyền thường thất bại bằng những lỗi nhỏ: một màn quên ẩn nút, một endpoint quên kiểm tra, một phạm vi khớp quá rộng. Ma trận hữu dụng hơn khi bạn biến nó thành test có thể lặp và quy trình bảo trì đơn giản.

Bắt đầu với một tập user test nhỏ. Không cần nhiều tài khoản. Tạo một user cho mỗi vai trò, cộng một user “cạnh” cho mỗi ngoại lệ phổ biến (ví dụ “Support agent có quyền approve refund”). Giữ các account này ổn định để đội tái sử dụng mỗi sprint.

Rồi biến ma trận thành test case. Với mỗi quy tắc, viết một đường “được phép” và một đường “bị từ chối”. Đường bị từ chối phải cụ thể (phải xảy ra gì) để không bị lờ đi.

  • Role: Support Agent. Action: Refund. Kỳ vọng: bị từ chối với thông điệp rõ, không có dữ liệu thay đổi.
  • Role: Finance. Action: Refund. Kỳ vọng: được phép, tạo record refund, ghi log actor và lý do.
  • Role: Manager. Action: View tickets. Scope: team only. Kỳ vọng: xem ticket của team, không mở ticket của team khác.

Kiểm thử cùng quy tắc hai lần: trên UI và API. Nếu UI chặn nhưng API vẫn cho phép, ai đó có thể vượt giao diện. Nếu bạn xây bằng AppMaster, kiểm tra cả logic UI và endpoint backend cùng thực thi quy tắc.

Phạm vi cần dữ liệu thật để kiểm thử. Tạo record test khác nhau theo ownership, team, region. Xác minh bạn không thể “đoán” ID ngoài phạm vi và truy cập.

Cuối cùng, quyết định ghi log gì cho hành động nhạy cảm (refund, export, thay đổi quyền). Ghi ai làm, thay đổi gì, khi nào và từ đâu. Rà soát log định kỳ, và thêm cảnh báo cho hành động hiếm như chỉnh quyền hay export hàng loạt.

Bước tiếp theo: từ ma trận sang công cụ nội bộ hoạt động

Xem ma trận như kế hoạch xây, không phải tài liệu để cất. Cách nhanh nhất có giá trị là xác nhận cơ bản với người chịu trách nhiệm dữ liệu và quy trình.

Bắt đầu với workshop ngắn (30 phút đủ) với một đại diện mỗi vai trò và “resource owners” (người chịu trách nhiệm Customers, Invoices, Payouts, Tickets...). Đi qua vai trò, tài nguyên, hành động và phạm vi, và nêu các “trường hợp đặc biệt”. Nếu một ngoại lệ có vẻ phổ biến, có thể đó là dấu hiệu thiếu một phạm vi.

Rồi soạn ma trận v1 và review tập trung với resource owners. Giữ thực dụng: “Support có thể view invoice không?” “Finance có thể sửa chi tiết khách hàng không?” Nếu ai đó do dự, ghi quy tắc bằng ngôn ngữ đơn giản trước, rồi chính thức hoá sau.

Khi v1 được đồng thuận, xây một miền end-to-end trước khi mở rộng. Chọn lát mỏng chạm dữ liệu, logic và UI (ví dụ: Ticketing hoặc phê duyệt Invoice). Bạn phải trả lời được: ai xem được, ai thay đổi được, và chuyện gì xảy ra khi họ cố.

Nếu dùng AppMaster, ánh xạ ma trận vào các phần sản phẩm trước khi sinh bất cứ thứ gì:

  • Data Designer: đồng bộ tài nguyên với entity (table) và trường khoá ảnh hưởng phạm vi (ví dụ team_id, region_id)
  • Business Processes: áp quy tắc nơi thay đổi xảy ra (create, update, approve, export)
  • UI visibility rules: ẩn hành động người dùng không thể làm và cho thông báo rõ lý do khi bị từ chối
  • Endpoints: mở chỉ những gì mỗi vai trò cần, tách chức năng admin riêng

Ví dụ đơn giản: xây flow “Yêu cầu hoàn tiền” với hai vai trò (Support tạo, Finance phê duyệt). Khi đó hoạt động trơn tru, bạn mới thêm cạnh như “Support chỉ có thể hủy trong 30 phút.”

Thử một công cụ nội bộ nhỏ trong AppMaster để kiểm chứng vai trò và flow sớm, rồi lặp từ ma trận. Mục tiêu là phát hiện hiểu lầm trước khi bạn có 20 màn và một đống sửa quyền.

Dễ dàng bắt đầu
Tạo thứ gì đó tuyệt vời

Thử nghiệm với AppMaster với gói miễn phí.
Khi bạn sẵn sàng, bạn có thể chọn đăng ký phù hợp.

Bắt đầu