Bỏ qua, đến nội dung

@digiforce-nc/plugin-data-source-external-postgres

Plugin kết nối PostgreSQL bên ngoài làm data source — biến bảng PostgreSQL thành collection để thao tác CRUD trực tiếp từ giao diện.

Plugin này làm gì?

Trong nhiều dự án, dữ liệu nghiệp vụ đã nằm sẵn trong PostgreSQL. Thay vì import hay duplicate, plugin-data-source-external-postgres cho phép kết nối trực tiếp đến database PostgreSQL bên ngoài, tự động phát hiện schema/bảng/cột, rồi đăng ký chúng như collection trong hệ thống.

Cơ chế hoạt động

Plugin đăng ký loại data source postgres vào data-source-manager factory. Khi admin tạo data source mới với type postgres, factory khởi tạo kết nối thông qua @digiforce-nc/database với dialect PostgreSQL.

Tính năng chính

#Tính năngMô tả
1Kết nối PostgreSQLCấu hình host, port, user, password, database name
2Auto-detect schemaTự phát hiện bảng, cột, kiểu dữ liệu, primary key, index
3Schema selectorChọn PostgreSQL schema cụ thể (public, custom schema)
4Multi-databaseKết nối nhiều PostgreSQL instance cùng lúc
5CRUD qua UIThao tác dữ liệu trực tiếp từ giao diện Digiforce
6SSL/TLSHỗ trợ kết nối mã hóa SSL cho môi trường production

Cấu hình kết nối

Tham sốBắt buộcMô tảVí dụ
hostCoĐịa chỉ server PostgreSQL192.168.1.100
portKhôngCổng kết nối (mặc định 5432)5432
databaseCoTên databasemy_erp
usernameCoTên đăng nhậpreadonly_user
passwordCoMật khẩu***
schemaKhôngSchema cần introspect (mặc định public)sales
sslKhôngBật SSL/TLStrue

Kiến trúc nội bộ

Thành phầnVai trò
RegisterĐăng ký postgres type vào factory registry khi plugin load
FactoryTạo kết nối Database instance với dialect postgres
IntrospectorĐọc information_schema để map bảng → collection, cột → field
SyncĐồng bộ metadata collection vào CollectionManager

Thành phần client

Thành phầnMô tả
PostgresConnectionFormForm cấu hình kết nối PostgreSQL (host, port, credentials)
SchemaSelectorDropdown chọn schema trong PostgreSQL
ConnectionTestNút test kết nối trước khi lưu
ExternalCollectionListDanh sách bảng được map thành collection

Dependencies

PackageVai trò
@digiforce-nc/serverServer framework
@digiforce-nc/databaseDatabase abstraction layer (postgres dialect)
@digiforce-nc/clientClient UI framework
@digiforce-nc/data-source-managerRegistry quản lý data source
pgPostgreSQL native driver
pg-hstoreSerialize/deserialize hstore type

Lưu ý triển khai

  • PostgreSQL bên ngoài cần cho phép kết nối từ IP của server Digiforce
  • Nên tạo user read-only nếu chỉ cần xem dữ liệu
  • Với database lớn, introspect lần đầu có thể mất vài giây
  • Hỗ trợ PostgreSQL phiên bản 10 trở lên

Mục lục chi tiết