ใช้กับ LLM (Claude, ChatGPT ฯลฯ)

ดาวน์โหลดเอกสารทั้งหมดเป็นไฟล์ข้อความ แล้วแนบให้ LLM ช่วยตอบเรื่องการใช้ api-vault

Runbook — จากเข้าเว็บ ถึงใช้ API ในโค้ด

สำหรับเจ้าของ เมื่อลืมไปแล้วว่าต้องทำอะไรบ้าง · ไฟล์นี้อยู่ใน repo public — ห้ามใส่ค่า Key, token หรือรหัสผ่านลงในนี้

เว็บ: https://api-vault-two.vercel.app · เอกสารนี้บนเว็บ: /docs (ไอคอนหนังสือบนแถบบน) · ฉบับให้ LLM: /llms-full.txt

ทำเมื่อไหร่ ขั้นตอน
ครั้งเดียว 1 ล็อกอิน + TOTP
ทุก API ใหม่ 2 ค้นหา API → 3 กด "ขอ Key" สมัครที่เว็บเจ้าของ → 4 เก็บลง Vault
ทุกโปรเจกต์ที่จะใช้ 5 ผูก Key กับโปรเจกต์ → 6 vault pull ลง .env → 7 ใช้ในโค้ด

API ที่ไม่ต้องใช้ key (ป้าย "ไม่ต้องใช้ key") ข้ามข้อ 3–6 ได้เลย — เรียก URL ตรง ๆ จากโค้ด


1. เข้าเว็บ + ล็อกอิน

  1. เปิดเว็บ → เด้งไปหน้า เข้าสู่ระบบ → ใส่อีเมล + รหัสผ่านของเจ้าของ (ไม่มีปุ่มสมัคร — มีผู้ใช้คนเดียว)
  2. หน้า ยืนยันตัวตน → ใส่รหัส 6 หลักจากแอป authenticator ในมือถือ
    • ครั้งแรกสุดจะเป็นหน้า ตั้งค่า TOTP ให้สแกน QR ก่อน
  3. เข้าได้แล้วจะเห็นหน้า ค้นหา · เมนูบนสุดมี ค้นหา · Vault
เจอปัญหา ทำยังไง
รหัส TOTP ไม่ผ่าน รอรหัสรอบใหม่แล้วพิมพ์ทันที · เช็กว่าเวลาในมือถือตั้งเป็นอัตโนมัติ
มือถือหาย / ลบแอป authenticator ไปแล้ว Supabase dashboard › Authentication › Users › ผู้ใช้ › ลบ MFA factor → ล็อกอินใหม่จะได้หน้าตั้งค่า TOTP
ลืมรหัสผ่าน Supabase dashboard › Authentication › Users › ผู้ใช้ › ส่งลิงก์รีเซ็ตรหัสผ่าน

2. ค้นหา API

หน้า / (เมนู ค้นหา)

  • พิมพ์ได้ทั้งไทยและอังกฤษ เช่น อัตราแลกเปลี่ยนแบบไม่ต้องใช้ key, พยากรณ์อากาศ, cat pictures
  • ตัวกรองด้านซ้าย: หมวด · การยืนยันตัวตน · HTTPS · CORS (เรียกจากเบราว์เซอร์ได้ไหม)
  • "ไม่เจอ API ที่ตรง" = คำไทยนั้นไม่อยู่ในพจนานุกรม → ลองคำอังกฤษ หรือคำไทยที่ง่ายกว่า
  • การ์ดแต่ละใบ: กด ชื่อ (มีไอคอน ↗) = เปิดเว็บของ API นั้น · ป้ายบอกว่าต้องใช้ key ไหม มี HTTPS ไหม · API ที่ต้องใช้ key มีปุ่ม ขอ Key

ไม่มีในคลัง → เพิ่มเอง

  1. ปุ่ม เพิ่ม Entry ข้างช่องค้น
  2. กรอกชื่อ · URL · คำอธิบายเป็นภาษาอังกฤษ (ถ้าเป็นไทยจะค้นไม่เจอ) · หมวด (เลือกของเดิมหรือพิมพ์ใหม่) · การยืนยันตัวตน
  3. บันทึก → กลับไปหน้าค้นพร้อมชื่อนั้น · การ์ดมีป้าย เพิ่มเอง และปุ่มแก้/ลบ (Entry จากคลังตั้งต้นแก้/ลบไม่ได้ · Entry ที่มี Key ผูกอยู่ลบไม่ได้ ต้องลบ Key ก่อน)

