ข้ามไปยังเนื้อหา
Dee Wan 1.0 ยังอยู่ระหว่างพัฒนาและยังไม่เปิดตัว (pre-MVP) — ดู ขอบเขตผลิตภัณฑ์ 1.0

หนึ่งคำต่อหนึ่งสิ่ง

คำที่ Dee Wan ใช้บนหน้าจอและในเอกสาร และความหมายของแต่ละคำ เมื่อคำหนึ่งอาจหมายถึงได้สองอย่าง รายการนั้นจะบอกว่าเราหมายถึงอย่างไหน และเราเรียกอีกอย่างว่าอะไร

การ deploy Dee Wan หนึ่งชุด: admin Worker, admin UI, control database และบัญชีที่อยู่เบื้องหลัง สิ่งเหล่านี้ ตัวติดตั้งแบบบรรทัดคำสั่ง (npm run setup) เป็นผู้สร้าง web installer แบบพรีวิว ขับเคลื่อนตัวติดตั้ง (installer) ตัวเดียวกัน แต่ไม่ใช่เส้นทางการติดตั้งที่รองรับ

  • installation หนึ่งชุดให้บริการ ไซต์ จำนวนมาก
  • มี control database หนึ่งชุดและ superadmin หนึ่งชุด
  • ไม่ใช่ “การติดตั้งไซต์” ไซต์ถูกสร้างขึ้นภายใน installation ไม่ได้ถูกติดตั้ง

tenant หนึ่งตัวภายใน installation: มีชื่อ, slug, hostname และเนื้อหา, ภาษา, บทบาท (role) และ grant ของตัวเอง

  • สร้างใน admin UI ไม่ใช่ผ่านตัวติดตั้งเด็ดขาด
  • hostname ของไซต์ (โดเมนของมัน) คือที่ที่ public read API ของไซต์ตอบ header Host ของ คำขอสาธารณะต้องตรงกับค่านี้
  • ขึ้นอยู่กับ topology ของ installation ไซต์อาจมี content database ของตัวเองหรือใช้ร่วมกับไซต์อื่น

ออบเจกต์ของ Cloudflare ที่เก็บ DNS และการตั้งค่า edge ของโดเมนหนึ่ง credential สำหรับ purge cache และ rate limiting ตั้งค่าแยกตาม Cloudflare zone ในเอกสารเหล่านี้จะเขียนว่า “Cloudflare zone” เสมอ เพื่อไม่ให้สับสนกับ ownership zone

นิยามของเนื้อหาชนิดหนึ่ง: field ของมัน และเป็นแบบสาธารณะหรือส่วนตัว slug ของโมเดลคือ segment ของ path ใน /v1/<model>

ฟิลด์บนโมเดลที่มีชื่อและชนิดข้อมูลกำกับ: text, rich text, number, boolean, select, date, media, JSON, relation หรือ component field แบบ relation เชื่อมรายการหนึ่งไปยังรายการของอีกโมเดลหนึ่ง

รายการหนึ่งของโมเดล เช่น บทความหนึ่งบทความ มี id, slug และเนื้อหาในหนึ่งภาษาหรือมากกว่า ใน response ของ API instance_id หมายถึง id ของรายการเนื้อหา

เวอร์ชันภาษาต่าง ๆ ของรายการเนื้อหาหนึ่งรายการ ที่เก็บรวมกันไว้ แต่ละภาษามีขั้นตอน workflow และเวอร์ชันที่เผยแพร่ ของตนเอง การดำเนินการระดับกลุ่มย้ายทุกภาษาพร้อมกัน การดำเนินการระดับภาษาย้ายเพียงภาษาเดียว (ข้อความเก่าอาจเขียนว่า “locale group” ซึ่งหมายถึงสิ่งเดียวกัน)

