標籤生命週期

標籤、欄位和選項在生命週期中會經歷特定狀態。此外,標籤可能會有不同的修訂版本。下圖顯示標籤生命週期,包括修訂:

標籤生命週期圖表。
圖 3. 標籤的生命週期
  1. 建立標籤 (create()):系統會建立標籤並以 revision_id=1 的形式儲存在資料庫中。標籤的狀態為 UNPUBLISHED_DRAFT。在這個狀態中:
    • 使用者無法查看標籤
    • 使用者無法將標籤套用至雲端硬碟項目。
  2. (選用) 更新標籤、欄位或選項 (delta()):每項更新 (即使尚未發布) 都會儲存在資料庫中,且標籤的修訂版本會增加。
  3. 發布標籤 (publish()):標籤的狀態為 PUBLISHED,使用者可以套用標籤。發布標籤後,其修訂版本會增加 1。
  4. (選用) 更新標籤、欄位或選項 (delta()):標籤、欄位或選項會更新並儲存在資料庫中,做為草稿標籤。標籤的狀態為 PUBLISHED,其中 hasUnpublishedChanges=true 表示草稿有變更,但使用者無法使用。每次更新都會增加標籤的修訂版本。
  5. (選用) 發布標籤 (publish()):如果可用,系統會發布最新的草稿。標籤的狀態為 PUBLISHED,使用者可以套用標籤。發布標籤會增加版本。
  6. 停用標籤 (disable()):標籤的狀態為 DISABLED,但使用者可以透過 API 套用標籤。不過,除非已設定停用標籤,否則不會顯示在 UI 中。淘汰標籤會增加其修訂版本。
  7. 啟用標籤 (enable()):標籤會傳回至 PUBLISHED 狀態,使用者可以套用標籤。發布標籤後,其修訂版本會增加 1。
  8. 刪除標籤 (delete()):標籤的狀態為 DELETED,因此無法套用。系統最終會清除已刪除的標籤。

請注意,每當標籤更新一次,標籤修訂版本就會增加一次。如果標籤已發布,在 n 次更新後再次發布,則其發布修訂版本號碼為修訂版本 + n + 1 個連續更新次數。