ป้ายกำกับ ช่อง และตัวเลือกต่างๆ จะดำเนินไปตามสถานะเฉพาะต่างๆ ตลอดชีวิต นอกจากนี้ ป้ายกำกับอาจมีการแก้ไขที่แตกต่างกัน แผนภาพต่อไปนี้แสดงวงจรการทำงานของป้ายกำกับ รวมถึงการแก้ไข
- สร้างป้ายกำกับ (
create()
) - ระบบจะสร้างป้ายกำกับและจัดเก็บไว้ในฐานข้อมูลเป็นrevision_id=1
ป้ายกำกับมีสถานะUNPUBLISHED_DRAFT
ในสถานะนี้- ผู้ใช้ดูป้ายกำกับไม่ได้
- ผู้ใช้จะใช้ป้ายกำกับดังกล่าวกับรายการในไดรฟ์ไม่ได้
- (ไม่บังคับ) อัปเดตป้ายกำกับ ช่อง หรือตัวเลือก (
delta()
) - ระบบจะจัดเก็บการอัปเดตทุกครั้ง (แม้ว่าจะเผยแพร่แล้ว) ในฐานข้อมูล และจะมีการแก้ไขของป้ายกำกับเพิ่มขึ้น - เผยแพร่ป้ายกำกับ (
publish()
) - ป้ายกำกับมีสถานะPUBLISHED
และผู้ใช้จะใช้ป้ายกำกับนี้ได้ การเผยแพร่ป้ายกำกับจะเป็นการเพิ่มการแก้ไข - (ไม่บังคับ) อัปเดตป้ายกํากับ ช่อง หรือตัวเลือก (
delta()
) - ระบบจะอัปเดตป้ายกํากับ ช่อง หรือตัวเลือก และจัดเก็บไว้ในฐานข้อมูลเป็นป้ายกํากับฉบับร่าง ป้ายกำกับมีสถานะPUBLISHED
โดยมีhasUnpublishedChanges=true
หมายความว่ามีการเปลี่ยนแปลงฉบับร่าง แต่ผู้ใช้ไม่พร้อมใช้งาน การอัปเดตแต่ละครั้ง จะเพิ่มการแก้ไขของป้ายกำกับ - (ไม่บังคับ) เผยแพร่ป้ายกำกับ (
publish()
) - ระบบจะเผยแพร่ฉบับร่างล่าสุด หากมี ป้ายกำกับมีสถานะPUBLISHED
และผู้ใช้จะใช้ป้ายกำกับได้ การเผยแพร่ป้ายกำกับจะเป็นการเพิ่มเวอร์ชัน - ปิดใช้ป้ายกำกับ (
disable()
) - ป้ายกำกับมีสถานะDISABLED
แต่ผู้ใช้จะใช้ป้ายกำกับผ่าน API ได้ อย่างไรก็ตาม ป้ายกำกับที่ปิดใช้จะไม่แสดงใน UI เว้นแต่จะมีการกำหนดค่าให้แสดง การเลิกใช้ป้ายกำกับจะเป็นการเพิ่ม การแก้ไขของป้ายกำกับนั้น - เปิดใช้ป้ายกำกับ (
enable()
) - ป้ายกำกับจะกลับไปเป็นสถานะPUBLISHED
และผู้ใช้จะใช้ป้ายกำกับนั้นได้ การเผยแพร่ป้ายกำกับจะเป็นการเพิ่มการแก้ไข - ลบป้ายกำกับ (
delete()
) - ป้ายกำกับมีสถานะDELETED
และจะใช้ไม่ได้ ป้ายกำกับที่ลบแล้วจะถูกลบถาวรในที่สุด
ควรเน้นย้ำว่าการอัปเดตป้ายกำกับทุกครั้งจะเป็นการเพิ่มการแก้ไขของป้ายกำกับ และถ้าเผยแพร่ป้ายกำกับแล้ว การเผยแพร่อีกครั้งหลังจากการอัปเดต n หมายความว่าหมายเลขการแก้ไขที่เผยแพร่คือการแก้ไข + n + จำนวนการอัปเดตต่อเนื่องกัน