OVIRO LogoOVIRO | Trợ giúp
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 /apikey nế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ộtKeyWidthGhi chú
IDid60Số tự sinh, align center.
TênnameflexSortable theo name.
Loạitype120Render qua ApiKeyModel.getType(type). Hiện tại form chỉ tạo key loại Private API (ApiKey.TYPE_API).
API Keyapi_key160Hiể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ảdescriptionflextoggletype: extend - mặc định ẩn, mở qua trigger ở cuối hàng.
Ngày tạodate_created120Render qua <TextDateTime>.
Trạng tháistatus110Tag màu lấy từ ApiKeyModel.getStatus(status): bao gồm cả trạng thái Bị khoá (STATUS_LOCKED).
Thao táctrigger120Sử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ùng WebHookModel.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

  1. 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).
  2. Tạo key mới: nhấn Thêm mới ở header → mở <ApiKeyFormModal> với editingId=0. Save thành công sẽ $unshift item vào đầu danh sách.
  3. 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.
  4. Xoá key: nhấn icon delete ở cột actions → confirm → gọi ApiKeyRepository.deleteItem. Lỗi hiển thị qua error_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

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 đó.

On this page