3. ขอ Key จากเจ้าของ API + เก็บลง Vault

api-vault ออก Key เองไม่ได้ — Key ผูกกับบัญชีของคุณที่เจ้าของ API (โควตา, ค่าบริการ) ต้องสมัครที่เว็บเขา และสมัครแทนอัตโนมัติไม่ได้ (แต่ละเจ้าขั้นตอนต่างกัน มี CAPTCHA / ยืนยันอีเมล)

  1. บนการ์ด API กด ขอ Key → เกิดสองอย่างพร้อมกัน:
    • แท็บใหม่เปิดเว็บเจ้าของ API
    • หน้า api-vault เปิดฟอร์ม เพิ่ม Key ของ API นั้นค้างไว้ พร้อมขั้นตอน
  2. ในแท็บเจ้าของ: สมัคร / เข้าสู่ระบบ → หาหน้า API keys (มักอยู่ใน Dashboard, Account, Developer) → สร้าง Key → คัดลอก
    • ลิงก์มักพาไปหน้าเอกสาร ไม่ใช่หน้าสมัคร — หาปุ่ม Sign up / Get API key ในหน้านั้น
    • แท็บไม่เปิด (เบราว์เซอร์บล็อก popup) → กดลิงก์ แท็บไม่เปิด? เปิดเว็บ … ในฟอร์ม
  3. กลับมาแท็บ api-vault → วางใน ค่า Key (ชื่อตั้งให้แล้ว แก้ได้) → เพิ่ม Key → แจ้งเตือนมีปุ่ม ไปผูกโปรเจกต์ (ข้อ 5) · อย่าพัก Key ไว้ในโน้ต แชต หรือไฟล์ในโปรเจกต์

4. จัดการ Key ใน Vault

มี Key อยู่แล้ว (ไม่ต้องสมัครใหม่): เมนู Vault › แท็บ Key › เพิ่ม Key → ค้นชื่อ API → ใส่ชื่อ + ค่า Key ถูกเข้ารหัสที่ server ก่อนลงฐานข้อมูล · ในรายการจะเห็นแค่ชื่อ + 4 ตัวท้าย (ถ้า Key ยาว ≥ 16 ตัว)

อยากทำ ที่ไหน
ดูค่า Key อีกครั้ง ปุ่ม Reveal → ใส่ TOTP ใหม่ (รหัสหนึ่งใช้ได้ครั้งเดียว)
เปลี่ยน Key (เจ้าของ API ออกให้ใหม่) ปุ่มดินสอ → ใส่ค่าใหม่ = หมุน Key · เว้นว่าง = แค่เปลี่ยนชื่อ
ดูว่าใครดึง Key ไปเมื่อไหร่ แท็บ Audit

5. สร้างโปรเจกต์ + ผูก Key

Vault › แท็บ โปรเจกต์

  1. พิมพ์ชื่อโปรเจกต์ (เช่น weather-bot) → สร้างโปรเจกต์ — ชื่อนี้คือที่จะพิมพ์ใน vault pull <ชื่อ>
  2. ในการ์ดโปรเจกต์: เลือก Key + ใส่ชื่อตัวแปร (ระบบเดาให้ เช่น OPENWEATHER_API_KEY แก้ได้) → ผูก
  3. ผูกได้หลาย Key ต่อโปรเจกต์ · Key เดียวผูกได้หลายโปรเจกต์

6. ดึง Key ลง .env ด้วย vault CLI

6.1 ครั้งแรกของแต่ละเครื่อง

# ติดตั้ง (ต้องมี Node ≥ 20) — รันในโฟลเดอร์ repo api-vault
npm i -g ./cli
  1. เว็บ: Vault › แท็บ CLI → ตั้งชื่อเครื่อง (เช่น macbook-work) → สร้าง token → คัดลอก (แสดงครั้งเดียว)
  2. terminal:
    vault login
    
    วาง token (ไม่แสดงบนจอ) → ได้ ✔ login แล้ว: <ชื่อเครื่อง> · หมดอายุ ...
  3. token อายุ 30 วัน — หมดแล้วสร้างใหม่แล้ว vault login อีกครั้ง · เช็กได้ด้วย vault whoami

