Thuật ngữ tham chiếu
| Thuật ngữ | Định nghĩa |
|---|---|
| Shell | Bộ điều phối trung tâm — cung cấp định danh, RBAC, danh mục dịch vụ và thanh toán cho tất cả các ứng dụng. |
| Satellite | Một ứng dụng nghiệp vụ độc lập (ví dụ: Drive, HRM) kết nối vào Shell. Còn được gọi là "Dịch vụ Remote." |
| SCS | Self-Contained System (Hệ thống Tự trị). Mô hình kiến trúc nơi mỗi Satellite sở hữu UI, API và Dữ liệu riêng để đảm bảo tính tự chủ tối đa. |
| Shell JWT | Một mã token JWT định dạng RS256 do Shell API cấp sau khi xác thực. Được các Satellite xác thực thông qua điểm cuối JWKS công khai. |
| JWKS | JSON Web Key Set. Một tiêu chuẩn để công khai các khóa công khai của Shell, giúp các Satellite có thể xác thực token nền tảng một cách độc lập. |
| Keycloak | Nhà cung cấp định danh OIDC chính được Shell sử dụng để xác thực người dùng từ bên ngoài. |
| PKCE | Proof Key for Code Exchange. Một giao thức bảo mật được sử dụng trong quá trình đăng nhập để ngăn chặn việc đánh chặn mã xác thực. |
| Module Federation | Công nghệ cho phép Shell tải các thành phần giao diện (UI) của Satellite tại thời điểm thực thi từ các URL khác nhau. |
| ShellEntry | Thành phần UI bắt buộc mà mọi Satellite phải cung cấp để có thể nhúng vào không gian làm việc của Shell. |
| Service Registry | Bảng apps trong cơ sở dữ liệu Shell, theo dõi URL và metadata của tất cả các Satellite đang hoạt động. |
| Connect RPC | Giao thức hiệu năng cao (Protobuf trên nền HTTP/2) được sử dụng cho giao tiếp nội bộ giữa các máy chủ (server-to-server). |
| Casbin | Công cụ quản lý chính sách được Shell sử dụng để quản lý quyền truy cập chi tiết (RBAC). |
| Ignis v2 | Framework backend nội bộ (dựa trên Hono + Bun) được sử dụng để triển khai các dịch vụ nền tảng một cách nhất quán. |
| Drizzle ORM | Thư viện ORM TypeScript được sử dụng cho tất cả các tương tác PostgreSQL và cập nhật cấu trúc cơ sở dữ liệu (migrations). |
| Multitenancy | Kiến trúc nơi nhiều tổ chức dùng chung một hạ tầng nhưng vẫn được cách ly logic (thông qua organization_id). |
| Kustomize | Công cụ được sử dụng để quản lý các tệp cấu hình Kubernetes trên các môi trường khác nhau (Dev, UAT, Prod). |