Bỏ qua, đến nội dung

@digiforce-nc/plugin-collection-sql

Plugin collection từ SQL query — tạo collection ảo (virtual) dựa trên câu lệnh SQL tùy chỉnh, như database view nhưng linh hoạt hơn.

Plugin này làm gì?

Đôi khi dữ liệu cần hiển thị không khớp trực tiếp với một bảng — cần JOIN nhiều bảng, aggregation, hoặc logic phức tạp. Plugin cho phép admin viết SQL query tùy chỉnh và kết quả trở thành một collection có thể hiển thị, lọc, phân trang trên giao diện.

Cơ chế hoạt động

Tính năng chính

#Tính năngMô tả
1Custom SQLViết SQL query tùy ý (SELECT, JOIN, subquery)
2Auto-detect schemaTự phát hiện columns và types từ query result
3PaginationTự động thêm LIMIT/OFFSET cho phân trang
4Filter injectionBộ lọc UI được chuyển thành WHERE clause
5Parameter bindingHỗ trợ tham số động trong query
6Read-onlyCollection SQL chỉ đọc (không CREATE/UPDATE/DELETE)

API endpoints

EndpointMô tả
sqlCollections CRUDQuản lý SQL collection (name, query, fields)
sqlCollections:executeThực thi query và trả về dữ liệu
sqlCollections:previewPreview kết quả query (limit 10 rows)

Database

BảngMô tả
sqlCollectionsCấu hình SQL collection (name, query, fields)

Thành phần client

Thành phầnMô tả
SQLEditorEditor viết SQL query (syntax highlighting)
QueryPreviewXem trước kết quả query
SQLCollectionConfigForm cấu hình SQL collection
FieldOverrideGhi đè kiểu field (tên hiển thị, format)

Dependencies

PackageVai trò
@digiforce-nc/serverServer framework
@digiforce-nc/databaseDatabase ORM — execute raw SQL
@digiforce-nc/clientClient UI framework
@digiforce-nc/collection-managerĐăng ký virtual collection

Lưu ý triển khai

  • SQL query chạy trực tiếp trên database — cần kiểm soát quyền SQL injection
  • Nên giới hạn thời gian thực thi query (timeout)
  • Query phức tạp trên bảng lớn có thể ảnh hưởng hiệu suất database

Mục lục chi tiết