token อย่างเดียวดึง Key ไม่ได้ — ทุกครั้งต้องอนุมัติบนเว็บด้วย TOTP

6.2 ทุกครั้งที่จะดึง

ในโฟลเดอร์โปรเจกต์ของคุณ:

# .env ต้องอยู่ใน .gitignore ก่อน ไม่งั้น vault pull จะไม่ยอมเขียน
echo ".env" >> .gitignore
vault pull weather-bot
  1. terminal แสดง รหัส (เช่น ABCD-2345) และเปิดหน้า อนุมัติ vault pull ในเบราว์เซอร์ให้เอง
  2. บนเว็บ: เช็กว่ารหัสตรงกับใน terminal · เช็กชื่อเครื่อง/โปรเจกต์/ตัวแปร → ใส่ TOTP → อนุมัติ
  3. terminal: ✔ /path/.env · เพิ่ม: OPENWEATHER_API_KEY
  • ดึงซ้ำ = อัปเดตเฉพาะบรรทัดของตัวแปรที่ผูกไว้ บรรทัดอื่นใน .env ไม่ถูกแตะ
  • ไฟล์อื่น: vault pull weather-bot --file .env.local
  • คำขอหมดอายุใน 10 นาที · Ctrl+C = ยกเลิกคำขอ

ไม่มี CLI ในเครื่องนั้น

Vault › Key › Reveal → ใส่ TOTP → คัดลอกค่าไปวางใน .env เอง

7. ใช้ในโค้ด

api-vault ไม่ได้ยิง API แทนคุณ — โค้ดของคุณอ่าน Key จาก .env แล้วเรียก API ของเจ้าของเองตรง ๆ

# Node ≥ 20 อ่าน .env ได้เอง
node --env-file=.env app.js
const res = await fetch(`https://api.example.com/v1/data?appid=${process.env.OPENWEATHER_API_KEY}`)
สแต็ก อ่าน .env ยังไง
Node node --env-file=.env แล้ว process.env.X
Nuxt / Vite / Next อ่าน .env เองอยู่แล้ว · ใช้ Key ฝั่ง server เท่านั้น (อย่าใส่ใน public config)
Python pip install python-dotenv → load_dotenv() → os.environ["X"]
Deploy (Vercel ฯลฯ) ใส่ค่าใน env ของ host จากไฟล์ เช่น vercel env add X production < file — ห้ามวางในแชต

วิธีเรียก (URL, ใส่ Key ใน header หรือ query) ดูจากเอกสารของ API นั้น — กดชื่อบนการ์ดในข้อ 2


CLI ขึ้นข้อความนี้ → ทำยังไง

ข้อความ ทำ
ยังไม่ได้ login ข้อ 6.1
.env ไม่อยู่ใน .gitignore เพิ่ม .env ใน .gitignore แล้วรันใหม่
.env ถูก git track อยู่ git rm --cached .env (ถ้าเคย push ขึ้นไปแล้ว → หมุน Key ทุกตัวในไฟล์นั้น)
โปรเจกต์ ... ยังไม่มี Key ข้อ 5 ผูก Key ก่อน
คำขอหมดอายุ / หมดเวลารออนุมัติ รัน vault pull ใหม่ แล้วอนุมัติภายใน 10 นาที
token หมดอายุ / ถูกเพิกถอน สร้าง token ใหม่ที่ Vault › CLI แล้ว vault login
ต่อ ... ไม่ได้ เช็กเน็ต · เปิดเว็บดูว่าขึ้นไหม

เรื่องความปลอดภัยที่ต้องจำ

  • เครื่องหาย / สงสัยว่า token หลุด → Vault › CLI › เพิกถอน token ของเครื่องนั้น
  • Key หลุด (ขึ้น git, วางในแชต) → ไปเว็บเจ้าของ API ออก Key ใหม่ → ดินสอในหน้า Key ใส่ค่าใหม่ → vault pull ทุกโปรเจกต์ที่ใช้
  • VAULT_MASTER_KEY (อยู่ใน env ของ Vercel + สำเนานอกเครื่อง) หาย = Key ทุกตัวใน Vault ถอดกลับไม่ได้
  • ทุก Reveal / Pull ถูกบันทึกใน Audit — ดูเป็นระยะว่ามีรายการที่ไม่ได้ทำเองไหม