ป้ายกำกับ ช่อง และตัวเลือกจะประกอบขึ้นตามรัฐที่เฉพาะเจาะจงตลอดทั้งชีวิต นอกจากนี้ ป้ายกํากับอาจมีการแก้ไขที่แตกต่างออกไป แผนภาพต่อไปนี้แสดงวงจรของป้ายกำกับ ซึ่งรวมถึงการแก้ไข
- สร้างป้ายกำกับ (
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 + จำนวนการอัปเดตติดต่อกัน 1 รายการ