Platform / IntegrationAPI & Webhook
Danh sách API Key
Bảng API Key dùng để cấp phát quyền gọi API cho ứng dụng/bên thứ ba.
Bảng quản lý các API Key đã cấp phát. Mỗi key đại diện cho một ứng dụng/đối tác được phép gọi API hệ thống.
Vị trí menu admin
Không có mục riêng trên menu chính. Vào qua một trong các cách sau:
- Cài đặt & Mở rộng > Cài đặt khác, tab API (chỉ hiện khi gói đã bật tích hợp API), bấm Quản lý API Key.
- Hoặc mở trực tiếp đường dẫn
/apikeynếu được quản trị cung cấp.
Giao diện tổng thể
<PageDataTable> với các cột (theo thứ tự render trong ApiKeyList.tsx):
| Cột | Key | Width | Ghi chú |
|---|---|---|---|
| ID | id | 60 | Số tự sinh, align center. |
| Tên | name | flex | Sortable theo name. |
| Loại | type | 120 | Render qua ApiKeyModel.getType(type). Hiện tại form chỉ tạo key loại Private API (ApiKey.TYPE_API). |
| API Key | api_key | 160 | Hiển thị bằng TextUtil.truncateFromMiddle(api_key, 16, ".......") để giảm rủi ro lộ key full trên màn hình. |
| Mô tả | description | flex | toggletype: extend - mặc định ẩn, mở qua trigger ở cuối hàng. |
| Ngày tạo | date_created | 120 | Render qua <TextDateTime>. |
| Trạng thái | status | 110 | Tag màu lấy từ ApiKeyModel.getStatus(status): bao gồm cả trạng thái Bị khoá (STATUS_LOCKED). |
| Thao tác | trigger | 120 | Sửa và xoá; nếu không có quyền quản trị nâng cao thì cột này có thể ẩn. |
Trên đầu trang có nút Thêm mới (chỉ hiện khi tài khoản có quyền quản trị nâng cao).
Tìm kiếm và lọc
<ApiKeyListFilter>:
- Keyword (
filters.keyword) - input tìm kiếm theo tên API Key, isGrow. - Trạng thái (
filters.status) - dropdown dùngWebHookModel.getStatusList()(lưu ý frontend tái dùng status list của webhook cho bộ lọc API key).
convertValueByKeyFilter={["status"]} - chuyển status từ string querystring về number trước khi fetch.
Thao tác chính
- Xem danh sách: chọn keyword hoặc trạng thái → bảng tự refresh khi
filtersđổi (useStateFilter+useFilterLocationđồng bộ với URL query). - Tạo key mới: nhấn Thêm mới ở header → mở
<ApiKeyFormModal>vớieditingId=0. Save thành công sẽ$unshiftitem vào đầu danh sách. - Sửa key: nhấn icon edit ở cột actions → set
editingId=record.id, mở modal. Save thành công sẽ replace item ởfoundIndex. - Xoá key: nhấn icon delete ở cột actions → confirm → gọi
ApiKeyRepository.deleteItem. Lỗi hiển thị quaerror_translate_prefix="apikey:form.error".
Khi đóng modal (setOpen(false)), editingId reset về 0 để tránh leak state khi mở lại.
Các lối đi từ trang
/setting/common/tab/api- quay về tab cấu hình ngược.- Modal tạo/sửa API Key: xem Tạo và cập nhật API Key.
Lưu ý - Lỗi thường gặp
- Không thấy nút Thêm mới hoặc không sửa/xoá được: tài khoản chưa được gán quyền Cài đặt nâng cao (hoặc tên tương đương trong Cài đặt quyền truy cập).
- Cột API Key bị che giữa: cố ý qua
truncateFromMiddleđể giảm rủi ro lộ key. Sao chép full bằng cách mở chế độ sửa. - API Secret không hiển thị trên danh sách: chỉ hiện ở modal sửa và là field
Input.Password readOnly. - Không có loại key Ecommerce trong UI tạo mới: form hiện hardcode
type = ApiKey.TYPE_API. Nếu cần loại khác, dùng API hoặc đề xuất tính năng.
Ai được xem và chỉnh?
- Xem danh sách tại
/apikey: mọi tài khoản đăng nhập đều có thể mở trang (đường dẫn không chặn theo vai trò ở lớp điều hướng). - Thêm, sửa, xoá: chỉ người có quyền Cài đặt nâng cao; khi thiếu quyền, nút và biểu tượng thao tác thường bị ẩn.
- Đổi API Secret: chỉ trong form sửa; vì chỉ người có quyền sửa mới mở được form nên thao tác này cũng nằm trong nhóm quyền đó.