การตั้งค่าต่อไซต์ว่า public API จะทำอย่างไรเมื่อรายการไม่มีเนื้อหาในภาษาที่ขอ:

  • strict: ไม่ให้บริการอะไรเลยสำหรับภาษานั้น ไม่ใช้ภาษาสำรอง
  • fallback: ภาษาที่ขอ จากนั้นภาษาสำรองของภาษานั้นตามลำดับที่ไซต์กำหนด (แต่ละภาษาไล่ต่อไปยังภาษาสำรอง ของตัวเอง) หากลำดับของภาษาที่ขอไม่ลงท้ายด้วย หยุด จึงลองภาษาเริ่มต้นของไซต์และภาษาหลักของรายการ ให้บริการเฉพาะภาษาที่เผยแพร่แล้วในลำดับนี้ locale ในคำตอบระบุภาษาที่ให้บริการ

การทำให้เวอร์ชันปัจจุบันของรายการเนื้อหาเป็นเวอร์ชันที่ public read API ให้บริการ การเผยแพร่กระทำต่อภาษาเดียว หรือทุกภาษาของ translation group พร้อมกัน การยกเลิกเผยแพร่ภาษาเดียวถอนเฉพาะภาษานั้น ภาษาอื่นยังเผยแพร่อยู่

  • เปลี่ยนสิ่งที่ /v1/… ตอบบน public hostname ของไซต์ ไม่เปลี่ยนโค้ดและไม่ deploy อะไรเลย
  • ไม่ใช่ “การเผยแพร่ไซต์” ไซต์ไม่ได้ถูกเผยแพร่ เนื้อหาของไซต์ต่างหากที่ถูกเผยแพร่

สำเนาเนื้อหาของรายการที่เปลี่ยนแปลงไม่ได้ สร้างเมื่อบันทึกเวอร์ชันใหม่ แต่ละสำเนามีหมายเลขเวอร์ชัน การเผยแพร่เลือกเวอร์ชันที่บันทึกไว้ให้ API สาธารณะส่งในแต่ละภาษา การกู้คืนเวอร์ชันเก่าสร้างเวอร์ชันใหม่ โดยไม่แก้ไขสำเนาต้นฉบับ

รายการเนื้อหาที่โมเดลของมันมี field slides ซึ่งเก็บเอกสารหน้า (page document) ดู ข้อกำหนดข้อมูลหน้า

HTTP API แบบอ่านอย่างเดียวบน hostname ของไซต์ ภายใต้ /v1/ ดู เอกสารอ้างอิง public read API

โมเดล สาธารณะ ใครก็อ่านได้ โมเดล ส่วนตัว อ่านได้เฉพาะด้วย site API token ที่ระบุชื่อโมเดลนั้น คำขอไปยังโมเดลส่วนตัวที่ไม่มี token ที่ถูกต้องจะได้ 404 แบบเดียวกับโมเดลที่ไม่มีอยู่

bearer token ที่สร้างใน การตั้งค่า → API ใช้อ่านโมเดลส่วนตัวที่มันระบุชื่อไว้ ขึ้นต้นด้วย dw_site_ (หรือ dw_site2_ หลังการ rotate signing key) แสดงเพียงครั้งเดียว อาจหมดอายุได้ และเพิกถอนได้

token อายุสั้น (dw_prev_…) ที่ CMS สร้างเมื่อบรรณาธิการเปิดดูตัวอย่าง ใช้อ่าน draft ของรายการหนึ่ง รายการเป็นเวลา 30 นาที ไม่ใช่ site API token

ค่า page.next_cursor แบบ opaque ที่ใช้ดึงหน้าถัดไปของรายการ ให้ส่งค่านี้กลับไปโดยไม่แก้ไข

