Secrets: คีย์ที่โค้ดของเว็บไซต์ต้องใช้
ฟีเจอร์บางอย่างต้องใช้คีย์ โทเคน หรือรหัสผ่านของบริการอื่น Secrets คือที่เก็บค่าเหล่านั้น เพื่อให้โค้ดของเว็บไซต์ใช้ได้โดยค่าไม่เคยปรากฏในหน้า ไฟล์ หรือสตูดิโอ หน้านี้ครอบคลุมการเพิ่ม เปลี่ยน และลบค่า รวมถึงกฎที่ Briks ปฏิบัติต่อค่าเหล่านี้
secret คืออะไร
ข้อมูลลับ (secret) คือค่าที่มีชื่อกำกับ ค่านั้นมักเป็น API key ซึ่งเป็นรหัสผ่านที่โปรแกรมหนึ่งใช้คุยกับอีกโปรแกรมหนึ่ง เช่น คีย์ที่บริการส่งอีเมลให้คุณ ส่วนชื่อคือสิ่งที่โค้ดของเว็บไซต์ใช้เรียกขอค่านั้น เช่น MAILING_LIST_KEY
ส่วนของเว็บไซต์ที่อ่านข้อมูลลับทำงานบนเซิร์ฟเวอร์ ภายหลังเส้นทางของมัน (ที่อยู่ภายใต้ /api/ ซึ่งรันโค้ดแทนการแสดงหน้าเว็บ) ค่านั้นอยู่แต่ที่นั่น ไม่อยู่ในหน้าเว็บของเว็บไซต์ ไม่ถูกส่งไปยังเบราว์เซอร์ของผู้เข้าชม และไม่อยู่ในโค้ดที่คุณดาวน์โหลดได้
เมื่อบันทึกแล้ว ไม่มีใครดูค่านั้นได้อีก รวมถึงคุณเอง สตูดิโอเก็บเพียงชื่อ ผู้ที่บันทึก และเวลาที่บันทึก เก็บสำเนาของคุณเองไว้ในที่ปลอดภัย เช่น โปรแกรมจัดการรหัสผ่าน
คุณต้องใช้ secret ก็ต่อเมื่อโค้ดของเว็บไซต์คุณเองทำงานร่วมกับบริการที่ต้องใช้คีย์ เว็บไซต์แนะนำธุรกิจที่มีฟอร์มติดต่อไม่ต้องใช้เลย
ก่อนเริ่มต้น
- เผยแพร่เว็บไซต์หนึ่งครั้งก่อน ความลับถูกเก็บไว้เฉพาะบนเว็บไซต์ที่เผยแพร่ ไม่เคยอยู่ในสตูดิโอ จนกว่าจะเผยแพร่ครั้งแรก หน้านี้จะแสดง Publish the site first และเพิ่มอะไรไม่ได้
- ตรวจสอบบทบาทของคุณ Editor, Admin และ Owner เพิ่ม แก้ไข และลบความลับได้ Viewer ดูได้เฉพาะชื่อและเวลาที่บันทึกแต่ละรายการ
- ตั้งชื่อ ใช้ตัวอักษร ตัวเลข และขีดล่าง ขึ้นต้นด้วยตัวอักษร ยาวได้สูงสุด 128 อักขระ นิยมใช้ตัวพิมพ์ใหญ่คั่นด้วยขีดล่าง ชื่อที่ขึ้นต้นด้วย
BRIKS_สงวนไว้สำหรับสตูดิโอ - ระวังขีดจำกัด ค่าหนึ่งมีขนาดได้สูงสุด 5 KB ซึ่งพอสำหรับคีย์หรือใบรับรองทุกชนิด หนึ่งโปรเจกต์เก็บความลับได้สูงสุด 100 รายการ รวมของสตูดิโอเองด้วย
เพิ่มค่าลับ
กด Add secret
ที่ไหน: Settings, Secrets
หากยังไม่มีข้อมูลลับ ปุ่มจะอยู่กลางหน้า เมื่อมีแล้ว ปุ่มจะอยู่ข้างช่องค้นหาเหนือรายการ
พิมพ์ชื่อ
ที่ไหน: Add a secret
ป้อนใน Name ให้ตรงกับที่ฟีเจอร์ร้องขอ ชื่อแยกตัวพิมพ์เล็กใหญ่ ดังนั้น
MAILING_LIST_KEYและMailing_List_Keyจึงเป็นรหัสลับคนละตัววางค่า
ที่ไหน: Add a secret
วางคีย์ลงในช่อง Value กล่องโต้ตอบจะเตือนว่า เมื่อบันทึกแล้ว ระบบจะไม่แสดงค่านี้อีก หากต้องการ ให้เก็บสำเนาของคุณเองไว้
บันทึก
ที่ไหน: Add a secret
กด Add secret คุณจะเห็นข้อความเช่น MAILING_LIST_KEY was added ตอนนี้เว็บไซต์ที่เผยแพร่อยู่มีค่านี้แล้ว
นำเข้าหลายรายการจากไฟล์ .env
ไฟล์ .env คือไฟล์ข้อความธรรมดาที่มีบรรทัดแบบ NAME=value หนึ่งบรรทัดต่อหนึ่งความลับ นักพัฒนามักเก็บไว้ หากคุณมี คุณนำเข้าทุกบรรทัดพร้อมกันได้
กด Import .env
ที่ไหน: Settings, Secrets
กล่องโต้ตอบ Import a .env file จะเปิดขึ้น
ป้อนข้อความให้
ที่ไหน: Import a .env file
วางบรรทัดลงในกล่อง ลากไฟล์มาวางบนกล่อง หรือกด Choose a file ไฟล์มีขนาดได้สูงสุด 256 KB
ตรวจสอบพรีวิว
ที่ไหน: Import a .env file
แต่ละชื่อจะติดป้าย New หรือ Replaces เมื่อมี secret ชื่อนั้นอยู่แล้วและจะรับค่าใหม่ บรรทัดที่ใช้ไม่ได้จะแสดงเป็นรายการที่ข้าม พร้อมเหตุผลของแต่ละรายการ
นำเข้า
ที่ไหน: Import a .env file
กดปุ่มนำเข้า ซึ่งจะนับสิ่งที่จะบันทึก เช่น Import 3 secrets จะยังไม่มีการบันทึกอะไรก่อนที่คุณจะกด
เปลี่ยนหรือลบข้อมูลลับ
กำหนดค่าใหม่ให้
ที่ไหน: Settings, Secrets
เปิดจุดสามจุดที่แถวของรายการนั้นแล้วเลือก Edit value กล่องโต้ตอบจะแจ้งว่า: ค่าใหม่จะแทนที่ค่าเดิม ซึ่งจะไม่แสดงอีก วางค่าใหม่แล้วกด Save value
หรือลบทิ้ง
ที่ไหน: Settings, Secrets
ให้เลือก Delete แทน กล่องข้อความจะเตือนว่า Code on the site that reads it stops finding it. This cannot be undone. กด Delete เพื่อยืนยัน
การเปลี่ยนแปลงถึงเว็บไซต์ที่เผยแพร่ทันที: คุณจะเห็น The live site has it now หรือถ้าเป็นการลบ จะเห็น The live site no longer has it เมื่อมี secret จำนวนมาก ช่อง Search secrets ช่วยค้นหาตามชื่อได้ ตารางแสดง Name และ Last saved ของแต่ละรายการ พร้อมชื่อผู้บันทึก
บางแถวมีแท็ก Managed สตูดิโอตั้งค่าแถวเหล่านี้สำหรับบริการของตัวเอง เช่น อีเมลของเว็บไซต์ และแก้ไขหรือลบที่นี่ไม่ได้
วิธีที่การสร้างใช้ความลับ
โค้ดของเว็บไซต์คุณอ่านค่าลับด้วยชื่อทุกครั้งที่ทำงาน การสร้างจึงไม่ต้องใช้ค่านั้น เมื่อคุณขอให้สตูดิโอเชื่อมเว็บไซต์กับบริการอื่น เช่น รายชื่ออีเมลหรือโมเดล AI โค้ดจะอ่านคีย์ของบริการนั้นด้วยชื่อที่ชัดเจน เช่น MAILING_LIST_KEY คุณเพิ่มค่าไว้ที่นี่ภายใต้ชื่อนั้น
การถูกขอคีย์ก่อนสร้าง
- การเปลี่ยนแปลงกับเว็บไซต์ที่เผยแพร่แล้ว เมื่อคำขอของคุณเชื่อมต่อบริการอื่น สถานะจะแสดง Checking which keys this needs ชั่วครู่ หากเว็บไซต์ยังไม่มีค่าของคีย์ใด สตูดิโอจะถามก่อนสร้าง การ์ดในบทสนทนามีช่องสำหรับแต่ละคีย์ สูงสุด 3 ช่องต่อการเปลี่ยนแปลงหนึ่งครั้ง วางค่าแล้วกด Save and build: ค่าจะไปที่ Secrets ของเว็บไซต์โดยตรง ไม่เข้าไปอยู่ในบทสนทนา และการเปลี่ยนแปลงจะเริ่มทำงาน กด Add it later เพื่อสร้างโดยไม่ใส่ค่า
- ข้อความที่ส่งระหว่างรอ จะรวมเข้ากับการเปลี่ยนแปลงนั้น คีย์ที่คุณบันทึกไว้แล้วหรือเลือกเพิ่มทีหลังจะไม่ถูกถามอีก หากข้อความใหม่ของคุณเชื่อมบริการอื่น ระบบจะถามเฉพาะคีย์ของบริการนั้น หลังการ์ดแรกเสร็จแล้ว
- เว็บไซต์ใหม่ Secrets ต้องมีเว็บไซต์ที่เผยแพร่แล้ว การสร้างครั้งแรกจึงยังรับคีย์ไม่ได้ ในคำถามก่อนสร้าง เอเจนต์อาจถามว่าจะสร้างการเชื่อมต่อตอนนี้แล้วเพิ่มคีย์เมื่อเว็บไซต์ขึ้นใช้งาน หรือเว้นส่วนนั้นไว้ก่อน
- ใน Telegram การ์ดจะมีปุ่มสำหรับแต่ละคีย์ที่เปิด Secrets ในสตูดิโอ และปุ่ม Build เพื่อทำงานต่อ คีย์จะไม่ถูกส่งผ่านแชทเลย
เว็บไซต์ต้องใช้
หลังการเผยแพร่ทุกครั้ง Briks จะอ่านว่าโค้ดของเว็บไซต์เรียกใช้ชื่อ secret ใดบ้าง ชื่อที่ยังไม่มีค่าจะแสดงไว้ต้นหน้านี้ พร้อมป้าย Needed by the site กด Add value ที่ชื่อนั้น ฟอร์มจะเปิดขึ้นพร้อมชื่อที่กรอกไว้แล้ว จนกว่าชื่อนั้นจะมีค่า ส่วนของเว็บไซต์ที่ใช้ชื่อนั้นจะไม่ทำงาน
คำตอบเมื่อสร้างหรือแก้ไขเว็บไซต์จะบอกชื่อเหล่านี้ด้วย เช่น เว็บไซต์อ่านค่า MAILING_LIST_KEY ซึ่งยังไม่มีค่า: เพิ่มได้ที่ Project Settings → Secrets แต่ละชื่อมีปุ่มของตัวเอง เช่น Add MAILING_LIST_KEY ซึ่งเปิดหน้านี้พร้อมกรอกชื่อไว้ให้ ประโยคเดียวกันนี้อยู่ในการแจ้งเตือน และใน Telegram เมื่อแจ้งว่าการสร้างเสร็จแล้ว
คีย์ที่วางในข้อความ
Briks จดจำรูปแบบทั่วไปของคีย์และโทเค็นของบริการต่าง ๆ ได้ หากมีการวางคีย์ในแชตของสตูดิโอ คำอธิบายของโปรเจกต์ใหม่ บรีฟของโปรเจกต์ ข้อความถึงเอเจนต์หรือคำสั่งของเอเจนต์ Ask AI ของ Visual Editor หรือแชตกับบอต ระบบจะนำคีย์ออกก่อนที่จะเก็บหรืออ่านข้อความ และแทนที่ด้วย [key removed: add it in Settings → Secrets] สตูดิโอจะแจ้งทันทีว่า A key was removed from your message so it isn't stored. Add it in Project Settings → Secrets. ในข้อความตอบกลับมีปุ่ม Open Secrets ไปยังหน้านี้ ในเธรดของเอเจนต์ที่ทำงานกับทุกโปรเจกต์ Open Secrets จะแสดงรายการโปรเจกต์ของคุณเพื่อให้เลือกโปรเจกต์ที่คีย์นั้นใช้ สิ่งที่เอเจนต์ควรจดจำจะถูกปฏิเสธหากมีคีย์รวมอยู่ด้วย
ก่อนเว็บไซต์เผยแพร่ Briks จะอ่านโค้ดของตัวเองเพื่อหาคีย์ที่เขียนไว้ในไฟล์ ทั้งค่าที่หน้าตาเหมือนคีย์ และค่าที่ใส่ให้กับสิ่งที่ตั้งชื่อคล้ายคีย์ โทเค็น หรือรหัสผ่าน หากพบ ระบบจะส่งงานสร้างกลับไปเอาค่านั้นออก แล้วอ่านความลับตามชื่อแทน
กฎความปลอดภัยที่ Briks บังคับใช้
- ค่าต่างๆ จะส่งตรงไปยังฝั่งเซิร์ฟเวอร์ของเว็บไซต์ที่เผยแพร่ โดยเข้ารหัสไว้ สตูดิโอไม่เก็บค่าเหล่านี้ ไม่แสดงซ้ำอีก และไม่เขียนลงบันทึกของระบบ
- ค่าเหล่านี้จะไม่ปรากฏในหน้าของเว็บไซต์ ในเบราว์เซอร์ของผู้เยี่ยมชม หรือในโค้ดที่คุณดาวน์โหลด
- เฉพาะ Editor, Admin และ Owner เท่านั้นที่เพิ่ม เปลี่ยน หรือลบ secret ได้
- ชื่อที่ขึ้นต้นด้วย
BRIKS_เป็นของสตูดิโอ และแก้ไขความลับที่สตูดิโอจัดการให้ไม่ได้ - โปรเจกต์เปลี่ยนแปลง secrets ได้สูงสุด 60 ครั้งต่อนาที เกินจากนั้นคุณจะเห็นข้อความ: That is a lot of changes at once. Wait a minute and try again.
เมื่อข้อมูลลับหายไป
ความลับผูกกับที่อยู่ของเว็บไซต์ หากคุณเปลี่ยนที่อยู่ (ดู ที่อยู่ของเว็บไซต์คุณ) ความลับจะยังอยู่กับที่อยู่เดิม ข้อความของสตูดิโอจะแสดงรายการและขอให้ป้อนใหม่ที่ Settings, Secrets และแต่ละแถวจะแสดง Not on the site · enter again เลือก Edit value ของแต่ละรายการแล้ววางค่าของรายการนั้น
ถ้าโค้ดของเว็บไซต์ขอ secret ที่ไม่มีอยู่ ส่วนนั้นของเว็บไซต์จะตอบว่า: Part of this site is not set up yet. ตรวจว่าชื่อตรงกันทุกตัวอักษร รวมถึงตัวพิมพ์ใหญ่ และแถวนั้นไม่ได้ระบุว่า Not on the site
ตัวอย่างการใช้งาน: เปลี่ยนคีย์ที่รั่วไหล
บริการส่งอีเมลของพวกเขาเตือนว่าคีย์ที่บันทึกเป็น
MAILING_LIST_KEYไปปรากฏในอีเมลเก่า พวกเขาจึงสร้างคีย์ใหม่ที่บริการส่งอีเมล เปิด Settings, Secrets เลือก Edit value ที่MAILING_LIST_KEYวางคีย์ใหม่ แล้วกด Save value
MAILING_LIST_KEY มีค่าใหม่แล้ว เว็บไซต์ที่เผยแพร่อยู่ใช้ค่านี้ตอนนี้
จากนั้นจึงลบคีย์เก่าที่บริการส่งอีเมลเท่านั้น เว็บไซต์จึงไม่เคยมีช่วงเวลาที่ไม่มีคีย์ที่ใช้งานได้ ไม่ต้องสร้างใหม่เลย เพราะโค้ดเรียกใช้คีย์ตามชื่อ
ดูค่าของ secret ได้ภายหลังหรือไม่
ไม่ได้ ไม่ว่าจะเป็นคุณ เพื่อนร่วมทีม หรือ Briks ควรเก็บสำเนาของคุณเองไว้เมื่อบันทึก
การเพิ่มความลับทำให้เว็บไซต์ของฉันเปลี่ยนไปเองหรือไม่
ไม่ ความลับ (secret) จะไม่ทำอะไรจนกว่าโค้ดของเว็บไซต์จะอ่านด้วยชื่อของมัน ให้ขอฟีเจอร์ที่ใช้ความลับนั้นจากสตูดิโอ
โค้ดที่ดาวน์โหลดมีข้อมูลลับอยู่ไหม
ไม่ ไฟล์ที่ดาวน์โหลดมีเฉพาะไฟล์ของเว็บไซต์เอง และจะไม่มีการเขียนคีย์ลงในไฟล์เหล่านั้น
ทำไมฉันถึงเพิ่มไม่ได้
อาจเป็นเพราะเว็บไซต์ยังไม่ได้เผยแพร่ หรือบทบาทของคุณคือ Viewer โดยหน้านั้นจะบอกไว้