Một công ty logistics tại TP.HCM phục vụ 30 chủ hàng khác nhau — từ doanh nghiệp FDI nhập linh kiện điện tử, đến hộ kinh doanh xuất gạo, đến công ty thương mại nhập hàng tiêu dùng. Mỗi chủ hàng có hồ sơ riêng, mã số thuế riêng, danh mục hàng hóa riêng và yêu cầu bảo mật thông tin khác nhau.
Nếu toàn bộ 30 chủ hàng này đều nằm trong cùng một không gian làm việc, rủi ro rất rõ ràng: khai báo viên A vô tình xem được chứng từ của chủ hàng B, dữ liệu bị trộn lẫn, hoặc nhân viên mới có thể thao tác nhầm sang hồ sơ không liên quan.
TKHQ giải quyết bài toán này bằng kiến trúc Workspace multi-tenant kết hợp RBAC (Role-Based Access Control) chi tiết theo từng vai trò.
Workspace là gì? Cách ly dữ liệu ở cấp độ row
Trong TKHQ, Workspace là đơn vị tổ chức cao nhất — tương đương một doanh nghiệp hoặc một pháp nhân độc lập. Mỗi workspace có:
- Namespace riêng biệt: tờ khai, chứng từ, lịch sử khai báo trong workspace A hoàn toàn không hiển thị trong workspace B, dù cùng một tài khoản người dùng
- Row-level isolation: ở tầng database, mỗi bản ghi được gắn
workspace_id. Mọi query đều bắt buộc kèm filter theo workspace hiện tại — không có đường nào bypass - Token wallet độc lập: quota token của workspace A không chia sẻ với workspace B, ngay cả khi cùng subscription plan
- Cài đặt riêng: thông tin công ty, con dấu, chữ ký số, cài đặt thông quan — mỗi workspace quản lý độc lập
Với mô hình này, một forwarder có thể tạo một workspace cho mỗi chủ hàng và toàn quyền kiểm soát ai được truy cập vào workspace nào. Khai báo viên phụ trách khách hàng X chỉ thấy dữ liệu của X — không hơn, không kém.
4 vai trò RBAC — ai làm được gì?
TKHQ định nghĩa 4 cấp độ quyền hạn trong mỗi workspace. Bảng dưới đây tóm tắt các quyền quan trọng nhất:
| Quyền hạn | OWNER | ADMIN | MEMBER | VIEWER |
|---|---|---|---|---|
| Xem tờ khai và chứng từ | ✓ | ✓ | ✓ | ✓ |
| Tạo / chỉnh sửa tờ khai | ✓ | ✓ | ✓ | ✗ |
| Submit tờ khai lên VNACCS | ✓ | ✓ | ✓ | ✗ |
| Upload chứng từ mới | ✓ | ✓ | ✓ | ✗ |
| Mời thành viên mới | ✓ | ✓ | ✗ | ✗ |
| Thay đổi vai trò thành viên | ✓ | ✓ | ✗ | ✗ |
| Xem audit log | ✓ | ✓ | ✗ | ✗ |
| Quản lý subscription / billing | ✓ | ✗ | ✗ | ✗ |
| Xoá workspace | ✓ | ✗ | ✗ | ✗ |
| Xuất toàn bộ dữ liệu workspace | ✓ | ✓ | ✗ | ✗ |
OWNER là vai trò duy nhất có quyền billing và xoá workspace. Thường là giám đốc hoặc kế toán trưởng của doanh nghiệp.
ADMIN là quản lý vận hành — trưởng nhóm khai báo, có thể mời thêm người và xem audit log để giám sát hoạt động.
MEMBER là khai báo viên thực tế — làm việc hàng ngày với tờ khai và chứng từ, không được can thiệp vào quản trị workspace.
VIEWER phù hợp cho kiểm toán viên, kế toán nội bộ, hoặc khách hàng muốn theo dõi tiến độ thông quan mà không cần chỉnh sửa.
Mời thành viên — invite link 7 ngày và duyệt tự động
Quy trình thêm thành viên vào workspace được thiết kế để nhanh nhưng có kiểm soát:
- OWNER hoặc ADMIN vào Settings → Members → Invite
- Chọn vai trò mặc định cho người được mời (có thể thay đổi sau)
- Hệ thống tạo invite link có thời hạn 7 ngày hoặc gửi email trực tiếp
- Người nhận click link → tạo tài khoản (nếu chưa có) → tự động join workspace với vai trò đã thiết lập
Nếu OWNER bật chế độ manual approval, người dùng join qua link sẽ ở trạng thái “Pending” cho đến khi ADMIN duyệt thủ công. Chế độ này phù hợp với workspace chứa dữ liệu nhạy cảm hoặc khi forwarder muốn kiểm soát chặt chẽ ai có quyền truy cập hồ sơ chủ hàng.
Invite link có thể revoke bất kỳ lúc nào trước khi hết hạn — hữu ích khi nhân viên nghỉ việc hoặc cần thay đổi kế hoạch nhân sự.
Switch workspace 1 click — Redis cache dưới 50ms
Một khai báo viên senior tại công ty logistics lớn có thể đồng thời là MEMBER trong 5–10 workspace khác nhau. Việc chuyển đổi giữa các workspace cần cực kỳ nhanh để không làm gián đoạn luồng làm việc.
TKHQ lưu trữ danh sách workspace của từng người dùng trong Redis cache với TTL 5 phút. Thao tác switch workspace diễn ra trong dưới 50ms — bạn click tên workspace trong header, trang reload với toàn bộ context mới (tờ khai, chứng từ, cài đặt) của workspace đó.
Workspace hiện tại được persist trong session — khi mở tab mới hoặc reload trang, hệ thống tự khôi phục đúng workspace bạn đang làm việc, không cần chọn lại từ đầu.
Thanh workspace switcher trên header hiển thị tối đa 5 workspace gần dùng nhất để truy cập nhanh. Nếu bạn thuộc nhiều hơn 5 workspace, thanh tìm kiếm cho phép search theo tên workspace trong vòng chưa đầy 2 giây.
Audit log — bằng chứng cho PCA kiểm tra sau thông quan
Sau khi hàng thông quan, cơ quan hải quan có thể tiến hành kiểm tra sau thông quan (PCA) — yêu cầu doanh nghiệp xuất trình hồ sơ và chứng minh tính hợp lệ của khai báo. Trong một số trường hợp tranh chấp, câu hỏi đặt ra là: ai đã thay đổi gì, vào lúc nào?
TKHQ ghi lại mọi thao tác quan trọng trong Audit Log với timestamp UTC chính xác đến mili-giây:
- Tạo / chỉnh sửa / xoá tờ khai
- Upload / xoá chứng từ
- Submit tờ khai lên VNACCS
- Thay đổi thông tin thành viên và vai trò
- Export dữ liệu workspace
Audit Log có thể xuất ra CSV để nộp cho kiểm toán viên hoặc cơ quan hải quan khi cần. Mỗi entry ghi rõ: user email, IP address, loại hành động, ID đối tượng bị thay đổi, và snapshot trước/sau khi thay đổi.
ADMIN và OWNER có thể xem Audit Log tại Settings → Audit Log. Bộ lọc cho phép tìm kiếm theo khoảng thời gian, theo user, hoặc theo loại hành động cụ thể.
OWNER là vai trò không thể khôi phục nếu mất
OWNER là vai trò duy nhất có thể xoá workspace. Mỗi workspace cần ít nhất 1 OWNER hoạt động. Nếu OWNER duy nhất rời công ty mà chưa chuyển giao quyền cho người khác, workspace sẽ cần quy trình xác minh danh tính để phục hồi quyền OWNER — có thể mất 3–5 ngày làm việc.
Thực hành tốt nhất: luôn có ít nhất 2 OWNER trong mỗi workspace quan trọng.
Best practice phân quyền cho forwarder nhiều chủ hàng
Nếu bạn là forwarder phục vụ nhiều chủ hàng, hãy tạo một workspace riêng cho mỗi chủ hàng lớn và một workspace tổng hợp cho các chủ hàng nhỏ lẻ.
Cấu trúc đề xuất:
- Workspace “[Tên chủ hàng]”: OWNER là giám đốc forwarder, ADMIN là trưởng nhóm, MEMBER là khai báo viên phụ trách
- VIEWER cho đại diện chủ hàng: họ tự theo dõi tiến độ mà không cần gọi điện hỏi
Đừng để nhân viên khai báo giữ vai trò OWNER — họ không cần quyền billing và việc vô tình xoá workspace là rủi ro thực tế.
Xem thêm về tính năng workspace tại trang tính năng và so sánh quyền hạn theo gói tại bảng giá.
Không cần thẻ tín dụng
Dùng thử 14 ngày Pro miễn phí →