ข้ามไปยังเนื้อหา

SDK Connection

SDK Connection คือวิธีที่คุณอนุญาตให้แอปของคุณดึง feature flags จาก GrowthBook แต่ละ connection ถูกจำกัดขอบเขตไว้ที่ environment หนึ่งและ language/framework หนึ่ง

  1. ใน GrowthBook UI ไปที่ Settings ใน sidebar ด้านซ้าย
  2. คลิก SDK Connections
  3. คลิก Add SDK Connection
  4. ตั้งชื่อ (เช่น “Node.js Dev”)
  5. เลือก Environment (เช่น development)
  6. เลือก Language / Framework (เช่น JavaScript/Node.js)
  7. คลิก Save GrowthBook จะแสดงค่าสองค่าให้คุณ:
    • apiHost — สำหรับ self-hosted: http://localhost:3100; สำหรับ Cloud: https://cdn.growthbook.io
    • clientKey — string ที่ขึ้นต้นด้วย sdk-...
  8. คัดลอกทั้งสองค่า คุณจะใช้ค่าเหล่านี้ในการ initialize SDK
import { GrowthBook } from '@growthbook/growthbook';
const gb = new GrowthBook({
apiHost: 'http://localhost:3100', // self-hosted SDK API
clientKey: 'sdk-YOUR_CLIENT_KEY',
});
await gb.init({ timeout: 2000 });
// Check a boolean flag
if (gb.isOn('my-feature')) {
console.log('Feature is enabled');
}
import { GrowthBook } from '@growthbook/growthbook';

const gb = new GrowthBook({
  apiHost: 'http://localhost:3100',   // self-hosted SDK API
  clientKey: 'sdk-YOUR_CLIENT_KEY',
});

await gb.init({ timeout: 2000 });

// Check a boolean flag
if (gb.isOn('my-feature')) {
  console.log('Feature is enabled');
}
ตัวเลือกBenefitCost
SDK key แยกต่อ environmentปลอดภัยกว่า จำกัด blast radiusจัดการหลาย key ซับซ้อนกว่า
SDK key เดียวกันทุกที่ตั้งค่าเร็วกว่าเสี่ยง flag รั่วข้าม environment
  • ใช้ SDK key เดียวกันทั้ง dev และ production ทำให้ทดสอบ flag ผิด environment โดยไม่ตั้งใจ
  • hardcode clientKey ในโค้ด client-side โดยไม่ผ่าน environment variable
  • ไม่ตั้ง timeout ให้ gb.init() ทำให้แอป hang รอ network

💡 ตัวอย่างจากของจริง

ทีม engineering ขนาดใหญ่แยก SDK connection ต่อ service/microservice เพื่อจำกัด blast radius ถ้า key รั่วออกไป

apiHost สำหรับ GrowthBook SDK แบบ self-hosted คืออะไร?
clientKey มีหน้าตาเป็นอย่างไร?
คุณสร้าง SDK Connection ได้ที่ไหนใน GrowthBook UI?
ทำไมต้องใช้ SDK Connection แยกกันสำหรับ development และ production?