Giao diện
Cài đặt và sử dụng — Credential
Tổng quan
Plugin Credential cung cấp hệ thống quản lý thông tin xác thực và resource type — cho phép định nghĩa các loại tài nguyên (credential types) với schema tùy chỉnh. Mỗi resource type mô tả cấu trúc dữ liệu cần thiết cho một loại credential cụ thể (API Key, SMTP, OAuth...).
Kiến trúc
Plugin quản lý collection resource_type với cấu trúc:
| Trường | Kiểu | Mô tả |
|---|---|---|
id | bigInt (auto increment) | Primary key |
name | string | Tên loại resource, ví dụ: "SMTP", "API Key", "OAuth2" |
description | text | Mô tả mục đích của loại resource |
schemas | json | JSON Schema định nghĩa các trường cấu hình cho loại resource |
createdAt | date | Thời điểm tạo |
createdBy | belongsTo(users) | Người tạo |
updatedAt | date | Thời điểm cập nhật |
updatedBy | belongsTo(users) | Người cập nhật |
Bước 1: Kích hoạt Plugin
- Vào Settings → Plugin Manager
- Tìm
plugin-credential - Bật toggle để kích hoạt
- Plugin tự động tạo bảng
resource_typevà đồng bộ schema
Bước 2: Tạo Resource Type
- Vào giao diện quản lý Resource Type
- Nhấn Add để tạo mới
- Điền các thông tin:
| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Name | Có | Tên định danh, ví dụ: "SMTP Credential" |
| Description | Không | Mô tả mục đích sử dụng |
| Schema | Có | JSON Schema mô tả các trường cấu hình |
Ví dụ Schema cho SMTP Credential
json
{
"type": "object",
"properties": {
"host": {
"type": "string",
"title": "SMTP Host",
"description": "Địa chỉ SMTP server"
},
"port": {
"type": "number",
"title": "Port",
"default": 587
},
"username": {
"type": "string",
"title": "Username"
},
"password": {
"type": "string",
"title": "Password"
},
"encryption": {
"type": "string",
"title": "Encryption",
"enum": ["none", "tls", "ssl"],
"default": "tls"
}
},
"required": ["host", "port", "username", "password"]
}Ví dụ Schema cho API Key
json
{
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"title": "API Key"
},
"apiSecret": {
"type": "string",
"title": "API Secret"
},
"baseUrl": {
"type": "string",
"title": "Base URL"
}
},
"required": ["apiKey"]
}Phân quyền
Plugin cho phép mọi người dùng đã đăng nhập xem danh sách resource type (resource_type:list được ACL allow). Điều này cho phép các plugin khác đọc schema để tạo form cấu hình tương ứng.
Tuy nhiên, việc tạo, sửa, xóa resource type thường giới hạn cho admin thông qua cấu hình ACL chung.
Tích hợp với plugin khác
Các plugin khác (email, SMS, storage...) có thể:
- Đọc danh sách resource type: Gọi
resource_type:listđể lấy các loại credential có sẵn - Sử dụng schema: Dùng trường
schemasđể tự động sinh form cấu hình cho credential - Tham chiếu: Khi người dùng tạo credential instance, schema từ resource type được dùng để validate dữ liệu
Lưu ý
- Resource type định nghĩa cấu trúc (schema), không phải giá trị credential cụ thể
- JSON Schema trong trường
schemashỗ trợ kiểujsonbcho hiệu năng truy vấn tốt hơn trên PostgreSQL - Collection có
sortable: true— cho phép sắp xếp thứ tự hiển thị - Bảng
resource_typeđược tự động sync khi plugin load (app.db.sync())