Pango AIPango AI Team
Module 01: Chatbot Service (API)
Module 01 • API Gateway

Thông Tin Môi Trường & Headers Chung

Hệ thống Pango Chatbot Service sử dụng chuẩn giao thức GraphQL over HTTP (POST). Mọi thao tác truy vấn (Queries) và cập nhật dữ liệu (Mutations) đều gửi đến một endpoint duy nhất.


1. Endpoint Môi Trường

Môi TrườngEndpoint URLPhương ThứcGhi Chú
Staging / Sandboxhttps://staging-cps-ai-svc-v2.mydatalakes.com/graphqlPOSTMôi trường thử nghiệm & tích hợp dành cho đối tác
Production(Cung cấp riêng cho từng đối tác khi Go-Live)POSTHệ thống chịu tải cao, có WAF và Cloudflare bảo vệ

Lưu Ý Về Giao Thức

Endpoint chỉ chấp nhận phương thức POST. Các request gửi bằng GET, PUT, DELETE sẽ bị từ chối với mã lỗi 405 Method Not Allowed.


2. HTTP Headers Bắt Buộc

Mọi request từ Client gửi lên Gateway phải chứa các HTTP Headers sau đây:

Header NameKiểu Dữ LiệuVí DụPhạm Vi Yêu CầuÝ Nghĩa / Mô Tả
Content-Typestringapplication/jsonBắt buộc cho mọi requestKhai báo định dạng payload gửi lên
orgIdstringyour_org_id_123Bắt buộc cho mọi requestMã định danh Organization của đối tác
x-org-idstringyour_org_id_123Bắt buộc cho mọi requestBản sao của mã Organization (để tương thích Gateway)
x-client-typestringapp hoặc widgetBắt buộc cho mọi requestĐịnh danh loại ứng dụng gọi API (app cho Mobile, widget cho Web)
x-external-private-keystringyour_private_key_***Bắt buộc cho mọi requestKhóa bí mật của đối tác được cấp riêng
Checksumstring38b4c27f91a0...Bắt buộc khi gọi ExternalLoginChuỗi mã hóa MD5 bảo mật (Xem Cơ chế Checksum)
AuthorizationstringBearer eyJhbGci...Bắt buộc sau khi đăng nhậpToken JWT phiên đăng nhập của người dùng

Thứ Tự Gửi Headers

  • Với các request công khai/tiền đăng nhập như AgentConfigDetail hoặc ExternalLogin, bạn không cần gửi Authorization.
  • Ngay sau khi ExternalLogin thành công, lưu accessToken vào Secure Storage và luôn đính kèm header Authorization: Bearer <accessToken> trong toàn bộ các request sau đó.

3. Cấu Hình Biến Môi Trường (.env Setup)

Dưới đây là mẫu file .env.example chuẩn cấu hình cho dự án Mobile App (React Native/Flutter) hoặc Web App:

.env.example
# ==========================================
# GRAPHQL API CONFIGURATION (STAGING)
# ==========================================
VITE_API_URL="https://staging-cps-ai-svc-v2.mydatalakes.com/graphql"
VITE_ORG_ID="your_org_id_****************"
VITE_EXTERNAL_PRIVATE_KEY="your_external_private_key_****************"
VITE_ENABLED=true

# ==========================================
# FIREBASE REALTIME FIRESTORE CONFIG
# ==========================================
VITE_FIREBASE_API_KEY="AIzaSy*********************************"
VITE_FIREBASE_AUTH_DOMAIN="your-project-id.firebaseapp.com"
VITE_FIREBASE_PROJECT_ID="your-project-id"
VITE_FIREBASE_STORAGE_BUCKET="your-project-id.firebasestorage.app"
VITE_FIREBASE_MESSAGING_SENDER_ID="481027******"
VITE_FIREBASE_APP_ID="1:481027******:web:********************"
VITE_FIREBASE_DATABASE_ID="your-database-id"
VITE_FIREBASE_CONVERSATION="caresoft"

# ==========================================
# DEBUG / LOGGING
# ==========================================
VITE_DEBUG=true

Chi Tiết Ý Nghĩa Các Biến Môi Trường

Biến Môi TrườngGiá Trị MẫuMô Tả Kỹ Thuật
VITE_API_URLhttps://staging-cps-ai-svc-v2.mydatalakes.com/graphqlEndpoint GraphQL Gateway duy nhất dùng cho toàn bộ Queries & Mutations.
VITE_ORG_IDyour_org_id_****Organization ID định danh doanh nghiệp, gửi qua header orgIdx-org-id.
VITE_EXTERNAL_PRIVATE_KEYyour_private_key_****Khóa bảo mật đối tác, gửi qua header x-external-private-key.
VITE_FIREBASE_*(Xem trong .env.example)Bộ config kết nối Firebase SDK để lắng nghe Stream câu trả lời của AI từ Cloud Firestore.
VITE_FIREBASE_DATABASE_IDyour-database-idDatabase ID của Firestore instance (nếu dùng named database thay vì default).
VITE_FIREBASE_CONVERSATIONcaresoftMã định danh kênh / platform đàm thoại mặc định.
VITE_ENABLEDtrueFeature flag cho phép bật/tắt widget hoặc màn hình chat nhanh phía client.