โปรเจกต์แบ็กเอนด์ที่มีชนิดข้อมูลกำกับ ซึ่งสร้างจากโมเดลและเนื้อหาที่เผยแพร่แล้วของไซต์: Prisma schema, migration, Worker และเส้นทาง API ที่มีชนิดข้อมูลกำกับ ซึ่งเขียนลงในรีโพซิทอรีที่คุณเป็นเจ้าของ การตั้งค่า → ซอร์สโค้ดและการเผยแพร่ ส่งมอบและดีพลอย แต่ไม่ได้สร้างมัน

  • ไม่เรียกกลับไปหาสิ่งใดใน Dee Wan ขณะรันไทม์
  • การสร้างมันไม่ deploy อะไรเลย
  • สร้างบนเครื่องของคุณ (npm run backend:generate หรือ npm run backend:deliver) CMS ไม่มีตัวคอมไพล์ซอร์สที่โฮสต์ไว้
  • มันคือการรีลีส schema และเนื้อหา ไม่ใช่ feed แบบสด: การเผยแพร่ครั้งหลังจะไปถึงมันก็ต่อเมื่อสร้างใหม่ และ deploy ใหม่เท่านั้น

Graduation คือชื่อภายในของสิ่งนี้ คุณจะเห็นมันในชื่อไฟล์ เช่น graduation.manifest.json มีความหมายเดียวกับการสร้าง standalone backend

ไฟล์ใดใน standalone backend เป็นของใคร: generated (เขียนใหม่ทุกครั้งที่สร้างใหม่), owned (src/owned/ ไม่ถูกเขียนทับเลย) หรือ shared (เขียนครั้งเดียว จากนั้นเป็นของคุณ) ดู การขยายแบ็กเอนด์ของคุณ ไม่ใช่ Cloudflare zone

การหยุดสร้างใหม่จาก Dee Wan และเก็บ standalone backend ไว้เป็น repository ธรรมดา ดู สัญญาการแยกตัว

การทำให้ revision ที่ระบุหนึ่งตัวทำงานอยู่บน Cloudflare มีสองสิ่งที่ใช้คำนี้:

คำศัพท์ กระทำต่อ อย่างไร
installation deployment admin Worker และ admin UI npm run deploy
site deployment Worker และฐานข้อมูลของ standalone backend หนึ่งชุด ปุ่ม Deploy ซึ่งเรียก build webhook ไปยัง CI ของ repository

การสร้าง standalone backend ผลิตโค้ด ส่วน site deployment นำโค้ดนั้นไปรัน

การสร้างทรัพยากร Cloudflare ที่สิ่งหนึ่งต้องใช้ (ฐานข้อมูล, storage, DNS) และบันทึกว่าทรัพยากรนั้น มีอยู่ Provisioning สร้างทรัพยากร ส่วน deployment นำโค้ดไปวางบนทรัพยากรนั้น

หลีกเลี่ยง เพราะ ให้ใช้
“tenant” ใน UI เป็นคำระดับ implementation site
“instance” สำหรับ installation มันยังหมายถึงรายการเนื้อหาด้วย installation
“migrate” สำหรับการนำเข้าเนื้อหา migration หมายถึงการเปลี่ยน schema import
“export” หรือ “graduate” สำหรับ standalone backend export คือเนื้อหาที่ออกไป ส่วน graduate เป็นชื่อกลไก generate standalone backend
“locale group” สองชื่อสำหรับสิ่งเดียว translation group
“zone” โดด ๆ มันมีสองความหมาย Cloudflare zone หรือ ownership zone
“sync” เคยมีความหมายหลายอย่าง ระบุทิศทาง
“workflow” สำหรับไซต์ที่ปิด review ไซต์นั้นไม่ได้เปิดใช้ขั้นตอนตรวจทาน publish / unpublish

ยังไม่เปิดตัว (pre-MVP) และยังไม่มีเวอร์ชันเสถียร
คอมมิตซอร์สโค้ด: e207e63239a627fbd2ae9c414ef7c6eb19fcfe5a (มีการแก้ไขที่ยังไม่คอมมิต)
วันที่สร้างเอกสาร (UTC): 2026-10-21T09:28:24.214Z
คอมมิตสำหรับอัปเกรด: ระบุไม่ได้: มีการแก้ไขที่ยังไม่คอมมิต. บันทึกการเปลี่ยนแปลง