# 草稿、發布與線上版本

Source: https://openflow.run/zh-tw/docs/concepts/versions/
Language: zh-TW
Product version: 0.1.0-beta.77

明確目前編輯、測試和正式環境執行分別使用哪份定義。

一個工作流程有一個可以更新的**草稿指標**（Draft head），指向不可變的**修訂版本**（Revision）。成功的**發布**（Publication）會固定一個修訂版本用於正式環境執行，**Live** 則指向目前生效的正式環境發布版本。

## 草稿與修訂版本

修改執行內容會建立新的修訂版本，並更新草稿指標。送出修改時需要帶上預期的修訂版本和固定的請求識別碼，避免無提示覆蓋，也避免回應不確定時重複送出同一次修改。

草稿可以儲存為未完成狀態。儲存節點，不等於整條工作流程已經通過驗證或可以執行。

## 發布

發布會驗證整張執行圖，並準備所需的外部資源。所有準備步驟成功後，才會生成發布紀錄。準備過程中或準備失敗時，原有 Live 繼續生效。

發布期間或發布後編輯草稿，不會改動已發布的修訂版本。

## 線上執行

自動觸發器使用目前 Live 定義及與之對應的執行階段綁定。顯式呼叫 Live 執行時選擇開始節點。系統接收執行時，會固定版本、輸入、授權快照和執行範圍。

停用工作流程會阻止新的正式環境執行，不會取消已經接收的執行。要停止已接收的任務，需要使用執行的取消介面。

## 歷史與回復舊版

歷史發布紀錄和執行紀錄保留各自固定的定義。回復舊版會建立一條新的發布紀錄，不會修改歷史，也不會撤銷外部影響或重置單獨儲存的工作流程狀態（Flow State）。

畫布佈局與執行內容分別管理版本，並隨發布固定，供檢視使用。詳見[工作流程與畫布佈局](https://openflow.run/zh-tw/docs/concepts/flows-and-nodes/index.md)。

## 資料來源

*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#flow-revision-and-presentation)
*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#publication-and-trigger)
*   [docs/control/contracts/control-api.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/contracts/control-api.md#4-validation-publication-and-live)
